ЧАСТЬ 1:
TypeError: объект builtin_function_or_method не может быть подписан
Это чисто ошибка numpy
, и она появляетсяпотому что вы забыли использовать круглые скобки () для определения массива numpy.
ЧАСТЬ 2:
Прежде всего, в init_medians
вы передаете 4 списка, но они не имеют одинаковые размеры.Последний список содержит 4 элемента (то есть [0.01, 0.02, 0.03, 0.04]
) вместо 3 для представления медиан кластера.
Во-вторых, аргумент init
KMeans ожидает в качестве входных данных массив данных формы (n_clusters,n_features).В вашем случае это должен быть (4, 3) массив пустышек, подобный следующему:
init_medians=np.array( [[0.1, 0.2, 0.3], [0.4, 0.5, 0.6], [0.7, 0.8, 0.9], [0.01, 0.02, 0.03]] )
model = KMeans(n_clusters=4, max_iter=300, init=init_medians)
model.fit(clean)
ЧАСТЬ 3: Матрица данных X должна бытьnumpy массив не список списков.
Полный код:
clean=np.array([[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3],[0.1, 0.2, 0.3]])
init_medians=np.array([[0.1, 0.2, 0.3], [0.4, 0.5, 0.6], [0.7, 0.8, 0.9], [0.01, 0.02, 0.03]])
model = KMeans(n_clusters=4, max_iter=300, init=init_medians)
model.fit(clean)