public void TestGroupByDoubleKeyDoubleValueColumn()
 {
     float[,] tss = { { 0, 0, 0, 2, 2 }, { 2, 2, 2, 4, 4 }, { 0, 1, 2, 3, 4 }, { 1, 1, 1, 1, 1 } };
     using (KhivaArray arr = KhivaArray.Create(tss), groupBy = Regularization.GroupBy(arr, 0, 2, 2))
     {
         float[,] expected = { { 1, 3.5F }, { 1, 1 } };
         var result = groupBy.GetData2D <float>();
         Assert.AreEqual(expected, result);
     }
 }
 public void TestGroupBySingleColumn()
 {
     int[,] tss = { { 0, 1, 1, 2, 2, 3 }, { 0, 3, 3, 1, 1, 2 } };
     using (KhivaArray arr = KhivaArray.Create(tss), groupBy = Regularization.GroupBy(arr, 0))
     {
         int[] expected = { 0, 3, 1, 2 };
         var   result   = groupBy.GetData1D <int>();
         Assert.AreEqual(expected, result);
     }
 }
Esempio n. 3
0
        public void Linear_Regression_Test_CostFunction_Regularized()
        {
            Vector theta = new Vector(new double[] { 1, 1 });

            Matrix X = new[, ] {
                { 1, -15.9368 },
                { 1, -29.1530 },
                { 1, 36.1895 },
                { 1, 37.4922 },
                { 1, -48.0588 },
                { 1, -8.9415 },
                { 1, 15.3078 },
                { 1, -34.7063 },
                { 1, 1.3892 },
                { 1, -44.3838 },
                { 1, 7.0135 },
                { 1, 22.7627 }
            };

            Vector y = new Vector(new double[] {
                2.1343,
                1.1733,
                34.3591,
                36.8380,
                2.8090,
                2.1211,
                14.7103,
                2.6142,
                3.7402,
                3.7317,
                7.6277,
                22.7524
            });

            ICostFunction costFunction = new Functions.CostFunctions.LinearCostFunction();
            IRegularizer  regulariser  = new Regularization();

            double cost = costFunction.ComputeCost(theta, X, y, 1, regulariser);
            Vector grad = costFunction.ComputeGradient(theta, X, y, 1, regulariser);

            Assert.AreEqual(303.99, System.Math.Round(cost, 2));

            Assert.AreEqual(new double[] { -15.3, 598.3 }, grad.Select(s => System.Math.Round(s, 1)).ToArray());
        }