Function() 공개 메소드

Dynamic Time Warping kernel function.
public Function ( double x, double y ) : double
x double Vector x in input space.
y double Vector y in input space.
리턴 double
예제 #1
0
        public void FunctionTest()
        {
            var x = new double[] { 0, 4, 2, 1 };
            var y = new double[] { 3, 2, };

            DynamicTimeWarping target;
            double expected, actual;


            target = new DynamicTimeWarping(1);

            expected = 1;
            actual = target.Function(x, x);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = 1;
            actual = target.Function(y, y);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = -0.076696513742007991;
            actual = target.Function(x, y);
            Assert.AreEqual(expected, actual, 0.000001);
            actual = target.Function(y, x);
            Assert.AreEqual(expected, actual, 0.000001);


            target = new DynamicTimeWarping(2, 1.42);
            var z = new double[] { 3, 2, 1, 5, 7, 8 };

            expected = 1;
            actual = target.Function(x, x);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = 1;
            actual = target.Function(y, y);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = 1;
            actual = target.Function(z, z);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = -0.10903562560104614;
            actual = target.Function(x, z);
            Assert.AreEqual(expected, actual, 0.000001);
            actual = target.Function(z, x);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = 0.4208878392918925;
            actual = target.Function(x, y);
            Assert.AreEqual(expected, actual, 0.000001);
            actual = target.Function(y, x);
            Assert.AreEqual(expected, actual, 0.000001);


            target = new DynamicTimeWarping(1, 0.0000000001);

            expected = 1;
            actual = target.Function(x, x);
            Assert.AreEqual(expected, actual);

            expected = 1;
            actual = target.Function(y, y);
            Assert.AreEqual(expected, actual);

            expected = 0.000000000033333397321663391;
            actual = target.Function(x, y);
            Assert.AreEqual(expected, actual);
            actual = target.Function(y, x);
            Assert.AreEqual(expected, actual);



            target = new DynamicTimeWarping(1, 292.12);

            expected = 1;
            actual = target.Function(x, x);
            Assert.AreEqual(expected, actual, 0.000001);
            actual = target.Function(y, y);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = 0.99985353675500488;
            actual = target.Function(x, y);
            Assert.AreEqual(expected, actual);
            actual = target.Function(y, x);
            Assert.AreEqual(expected, actual);
        }
예제 #2
0
        public void FunctionTest_EqualInputs()
        {
            var x = new double[] { 1, 2, 5, 1 };
            var y = new double[] { 1, 2, 5, 1 };

            var target = new DynamicTimeWarping(1, 4.2);

            double expected = target.Function(x, y);
            double actual = target.Function(x, x);

            Assert.AreEqual(expected, actual);
        }