2

我在一家电子商务公司工作,我负责根据客户的交易行为对他们进行聚类。我以前从未使用过集群,所以我遇到了一些困难。

1st) 我收集了有关客户的数据,并选择了 12 个变量来很好地说明这些客户的行为方式。数据集的每一行代表 1 个用户,其中的列是我选择的 12 个特征。

2nd)我已经删除了一些异常值并建立了一个相关矩阵以检查冗余变量。结果发现其中一些是高度相关的(> 0.8 相关性)

3)我在所有 12 个变量上使用了 sklearn 的 RobustScaler,以确保变量的可变性不会发生太大变化(StandardScaler 在我的轮廓上做得不好)

4)我在数据集上运行 KMeans 并得到了 2 个集群的非常好的结果(>70% 的剪影)

5th)我尝试在缩放之后/聚类之前进行 PCA,以将我的维度从 12 减少到 2,令我惊讶的是,我的轮廓开始变为 30~40%,当我绘制数据点时,它只是一个很大的质量图的中心。

我的问题是:

1) sklearn 上的 RobustScaler 和 StandardScaler 有什么区别?我应该什么时候使用每个?

2) 我应该这样做:原始数据 -> 清理数据 -> 标准化 -> PCA/TSNE -> 聚类?或者 PCA 应该在标准化之前出现吗?

3) 通过 PCA 减少 12 -> 2 维是否过于极端?这可能导致可怕的剪影分数。

非常感谢!

4

1 回答 1

0

避免比较不同投影或比例的剪影。内部措施往往过于敏感。

不要将 tSNE 用于集群(Google 用于 stats.SE 的讨论,请随时将链接编辑到此答案中)。会造成假分离和假邻接;这是一种可视化技术。

PCA 将缩小高方差轴,并放大低方差方向。如果主轴是您感兴趣的,那么总体上会降低质量(如果不是,则预计会有所帮助)。但是如果 PCA 可视化只显示一个大斑点,那么 0.7 的轮廓应该是不可能的。对于如此高的轮廓,集群在 PCA 视图中应该是可分离的。

于 2018-02-16T19:17:19.853 回答