我有下一个代码,但是我不知道如何限制距离?例如,将半径在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))
为什么在这种情况下不使用熊猫并按条件分配组?
这样的东西
df = pd.DataFrame(data)
df1 = df[df.column2 > 2]
df2 = df[df.column2 <= 2]