Beispiel #1
0
        public void SOM_6_columns_iris_0()
        {
            InitData_dataset_iris();

            //Split last column away from _trainingData
            double[][] newTrainingData     = ArrayManipulation.RemoveLastColumn2D(_trainingData);
            string []  values              = Conversion.ConvertToStringArray(ArrayManipulation.GetLastColAs1DArray(_trainingData));
            string[]   newAttributeHeaders = ArrayManipulation.RemoveLastColumn1D(_attributeHeaders);

            BuildSelfOrganizingMap build = new BuildSelfOrganizingMap();

            build.SetParameters(4, 4);//, .1, 100, 3);
            ModelSelfOrganizingMap model =
                (ModelSelfOrganizingMap)build.BuildModel(newTrainingData, newAttributeHeaders);

            values = Conversion.ReplaceWithString1D(values, "0", "setosa");
            values = Conversion.ReplaceWithString1D(values, "1", "versicolor");
            values = Conversion.ReplaceWithString1D(values, "2", "virginica");

            string somMap = model.GetPrintedSOMMapWithNameIds(newTrainingData,
                                                              values);

            //string valueCompare = "versicolor versicolor setosa setosa \r\n" +
            //                     "virginica versicolor versicolor setosa \r\n" +
            //                     "virginica virginica virginica virginica \r\n" +
            //                     "virginica virginica virginica virginica";

            //Using Random init weights is leading to different structure
            //However the following line should always be there
            Assert.IsTrue(somMap.Contains("virginica virginica virginica virginica"));
        }