【问题标题】:Scale one-hot encoded variables for PCA为 PCA 缩放 one-hot 编码变量
【发布时间】:2018-10-31 20:27:30
【问题描述】:

我的数据混合了连续变量和分类变量。我计划对分类变量进行 one-hot 编码,缩放数据集(mean=0,std=1),然后执行 PCA 以减少维数。我需要知道在进行 PCA 之前是否也应该类似地缩放 one-hot 编码变量?我将为此使用 python scikit-learn 包。

【问题讨论】:

  • 当您说缩放数据集时,您是指完整的数据集,还是仅指非 one-hot 编码的列?
  • 这实际上是一个问题:我应该只缩放连续变量还是整个数据集(包括 one-hot 编码变量)?
  • 为什么要 PCA 之前扩展功能? PCA 对输入特征规模的差异是否敏感?我想你会想要在 PCA 之后进行缩放 以使依赖于距离测量的 ML 模型可以消化输入
  • 也许这会有所帮助:kaggle.com/general/21449
  • 谢谢@VivekKumar。很抱歉造成额外的混乱

标签: scikit-learn pca one-hot-encoding


【解决方案1】:

我想,this answer to a similar question on SO is relevant。 StackExchange 上也有一般性讨论:https://stats.stackexchange.com/questions/5774/can-principal-component-analysis-be-applied-to-datasets-containing-a-mix-of-cont。但是,它仅在 R 中引入了一个包。

python 中唯一能找到的包是这个:https://github.com/MaxHalford/prince。请注意,它是一个私有包,因此不应期望在维护者的空闲时间之外获得广泛的支持。在这个包中FAMD 是相关工具,目前正在建设/调试中。

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 2017-10-03
    • 2021-04-14
    • 1970-01-01
    • 2014-07-31
    • 2023-04-08
    • 2018-02-22
    • 1970-01-01
    • 2017-06-21
    相关资源
    最近更新 更多