『壹』 為什麼用matlab做數據挖掘呢
數據可視化效果好!圖形表示出來比較形象,說服力強!
『貳』 求KM演算法的matlab實現 急
這個演算法的函數matlab中本身就有,名稱為kmeans,你可以試試很好用。
『叄』 求k近鄰法實例,有的給我發一個,matlab程序。求高手啊!
大奎!哥來要分!
發個演算法吧,以免口舌,VS2008C#演算法代碼,剛學C#,代碼有些粗糙,絕對好使,想要全部代碼與本人聯系。呵呵~: )
public void knnsf(float PH,float JD,float NH4,float COD,float BOD,float SS,float XTD)
{
double[,] kn = new double[81, 2];
int a = 0, b = 0, c = 0;
//計算歐氏距離
for (int i = 0; i < 27; i++ )
{
kn[i, 0] = Math.Sqrt( Math.Pow(class1[i, 1] - PH, 2) + Math.Pow(class1[i, 2] - JD, 2) + Math.Pow(class1[i, 3] - NH4, 2) +
Math.Pow(class1[i, 4] - COD, 2) + Math.Pow(class1[i, 5] - BOD, 2) + Math.Pow(class1[i, 6] - SS, 2) +
Math.Pow(class1[i, 7] - XTD, 2));
kn[i, 1] = 1;
kn[i+27,0] = Math.Sqrt(Math.Pow(class2[i, 1] - PH, 2) + Math.Pow(class2[i, 2] - JD, 2) + Math.Pow(class2[i, 3] - NH4, 2) +
Math.Pow(class2[i, 4] - COD, 2) + Math.Pow(class2[i, 5] - BOD, 2) + Math.Pow(class2[i, 6] - SS, 2) +
Math.Pow(class2[i, 7] - XTD, 2));
kn[i+27, 1] = 2;
kn[i+54,0] = Math.Sqrt(Math.Pow(class3[i, 1] - PH, 2) + Math.Pow(class3[i, 2] - JD, 2) + Math.Pow(class3[i, 3] - NH4, 2) +
Math.Pow(class3[i, 4] - COD, 2) + Math.Pow(class3[i, 5] - BOD, 2) + Math.Pow(class3[i, 6] - SS, 2) +
Math.Pow(class3[i, 7] - XTD, 2));
kn[i+54, 1] = 3;
}
//選擇排序法
for (int i = 0; i < 81; i++ )
{
int k = 0;
double mintmp = kn[i, 0],clas=kn[i,1];
for (int j = i+1; j < 81; j++)
{
if (mintmp > kn[j, 0])
{
mintmp = kn[j, 0];
clas = kn[j, 1];
k = j;
}
}
kn[k, 0] = kn[i, 0];
kn[k, 1] = kn[i, 1];
kn[i, 0] = mintmp;
kn[i, 1] = clas;
}
//選擇K=30個近鄰
for (int k = 0; k < 3; k++)
{
if (kn[k, 1] == 1) a++;
if (kn[k, 1] == 2) b++;
if (kn[k, 1] == 3) c++;
}
//統計近鄰類別
if (a > b && a > c)
{
classes = 1;
}
if (b > a && b > c)
{
classes = 2;
}
if (c > b && c > a)
{
classes = 3;
}
}