Example #1
0
        public void ClusteringLanguageTest()
        {
            var netMLString =
                "create clustering kmetroids euclidmetric ";
            NetMLParser   netMLParser   = new NetMLParser();
            var           result        = netMLParser.Parse(netMLString);
            NetMLCreator  netMLCreator  = new NetMLCreator(result);
            DataSetLoader dataSetLoader = new DataSetLoader();
            var           irises        = dataSetLoader.SelectClusteringIrises();

            netMLCreator.Create(irises);
            var clusters       = netMLCreator.Cluster(3);
            var clusterCounter = 0;
            Dictionary <int, int> clusterDictonary = new Dictionary <int, int>();

            foreach (var cluster in clusters)
            {
                Debug.WriteLine(string.Format("Cluster {0} - Count {1}", clusterCounter, cluster.Count));
                clusterDictonary.Add(clusterCounter, 0);
                clusterCounter++;
            }
            var irisesTest  = dataSetLoader.SelectClusteringIrises();
            var trueCounter = 0;
            var counter     = 0;

            foreach (var item in irisesTest)
            {
                var outputValue = netMLCreator.CalculateClusterAffinity(item);
                Debug.WriteLine(string.Format("Value {0} - Predicted {1}", item, outputValue));
                clusterDictonary[outputValue]++;
                counter++;
                trueCounter++;
            }
            clusterCounter = 0;
            foreach (var cluster in clusters)
            {
                var calculatedCluster = clusterDictonary[clusterCounter];
                Debug.WriteLine(string.Format("Cluster {0} - Original Count {1} - Calculated Count {2}",
                                              clusterCounter, cluster.Count, calculatedCluster));
                clusterCounter++;
            }
        }
Example #2
0
        public void kMeansIrisTest()
        {
            DataSetLoader dataSetLoader = new DataSetLoader();

            Console.WriteLine(" Reading DataSet.. ");
            var irises = dataSetLoader.SelectClusteringIrises();
            kMeansClustering kmeansClustering = new kMeansClustering(irises, new MaximumMetric());
            var clusters       = kmeansClustering.Cluster(3);
            var clusterCounter = 0;
            Dictionary <int, int> clusterDictonary = new Dictionary <int, int>();

            foreach (var cluster in clusters)
            {
                Debug.WriteLine(string.Format("Cluster {0} - Count {1}", clusterCounter, cluster.Count));
                clusterDictonary.Add(clusterCounter, 0);
                clusterCounter++;
            }
            var irisesTest  = dataSetLoader.SelectClusteringIrises();
            var trueCounter = 0;
            var counter     = 0;

            foreach (var item in irisesTest)
            {
                var outputValue = kmeansClustering.CalculateClusterAffinity(item);
                Debug.WriteLine(string.Format("Value {0} - Predicted {1}", item, outputValue));
                clusterDictonary[outputValue]++;
                counter++;
                trueCounter++;
            }
            clusterCounter = 0;
            foreach (var cluster in clusters)
            {
                var calculatedCluster = clusterDictonary[clusterCounter];
                Debug.WriteLine(string.Format("Cluster {0} - Original Count {1} - Calculated Count {2}",
                                              clusterCounter, cluster.Count, calculatedCluster));
                clusterCounter++;
            }
            //var centroids = kmeansClustering.centroids;
            //var clusters = kmeansClustering.ClusterWithCentroid(4);
        }