0
的心如果我有一些隨機的數據集,讓我們說查找數據集
X Y
1.2 16
5.7 0.256
128.54 6.879
0 2.87
6.78 0
2.98 3.7
... ...
x' y'
我如何才能找到這個數據集的質心座標?
p.s.這裏是我的嘗試,但得到錯誤的結果
float Dim1[K];
float Dim2[K];
float centroidD1[K];
float centroidD2[K];
int K = 4;
int counter[K];
for(int i = 0; i < K ; i++)
{
Dim1[i] = 0;
Dim2[i] = 0;
counter[i] = 0;
for(int j = 0; j < hash["Cluster"].size(); j++)
{
if(hash["Cluster"].value(j) == i+1)
{
Dim1[i] += hash["Dim_1"].value(j);
Dim2[i] += hash["Dim_2"].value(j);
counter[i]++;
}
}
}
for(int l = 0; l < K; l++)
{
centroidD1[l] = Dim1[l]/counter[l];
centroidD2[l] = Dim2[l]/counter[l];
}
我猜我選錯算法做它,因爲我得到錯誤的結果。
添加所有數字併除以元素數量? –
@Kerrek SB請參閱更新後的文章 – Mike
您的程序輸出了什麼以及期望的結果是什麼? – Renan