gpt4 book ai didi

python - PySpark 如何找到合适数量的集群

转载 作者:行者123 更新时间:2023-12-03 23:36:07 25 4
gpt4 key购买 nike

当我使用 Python 和 sklearn 时,我绘制了肘部方法以找到合适数量的 KMean 集群。当我在 PySpark 工作时,我也想做同样的事情。我知道由于 Spark 的分布式特性,PySpark 的功能有限,但是,有没有办法获得这个数字?

我正在使用以下代码绘制肘部 使用 Elbow 方法找到最佳簇数
从 sklearn.cluster 导入 KMeans

wcss = []
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, init='k-means++', max_iter=300, n_init=10, random_state=0)
kmeans.fit(X)
wcss.append(kmeans.inertia_)

plt.plot(range(1, 11), wcss)
plt.title('The Elbow Method')
plt.xlabel('Number of clusters')
plt.ylabel('WCSS')
plt.show()

enter image description here

最佳答案

我用另一种方式做到了。使用 Spark ML 计算特征的成本并将结果存储在 Python 列表中,然后绘制它。

# Calculate cost and plot
cost = np.zeros(10)

for k in range(2,10):
kmeans = KMeans().setK(k).setSeed(1).setFeaturesCol('features')
model = kmeans.fit(df)
cost[k] = model.summary.trainingCost

# Plot the cost
df_cost = pd.DataFrame(cost[2:])
df_cost.columns = ["cost"]
new_col = [2,3,4,5,6,7,8, 9]
df_cost.insert(0, 'cluster', new_col)

import pylab as pl
pl.plot(df_cost.cluster, df_cost.cost)
pl.xlabel('Number of Clusters')
pl.ylabel('Score')
pl.title('Elbow Curve')
pl.show()

关于python - PySpark 如何找到合适数量的集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56371503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com