1 回答

TA貢獻1799條經驗 獲得超8個贊
您可能會發現AffinityPropagation
這里很有用,因為它不需要指定要生成的簇的數量。然而,您可能需要調整 和damping factor
,preference
以便它產生預期的結果。
在提供的示例中,默認參數似乎可以完成這項工作:
from sklearn.cluster import AffinityPropagation
X = np.array([1, 1.5, 0.4, 1.1, 23, 24, 22.5,?
? ? ? ? ? ? ? 21, 20, 25, 40, 50, 50, 51, 52, 53]).reshape(-1, 1)
ap = AffinityPropagation(random_state=12).fit(X)
y = ap.predict(X)
print(y)
# array([0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2], dtype=int64)
要從 獲取各個簇X,您可以使用以下方法建立索引y:
first_cluster = X[y==0].ravel()
first_cluster
# array([1. , 1.5, 0.4, 1.1])
second_cluster = X[y==1].ravel()
second_cluster
# array([23. , 24. , 22.5, 21. , 20. , 25. ])
添加回答
舉報