Ejemplo n.º 1
0
        private void writeGaussianData(System.IO.StreamWriter sw)
        {
            GaussianClusterCollection gCol = (GaussianClusterCollection)clusterCollection;

            for (int i = 0; i < gCol.Count; i++)
            {
                GaussianCluster gClust = gCol[i];
                sw.WriteLine(String.Join(",", (from double d in gClust.Mean select d.ToString()).ToArray()));
                sw.WriteLine(String.Join(",", (from double d in gClust.Covariance select d.ToString()).ToArray()));
                sw.WriteLine(gClust.Proportion.ToString());
            }
        }
        /// <summary>
        ///   Estimates Gaussian distributions from the data.
        /// </summary>
        ///
        private void btnCompute_Click(object sender, EventArgs e)
        {
            // Create a new Gaussian Mixture Model
            var gmm = new GaussianMixtureModel(k);

            // If available, initialize with k-means
            if (kmeans != null)
            {
                gmm.Initialize(kmeans);
            }

            // Compute the model
            GaussianClusterCollection clustering = gmm.Learn(observations);

            // Classify all instances in mixture data
            int[] classifications = clustering.Decide(observations);

            // Draw the classifications
            updateGraph(classifications);
        }
Ejemplo n.º 3
0
        private void gaussianReport(Forms.RunningProcess.frmRunningProcessDialog rd)
        {
            GaussianClusterCollection gCol = (GaussianClusterCollection)clusterCollection;

            for (int i = 0; i < gCol.Count; i++)
            {
                GaussianCluster gClust = gCol[i];
                double[]        mns    = gClust.Mean;
                double[,] cov = gClust.Covariance;
                rd.addMessage("\n\nCluster " + Labels[i] + ":\nMeans: " + String.Join(", ", (from double d in mns select d.ToString()).ToArray()) + "\nCovariance:");
                for (int j = 0; j < VariableFieldNames.Length; j++)
                {
                    string[] covStrArr = new string[VariableFieldNames.Length];
                    for (int l = 0; l < covStrArr.Length; l++)
                    {
                        covStrArr[l] = cov[l, j].ToString();
                    }
                    rd.addMessage("\n" + String.Join(",", covStrArr));
                }
            }
        }