我在一家电子商务公司工作,我负责根据客户的交易行为对他们进行聚类。我以前从未使用过集群,所以我遇到了一些困难。
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 维是否过于极端?这可能导致可怕的剪影分数。
非常感谢!