public void InheritanceCompleteTest1() { SingleLinkage singleLinkage = new SingleLinkage(); int inheritance = singleLinkage.TestInheritance(); Assert.AreEqual(inheritance, -1); }
public void SingleLinkageCluster7() { Start test = new Start(@"..\..\..\Data\DistanceSample3D.csv"); List <DataPoint> temp = test.GetDataPoints(); SingleLinkage link = new SingleLinkage(3, temp); link.Run(); int dataNum = link.GetClusters()[2].GetDataPoints().Count; Assert.AreEqual(dataNum, 1); }
public Task <string> GetClusterAnalysisAsync(IReadOnlyCollection <string[]> data) { if (data.Count == 0) { return(Task.FromException <string>(new ArgumentNullException())); } var instance = Utils.ClusterParse(data); var linkage = new SingleLinkage <DataPoint>(new DataPoint(null, null)); var clusteringAlg = new AgglomerativeClusteringAlgorithm <DataPoint>(linkage); var clustering = clusteringAlg.GetClustering(instance); var clustersJson = clustering.GetDendrogramJson(true, Formatting.Indented); return(Task.FromResult(clustersJson)); }
private void ClusteringWorkerDoWork(object sender, DoWorkEventArgs e) { // checks data points if (this._dataPoints == null || this._dataPoints.Count == 0) { return; } // selects linkage criterion ILinkageCriterion <DataPoint> linkage; var selectedIndex = e.Argument; switch (selectedIndex) { case 1: linkage = new CompleteLinkage <DataPoint>(this._dissimilarityMetric); break; case 2: linkage = new SingleLinkage <DataPoint>(this._dissimilarityMetric); break; case 3: linkage = new MinimumEnergyLinkage <DataPoint>(this._dissimilarityMetric); break; case 4: linkage = new CentroidLinkage <DataPoint>(this._dissimilarityMetric, DataPoint.GetMedoid); break; case 5: linkage = new WardsMinimumVarianceLinkage <DataPoint>( this._dissimilarityMetric, DataPoint.GetMedoid); break; default: linkage = new AverageLinkage <DataPoint>(this._dissimilarityMetric); break; } // clusters data-points var clusteringAlg = new AgglomerativeClusteringAlgorithm <DataPoint>(linkage); this._clusteringResult = clusteringAlg.GetClustering(this._dataPoints); }