Ejemplo n.º 1
0
        private void buttonClusterFeeds_Click(object sender, EventArgs e)
        {
            if (_feedData == null)
            {
                XtraMessageBox.Show("There is no data create cluster!", "Uh Oh!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            Cursor = Cursors.WaitCursor;

            int g        = (int)spinFeedClusterCount.Value;
            var kmeans   = new KMeans <Feed>();
            var grouping = kmeans.Generate(_feedData, g);

            _feedDescription = kmeans.Description;

            for (int i = 0; i < grouping.Length; i++)
            {
                _feedData[i].Cluster = grouping[i] + 1;
            }

            gridFeeds.DataSource = _feedData;
            gridFeeds.RefreshDataSource();

            Cursor = Cursors.Default;

            MessageBox.Show("Done!", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
Ejemplo n.º 2
0
        public void Test_Feed_KMeans()
        {
            int groups = 4;

            Feed[]     feeds      = Feed.GetData();
            Descriptor descriptor = Descriptor.Create <Feed>();
            KMeans     kmeans     = new KMeans();

            kmeans.Descriptor = descriptor;

            int[] grouping = kmeans.Generate(feeds, groups, new CosineDistance());

            for (int i = 0; i < grouping.Length; i++)
            {
                feeds[i].Cluster = grouping[i];
            }
        }
Ejemplo n.º 3
0
        public void Test_Object_KMeans(int size)
        {
            Matrix X       = GenerateData(size);
            var    objects = X.GetRows()
                             .Select(v => new AB {
                A = v[0], B = v[1]
            })
                             .ToArray();

            var descriptor = Descriptor.Create <AB>();

            KMeans model    = new KMeans();
            var    clusters = model.Generate(descriptor, objects, 2, new EuclidianDistance());

            Assert.Equal(2, clusters.Children.Length);
            Assert.Equal(size, clusters[0].Members.Length);
            Assert.Equal(size, clusters[1].Members.Length);
        }
Ejemplo n.º 4
0
        public void Test_Numerical_KMeans(int size)
        {
            Matrix X = GenerateData(size);

            KMeans model      = new KMeans();
            var    assignment = model.Generate(X, 2, new EuclidianDistance());

            Assert.Equal(size * 2, assignment.Length);
            var a1 = assignment.First();
            var a2 = assignment.Last();

            for (int i = 0; i < size * 2; i++)
            {
                if (i < size)
                {
                    Assert.Equal(a1, assignment[i]);
                }
                else
                {
                    Assert.Equal(a2, assignment[i]);
                }
            }
        }
Ejemplo n.º 5
0
        private void buttonClusteStudents_Click(object sender, EventArgs e)
        {
            if (_data == null)
            {
                XtraMessageBox.Show("There is no data create cluster!", "Uh Oh!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            int g      = (int)spinClusterCount.Value;
            var kmeans = new KMeans <Student>();

            var grouping = kmeans.Generate(_data, g);

            for (int i = 0; i < grouping.Length; i++)
            {
                _data[i].Cluster = grouping[i] + 1;
            }

            gridStudent.DataSource = _data;
            gridStudent.RefreshDataSource();

            MessageBox.Show("Done!", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }