PCA对于分类功能?

vik*_*kky 20 python machine-learning data-mining scikit-learn

根据我的理解,我认为PCA只能用于连续功能.但是,虽然试图理解onehot编码和标签编码之间的区别来自以下链接中的帖子:

何时使用One Hot Encoding vs LabelEncoder vs DictVectorizo​​r?

它指出PCA之后的一个热编码是一种非常好的方法,这基本上意味着PCA应用于分类特征.因此困惑,请建议我一样.

Ano*_*sse 33

我不同意其他人的意见.

虽然你可以在二进制数据(例如单热编码数据)上使用PCA,但这并不意味着它是一件好事,或者它可以很好地工作.

PCA被设计为连续变量.它试图最小化方差(=平方偏差).当你有二元变量时,平方偏差的概念会崩溃.

所以是的,你可以使用PCA.是的,你得到一个输出.它甚至是一个最小平方的输出 - 它不像PCA会对这些数据进行分段.它有效,但它的意义远不如你想要的那么有意义 ; 并且据说比频繁模式挖掘更有意义.

  • PCA 的替代方案是否更适合 one-hot 编码的分类数据? (4认同)
  • 有人可以解释为什么方差的概念会因二元变量而崩溃吗?(我知道它与期望值是多余的,但它仍然传达了某种传播的感觉,不是吗?)此外,由于 PCA 是基于方差-协方差矩阵的分解,所以 **方差**二进制变量的分解也意味着二进制变量和任何其他类型的变量之间的**协方差**没有意义? (3认同)

小智 10

MCA 是用于分类数据降维的已知技术。在 R 中有很多包可以使用 MCA,甚至在混合上下文中与 PCA 混合使用。在 python 中也存在一个 mca 库。MCA 应用了与 PCA 类似的数学,实际上法国统计学家曾经说过,“数据分析是找到正确的矩阵来对角化”

http://gastonsanchez.com/visually-enforced/how-to/2012/10/13/MCA-in-R/


Ock*_*ius 6

基本上,PCA 发现并消除特征集上信息量较少(重复)的信息并降低特征空间的维数。换句话说,想象一个 N 维的超空间,PCA 找到了数据变化最大的 M (M < N) 个特征。通过这种方式,数据可以表示为 M 维特征向量。从数学上讲,它是某种特征空间的特征值和特征向量计算。

因此,特征是否连续并不重要。

PCA 广泛用于许多应用程序。主要用于在分类/识别之前消除来自某些传感器或硬件的嘈杂、信息较少的数据。

编辑:

从统计学上讲,分类特征可以看作是区间 [0,1] 中的离散随机变量。期望 E{X} 和方差 E{(XE{X})^2) 的计算对于离散 rvs 仍然有效且有意义。在分类特征的情况下,我仍然支持 PCA 的适用性。

考虑这样一种情况,您想预测“某一天是否会下雨”。您有分类特征 X,即“我是否必须在特定日期上班”,1 表示是,0 表示否。显然天气状况不取决于我们的工作时间表,所以 P(R|X)=P(R)。假设每周工作 5 天,在我们随机收集的数据集中,X 的 1 比 0 多。PCA 可能会导致在您的特征表示中删除这种低方差维度。

归根结底,PCA 用于降维,同时将信息损失降至最低。直观地说,我们依靠给定轴上数据的方差来衡量其对任务的有用性。我认为将其应用于分类特征没有任何理论上的限制。实际价值取决于应用和数据,连续变量也是如此。

  • 那么它有点归结为计算协方差矩阵的特征向量,因此具有二进制数据(例如one-hot)您将如何解释从二进制点到平均值的距离? (2认同)

Ole*_*kov 5

在对被视为单纯形顶点的分类变量计算 PCA 时,以下出版物显示了重要且有意义的结果:

Niitsuma H., Okada T. (2005) 分类变量的协方差和 PCA。见:Ho TB, Cheung D., Liu H. (eds) 知识发现和数据挖掘的进展。PAKDD 2005。计算机科学讲义,第 3518 卷。斯普林格,柏林,海德堡

https://doi.org/10.1007/11430919_61

可通过https://arxiv.org/abs/0711.4452(包括 PDF)获得。