我在Python中有一个聚类算法,我正试图将其转换为PySpark (用于并行处理)。
我有一个包含区域的数据集,并在这些区域中存储。我想对单个区域中的所有存储执行我的聚类算法。
在进入ML之前,我有几个for循环。如何修改代码以删除PySpark中的for循环?我在PySpark中读过for循环通常不是一个好的实践,但我需要能够在许多子数据集上执行模型。有什么建议吗?
作为参考,我目前正在循环(通过Pandas DataFrames),如下所示:
for region in df_region:
for distinct stores in region:
[
我使用集群实现,我希望数据X形成我在算法中定义的集群数量(我相信这就是它的工作方式)。但这种行为令人困惑。
cm = FCM(n_clusters=6)
cm.fit(X)
此代码生成一个带有4个标签的图- 0,2,4,6
cm = FCM(n_clusters=4)
cm.fit(X)
此代码生成一个带有4个标签的图- 0,1,2,3
当我初始化簇号时,我期望标签0,1,2,3,4,5为6。
代码:
from fcmeans import FCM
from matplotlib import pyplot as plt
from seaborn import scatterplot as s
我建立了一个GMM模型,并使用它来进行预测。
bead = df['Ce140Di']
dna = df['DNA_1']
X = np.column_stack((dna, bead)) # create a 2D array from the two lists
#plt.scatter(X[:,0], X[:,1], s=0.5, c='black')
#plt.show()
gmm = GaussianMixture(n_components=4, covariance_type='tied')
gmm.fit(X)