对聚类感到困惑
Posted
技术标签:
【中文标题】对聚类感到困惑【英文标题】:Confused with Clustering 【发布时间】:2020-04-19 07:52:13 【问题描述】:我对数据科学过程中的集群感到非常困惑。 我们知道,在二维空间中对相似点进行分组的过程是基于这个公式:
distance = sqrt( (x2-x1)^2 + (y2-y1)^2 )
但是在向 sklearn 引入输入时,我们只是输入 x 轴值 :( y 轴值发生了什么变化?
例如我们有以下数据库:
index x y
------------------
0 5 8
1 6 9
2 7 10
我们将 x 引入 KMeans
from sklearn.cluster import KMeans
kmeans = KMeans(2)
kmeans.fit(df["x"])
没有y值如何计算距离?
【问题讨论】:
好吧,看起来您只是将 x 值传递给它,因此可以在一维中运行聚类算法。 (对其进行搜索。)如果您在 2D 中考虑它,这类似于将所有 y 值设为零。 在 scikit 的示例中,他们为fit
函数使用了一个 numpy 点数组,而不仅仅是 x 值。 scikit-learn.org/stable/modules/generated/…
这是一个愚蠢的问题。我犯了一个可怕的错误:|
【参考方案1】:
KMeans 聚类可以在任意数量的维度上完成。如您所说,可以使用Euclidean distance 计算距离。可以针对任意数量的维度计算此距离。你传递了一个数组,所以在这种情况下它只是一维,所以公式将简化为:
distance = sqrt((x2-x1)^2)
这实际上只是 (x2-x1) 的绝对值
【讨论】:
以上是关于对聚类感到困惑的主要内容,如果未能解决你的问题,请参考以下文章