私はOpenCVのPythonインターフェースを使用して、多次元データ(通常は7次元)のK-Meansクラスタリングを実行しています。クラスターに対して奇妙な結果が得られています。n個のクラスター(インデックス0からn)を要求する場合、一部のクラスターにはポイントが割り当てられていません。その結果、クラスターが予想よりも少なくなります。誰かがOpenCVのpythonK-Means実装をうまく使用しましたか?いくつかのユーザーエクスペリエンスまたはアドバイスが最も役立ちます。
これが私のPython実装のコードスニペットです:
points = cv.CreateMat(dim1, dim2, cv.CV_32FC2)
clusters = cv.CreateMat(dim1, 1, cv.CV_32SC1)
for a in range(0,dim0):
for b in range(0,dim1):
for c in range(0,dim2):
#print float(list[a*dim1*dim2 + b*dim2 + c])
cv.Set2D( points, b, c, float(list[a*dim1*dim2 + b*dim2 + c]) )
cv.KMeans2(points, numClusters, clusters, (cv.CV_TERMCRIT_EPS + cv.CV_TERMCRIT_ITER, 100000, 0.00000001), 50)
for d in range(0,dim1):
f.write(str(int(clusters[d,0])))
f.write(' ')
f.write('\n')
よろしく、
ステファン