public void UpdateMatrix_CovarianceMatrixIsCorrect()
        {
            Params.inputDataDimension = 3;
            Params.outputDataDimension = 3;

            ClusterX clusterX = new ClusterX(new Sample(new double[] { 4.0, 2.0, 0.6 }, 1.0, 0), null);
            clusterX.AddItem(new Vector(new double[] { 4.2, 2.1, 0.59 }), 0);
            clusterX.AddItem(new Vector(new double[] { 3.9, 2.0, 0.58 }), 0);
            clusterX.AddItem(new Vector(new double[] { 4.3, 2.1, 0.62 }), 0);
            clusterX.AddItem(new Vector(new double[] { 4.1, 2.2, 0.63 }), 0);
        }
Пример #2
0
        public void CountLabelOfCluster_LabelIsCorrect()
        {
            Params.inputDataDimension = 3;
            Params.outputDataDimension = 3;

            ClusterX clusterX = new ClusterX(new Sample(new double[] { 1, 2, 3 }, 1.0, 0), null);
            clusterX.AddItem(new Vector(new double[] { 2, 3, 4 }), 2.0);
            clusterX.AddItem(new Vector(new double[] { 2, 3, 4 }), 3.0);
            clusterX.AddItem(new Vector(new double[] { 2, 3, 4 }), 2.0);
            clusterX.AddItem(new Vector(new double[] { 2, 3, 4 }), 1.0);
            clusterX.AddItem(new Vector(new double[] { 2, 3, 4 }), 2.0);

            clusterX.CountLabelOfCluter();

            Assert.AreEqual(clusterX.Label, 2.0);
        }
Пример #3
0
        public void CountCovarianceMatrixMDF_CountCorrectCM()
        {
            Params.inputDataDimension = 3;
            Params.outputDataDimension = 3;

            ClusterX clusterX = new ClusterX(new Sample(new double[] { 4.0, 2.0, 0.6 }, 1.0, 0), null);
            clusterX.AddItem(new Vector(new double[] { 4.2, 2.1, 0.59 }), 0);
            clusterX.AddItem(new Vector(new double[] { 3.9, 2.0, 0.58 }), 0);
            clusterX.AddItem(new Vector(new double[] { 4.3, 2.1, 0.62 }), 0);
            clusterX.AddItem(new Vector(new double[] { 4.1, 2.2, 0.63 }), 0);

            clusterX.Items[0].ValuesMDF = new double[] { 4.0, 2.0, 0.6 };
            clusterX.Items[1].ValuesMDF = new double[] { 4.2, 2.1, 0.59 };
            clusterX.Items[2].ValuesMDF = new double[] { 3.9, 2.0, 0.58 };
            clusterX.Items[3].ValuesMDF = new double[] { 4.3, 2.1, 0.62 };
            clusterX.Items[4].ValuesMDF = new double[] { 4.1, 2.2, 0.63 };

            clusterX.CountCovarianceMatrixMDF();
        }
Пример #4
0
        public void CountCovarianceMatrix_CovarianceMatrixIsCorrect()
        {
            #warning not complet test, update of covariance matrix must be reimplemented

            Params.inputDataDimension = 3;
            Params.outputDataDimension = 3;

            ClusterX clusterX = new ClusterX(new Sample(new double[] { 4.0, 2.0, 0.6 }, 1.0, 0), null);
            clusterX.AddItem(new Vector(new double[] { 4.2, 2.1, 0.59 }), 0);

            //clusterX.CountCovariacneMatrix();

            clusterX.AddItem(new Vector(new double[] { 3.9, 2.0, 0.58 }), 0);
            clusterX.AddItem(new Vector(new double[] { 4.3, 2.1, 0.62 }), 0);

            //clusterX.CountCovariacneMatrix();

            clusterX.AddItem(new Vector(new double[] { 4.1, 2.2, 0.63 }), 0);

            //clusterX.CountCovariacneMatrix();
        }
Пример #5
0
        public void CountMDFMean_CountCorrectMean()
        {
            Params.inputDataDimension = 3;
            Params.outputDataDimension = 3;

            ClusterX clusterX = new ClusterX(new Sample(new double[] { 1, 2, 3 }, 1.0, 0), null);
            clusterX.AddItem(new Vector(new double[] { 2, 3, 4 }), 0);
            clusterX.AddItem(new Vector(new double[] { 3, 4, 5 }), 0);

            clusterX.Items[0].ValuesMDF = new double[] { 1, 2, 3 };
            clusterX.Items[1].ValuesMDF = new double[] { 2, 3, 4 };
            clusterX.Items[2].ValuesMDF = new double[] { 3, 4, 5 };

            clusterX.CountMDFMean();

            Assert.AreEqual(clusterX.MeanMDF[0], 2.0);
            Assert.AreEqual(clusterX.MeanMDF[1], 3.0);
            Assert.AreEqual(clusterX.MeanMDF[2], 4.0);
        }
Пример #6
0
        public void UpdateMean_UpdatingIsCorrect()
        {
            Params.inputDataDimension = 3;
            Params.t1 = 10;

            ClusterX clusterX = new ClusterX(new Sample(new double[] { 1.0, 2.0, 3.0 }, 1.0, 0), null);

            clusterX.AddItem(new Vector(new double[] { 2.0, 3.0, 4.0 }), 0);

            Assert.AreEqual(clusterX.Mean.Values[0], 1.5);
            Assert.AreEqual(clusterX.Mean.Values[1], 2.5);
            Assert.AreEqual(clusterX.Mean.Values[2], 3.5);

            clusterX.AddItem(new Vector(new double[] { 3.0, 4.0, 5.0 }), 0);

            Assert.AreEqual(clusterX.Mean.Values[0], 2.0);
            Assert.AreEqual(clusterX.Mean.Values[1], 3.0);
        }
Пример #7
0
        public void GetGaussianNLL_GetCorrectGausianNLL()
        {
            Params.inputDataDimension = 3;
            Params.outputDataDimension = 3;

            ClusterX clusterX = new ClusterX(new Sample(new double[] { 1, 2, 3 }, 1.0, 0), null);
            clusterX.AddItem(new Vector(new double[] { 2, 3, 4 }), 0);
            clusterX.AddItem(new Vector(new double[] { 3, 4, 5 }), 0);

            clusterX.Items[0].ValuesMDF = new double[] { 1, 2, 3 };
            clusterX.Items[1].ValuesMDF = new double[] { 2, 3, 4 };
            clusterX.Items[2].ValuesMDF = new double[] { 3, 4, 5 };

            clusterX.CountMDFMean();

            clusterX.CovMatrixMDF = new double[3, 3] { { 1, 2, 3 }, { 2, 1, 2 }, { 3, 3, 1 } };

            // clusterX.GetGaussianNLL(new double[] { 1, 2, 3 });
        }