如何修改此代码以初始化所采取的数据点域内的质心?如果DATA = [[2.0,5.0],[1.0,5.0],[22.0,55.0],[42.0,12.0],[15.0,16.0]] 然后质心(x,y)可以是x属于的任何值:[1,42]和y属于:[5,55]。 质心不一定是数据点。如何初始化属于数据点域的“k-均值聚类”中的质心?
注意:数据的数据表是float。
import random
import math
BIG_NUMBER = math.pow(10, 10)
data = []
centroids = []
class Centroid:
def __init__(self, x, y):
self.x = x
self.y = y
def set_x(self, x):
self.x = x
def get_x(self):
return self.x
def set_y(self, y):
self.y = y
def get_y(self):
return self.y
def initialize_centroids(k,DATA):
for j in range(k):
x = random.choice(DATA)
centroids.append(Centroid(x[0], x[1]))
return
示例代码有什么问题?质心是不是独一无二的? –
@ James K - 初始化的质心不应该只是数据点中的一个,而质心(x,y)应该是任何值,使得x属于:[1,42],y属于:[5,55]为它会影响k均值聚类的性能。 – Utkarsh