我有两个数据帧需要聚类,我正在尝试执行以下操作:
应用 PCA- 以删除异常值,并使用具有 3 个组件的 PCA 对其进行可视化。我使用总解释方差 97,5% 用于异常值去除过程。
- 反向变换并获取反转变形数据帧与原始数据帧之间的 MSE 分数。
- 使用计算出的 MSE 分数的 IQR 括号上限来消除异常值。
- 应用具有 3 个组件的 PCA 来可视化和确定新数据帧上的聚类数。
我的主要问题是:
MSE 的 IQR 是否是移除的良好标准?
我仅限于上括号,因为我们正在处理绝对值。如果不是,并且我正在混合概念,那么这种转换的好标准是什么?
或者我应该放弃 PCA 并采用其他异常值检测方法,如果是这样,是哪一种?
最终,在绘制 x,y,z 图时,我仍然会可视化离聚类很远的点,这是否意味着它们不是异常值,只是代表一个小聚类的几个分散的远距离点?还是异常值检测无效?
最后,在第二个数据帧上,3D 可视化具有大约 40% 的解释方差,应用相同的决策过程是否公平?
pca
库提供的功能可用于可视化、异常值检测、处理解释方差。通常,Hotelling T2 测试和 SPE/dmodx 是用于在使用 PCA 时去除异常值的技术。可以在此处找到有关异常值检测的上一篇文章:https://stackoverflow.com/a/63043840/13730780
但一般来说,如果您的目标是检测异常值,这取决于您拥有的数据类型(连续、分类、独热、混合数据集(,是否希望/需要包含上下文。如果你的方法是通过聚类,你可以尝试 clusteval 库,其中包括dbscan
等方法。