Python中Kmeans算法的限制

问题描述 投票:0回答:1

我有下一个代码,但是我不知道如何限制距离?例如,将半径在2 km之内的那些分组。

from sklearn.cluster import KMeans
from sklearn import metrics
import numpy as np

v1=[3, 1, 1, 2, 1, 6, 6, 6, 5, 6, 7, 8, 9, 8, 9, 9, 8]
v2=[5, 4, 6, 6, 5, 8, 6, 7, 6, 7, 1, 2, 1, 2, 3, 2, 3]

x1 = np.array(v1)
x2 = np.array(v2)

X = np.array(list(zip(x1, x2))).reshape(len(x1), 2)
print(X)

import matplotlib.pyplot as plt
plt.plot(v1, v2, 'ro')
plt.axis([1, 9, 1, 8]) #Eje x: de 1 a 9; Eje Y: de 1 a 8
plt.show()

K = 3 
kmeans_model = KMeans(n_clusters=K).fit(X)

for i, l in enumerate(kmeans_model.labels_):
print("(x1,x2) -> Clase")
print("({0},{1}) ->:{2}".format(x1[i], x2[i], l))
python k-means
1个回答
0
投票

为什么在这种情况下不使用熊猫并按条件分配组?

这样的东西

df = pd.DataFrame(data)
df1 = df[df.column2 > 2]
df2 = df[df.column2 <= 2]
© www.soinside.com 2019 - 2024. All rights reserved.