int arr = ;
將arr中的元素分為三類:
#include #include #include using namespace std;
class ml
}//每個樣本屬於哪個類:c[mindistinex]:當前類,c[mindisindex][numc[mindisindex]]當前類的元素
c[mindisindex][numc[mindisindex]] = sample[i];
numc[mindisindex]++;
}//均值更新
int ifbreak = 0;
for (int i = 0; i < k; ++i)
int lastmeanvalue = meanvalue[i];
//當前類所有元素求均值,更新均值
meanvalue[i] = sum / numc[i];
//如果更新後均值未改變,說明當前類已更新完畢、未再變動
if (lastmeanvalue == meanvalue[i]) ifbreak++;
}//判斷均值是否被更新
if (ifbreak == k)
}cout << meanvalue[maxnumindex] << endl;
for (int m = 0; m < k; m++)
cout << endl;
}//cout << " break" << endl;
break;
}} }
};int main()
; vectorlightvalue(arr, arr + 10);
ml *p = new ml;
p->kmeans(lightvalue, 3);
delete p;
}
結果:
C 實現二維資料的k means聚類
k means 演算法是一種簡單有效的無監督學習方法,它可以有效地將多維空間 用n表示 中的點聚成乙個個緊密的簇。k means演算法的優化目標是使求出k個中心點,使每乙個點到該點的歐氏距離平方之和盡量小。簡單來說就是把乙個分到乙個類中的所有資料點的每一維相加,得乙個向量。然後,該向量的每一維除以該...
K means聚類演算法實現分類
k means屬於無監督學習from numpy import vstack from scipy.cluster.vq import kmeans,vq list1 88.0,64.0,96.0,85.0 list2 92.0,99.0,95.0,94.0 list3 91.0,87.0,99.0...
kmeans聚類 c 實現
num class 聚類數 num data 資料個數 dimension 資料維度 每個資料是多少維的 data 待聚類資料指標 cluster center 聚類中心指標 max error 前後兩次誤差降低到此值迭代終止 max iters 最大迭代次數 1 隨機初始化聚類中心 2 根據聚類中...