【发布时间】:2020-05-18 17:48:04
【问题描述】:
我有一个 229 行的 pandas 数据框。每行代表一个“应变”。数据来自 4 个站点。菌株使用站点代码进行编码。
Once upon a time,此数据已聚类并
使用 Jaccard 相似系数和未加权平均连锁,检查的 229 个菌株在 S(相似性)231% 水平上形成了一个大组。在该组中,有 10 个集群或 phena 以超过 65% 的不同程度的相似性进行区分。 21 个菌株不属于这些表型组中的任何一个。没有进一步考虑少于五个成员的集群。
免责声明:我不是统计学家;我对过去均值和中位数的统计数据基本上一无所知。那时我有一个统计学家可以一起工作。我对机器学习算法也几乎一无所知,尽管从一般的角度来看,我知道聚类意味着什么。
我想尝试用更现代的方法重现聚类。我想我会尝试 k-means(如果这是一个糟糕的选择,请赐教)。
数据是布尔值。我已将其转置,以便每一列都是“应变”,而行是特征。 (对吗?)
代码:
In [106]: from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=10)
kmeans.fit(df_bool)
Out [106]:
KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,
n_clusters=10, n_init=10, n_jobs=None, precompute_distances='auto',
random_state=None, tol=0.0001, verbose=0)
In [107]: labels = kmeans.predict(df_bool)
centroids = kmeans.cluster_centers_
labels
Out [107]: array([5, 5, 2, 2, 0, 4, 9, 8, 1, 6, 1, 1, 7, 1, 3, 1, 1, 1, 1, 1],
dtype=int32)
问题 1:这个列表(我假设是集群编号)是我应该期待的吗?
问题 2:如何绘制部分或全部结果?
问题 3:我是否完全脱离了基地?即 K-means 对布尔数据有意义吗?我的 DataFrame 是否正确对齐?
我问对了问题吗?
【问题讨论】: