首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clusters=6 -c-means-设置初始聚类数量,但仅生成4个聚类标签

clusters=6 -c-means-设置初始聚类数量,但仅生成4个聚类标签
EN

Stack Overflow用户
提问于 2019-07-16 19:24:32
回答 2查看 1.5K关注 0票数 0

我使用fuzzy-c-means集群实现,我希望数据X形成我在算法中定义的集群数量(我相信这就是它的工作方式)。但这种行为令人困惑。

代码语言:javascript
复制
cm = FCM(n_clusters=6)
cm.fit(X)

此代码生成一个带有4个标签的图- 0,2,4,6

代码语言:javascript
复制
cm = FCM(n_clusters=4)
cm.fit(X)

此代码生成一个带有4个标签的图- 0,1,2,3

当我初始化簇号时,我期望标签0,1,2,3,4,5为6。

代码:

代码语言:javascript
复制
from fcmeans import FCM
from matplotlib import pyplot as plt
from seaborn import scatterplot as scatter

# fit the fuzzy-c-means
fcm = FCM(n_clusters=6)
fcm.fit(X)

# outputs
fcm_centers = fcm.centers
fcm_labels  = fcm.u.argmax(axis=1)

# plot result
%matplotlib inline
f, axes = plt.subplots(1, 2, figsize=(11,5))
scatter(X[:,0], X[:,1], ax=axes[0])
scatter(X[:,0], X[:,1], ax=axes[1], hue=fcm_labels)
scatter(fcm_centers[:,0], fcm_centers[:,1], ax=axes[1],marker="s",s=200)
plt.show()
EN

回答 2

Stack Overflow用户

发布于 2019-07-18 04:16:52

模糊c-均值算法是一种模糊聚类算法。

标签只是模糊赋值的近似值。

最有可能的情况是,两个集群非常弱,因此永远不会赢得用于生成标签的argmax操作。这并不意味着这些聚类没有被使用,你只是没有使用完整的模糊结果。

票数 0
EN

Stack Overflow用户

发布于 2019-07-16 21:12:13

我读到过它,看起来一旦算法达到拐点(它可以对数据执行的最大聚类数),它就不会创建比这个更多的东西。因此,在我的问题中,4是algo对给定数据集执行的最大聚类数。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57056156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档