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); }
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)); } } }