C 實現一維資料kmeans分類

2021-09-11 15:17:44 字數 992 閱讀 1532

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 根據聚類中...