将 PCA 图和集群与标签耦合

数据挖掘 机器学习 特征提取 k-均值
2021-09-16 04:32:18

我正在尝试我的第一个关于机器学习的“项目”,但我有点卡住了。但是,我不确定这是否可能,但这是我的问题。

我想要实现的是根据用户在某个网站上的访问量对用户组进行聚类。所以我从这个特征矩阵开始:

USER    abc.be  abc.be/a    abc.be/b    xyz.be  xyz.be/a
123      0        0           0            0      1
456      1        0           1            0      0
789      2        3           1            0      0
321      1        0           1            0      1
654      1        1           1            1      1
987      0        1           0            3      0

所以我在这个例子中得到了 5 个特性(我的 5 个不同的网站)。所以然后我使用 PCA 来获得二维,所以我可以绘制它并看看它是如何进行的。

我的特征矩阵(在我的例子中)是 5 列 * 6 行。

我的 PCA 矩阵是 2 列 * 6 行。

我来到了这个情节(请注意,这个情节使用的数据与示例不同,但想法是一样的)

PCA 点和 k-means 质心

绿色点是我的 PCA 点红色圆圈是我的 K-Means 质心。

但我正在努力解决的部分是:所以我得到了我的集群(红色圆圈),但我怎么能用它说:“看起来大多数用户都去站点 A 或站点 B)?

那么如何将我的集群耦合到我的特征矩阵中的特征标签?

或者如何解决这个问题?

任何帮助表示赞赏:)

4个回答

那么如何将我的集群耦合到我的特征矩阵中的特征标签?

主成分不是直观的特征。这里似乎常见的是基于 PC 对用户进行聚类,然后根据原始特征研究聚类,即提取不同的聚类并根据不同的特征子集绘制数据,并为不同的聚类使用不同的颜色。它可能会给你一些直觉。

这两条路径可以在许多 PCA 结果中看到,其中信息随时间而变化。

例如,在您的情况下,初学者用户访问的次数少于旧用户,并且新用户的数量很可能高于旧用户,因此数据将在原点周围更加密集,并且远离原点变得更密集。这种现象也会影响您的 PC,因此您会在 PC 空间中看到一些沿不同路线的路径。

希望能帮助到你 :)

我不确定您要做什么。但一般来说,你可以看看这篇论文,了解 k-means 聚类和 PCA 之间的关系,尤其是定理 3.3。

我认为您正在尝试查看哪些原始(不是 PCA)功能有助于哪些集群用户落入,是吗?

首先,请注意您只是将 5d 数据集的维度降低到 2d。您需要注意刚刚通过将数据投影到 2d 中丢弃的数据有多少差异。你可以很容易地计算出这个如果您的二维特征占数据方差的 95%,那就太好了!您对哪些功能很重要有一些有效的见解。如果更低,比如 40%,那么就没有那么多了。

(从定性的角度来看,只需绘制不同颜色的集群。这会让您了解您丢弃了多少方差 - 如果集群看起来是连续的并且没有很多混合,那么从定性上讲,您也没有扔掉差异很大。)

其次,要意识到为了直观地了解哪些原始特征值对哪些集群有贡献,您需要使用原始特征。

您的问题的真正答案是,在那之后您应该 1) 在 5d 中聚类,2) 使用分类器,以及 3) 使用 5d 特征向量查看重要特征。这很关键,因为在 2d 中,仅仅因为您可能保留了大部分方差并不意味着最后一位可能包含非常有区别(阅读:重要)的信息,这些信息可能会改善您的潜在聚类错误并为您提供更准确的答案. 最重要的是,特征重要性将根据实际特征计算,而不是 PCA 线性组合特征,它不会直接转化为单个站点访问历史。

希望有帮助。

使用 PCA 的逆变换将聚类中心投影回原始特征向量。这让您直观地了解集群所代表的内容。作为第二步,您可以获取分配给一个集群的所有原始特征向量并计算每个特征维度的直方图。这会给您一种沿着原始特征维度的集群内变化和集群边界的感觉。