📄 sdicore.cs
字号:
using System;
using System.Collections;
namespace ClusterLibrary
{
/// <summary>
/// SD Index甫 拌魂 秦 林绰 努贰胶
/// </summary>
public class SDICore
{
double aValue;
bool isSetaValue = false;
public SDICore(){
}
public double Scat( Set clusters ){
double nCluster = clusters.Count;
Point varClusterPoint;
Point varSetPoint;
double dVarCluster = 0.0;
double dVarSet = 0.0;
double result = 0.0;
for ( int i = 0; i < clusters.Count; i++ ){
varClusterPoint = Utilities.Variance ((Cluster)clusters[i]);
dVarCluster += Utilities.Distance( varClusterPoint );
}
varSetPoint = Utilities.Variance(clusters);
dVarSet = Utilities.Distance( varSetPoint );
result = (1.0 / nCluster) * dVarCluster / dVarSet;
return result;
}
public double Dis( Set clusters ){
ArrayList distanceList = Utilities.InterclusterDistance( clusters );
double max = Utilities.Max( distanceList );
double min = Utilities.Min( distanceList );
double result = 0.0;
double temp;
for ( int i = 0; i < clusters.Count ; i++ ){
temp = 0.0;
for ( int j = 0; j < clusters.Count ; j ++ ){
temp += Utilities.Distance( (Cluster)clusters[i], (Cluster)clusters[j] );
}
result += (1.0 / temp);
}
return result * max / min;
}
public double a( Set clusters ){
return Dis( clusters );
}
public void SetA( Set clusters ){
this.aValue = a( clusters );
this.isSetaValue = true;
}
public double SDI( Set clusters ){
if ( this.isSetaValue == false ) {
System.Windows.Forms.MessageBox.Show("a 蔼阑 汲沥秦 林技夸");
return 0.0;
}
return this.aValue * this.Scat( clusters ) + this.Dis( clusters );
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -