【问题标题】:Preprocessing Dataset with Large Categorical Variables预处理具有大分类变量的数据集
【发布时间】:2023-03-17 01:36:01
【问题描述】:

我试图找出这个问题的基本答案,但 Stack Overflow 上似乎没有一个最合适的答案。

我有一个包含 40 列和 55,000 行的数据集。这些列中只有 8 个是数字的。剩下的 32 个是分类的,每个都有字符串值。

现在我希望对预测模型进行探索性数据分析,我需要删除某些不相关的列,这些列与目标(预测变量)的相关性不高。但是,由于所有这 32 个变量都是分类变量,我该怎么做才能看到它们与目标变量的相关性?

我想尝试什么:

  1. LabelEncoding 所有 32 列然后通过 PCA 运行降维,然后创建预测模型。 (如果我这样做,那么如何通过删除与目标具有低 corr() 的不相关列来清理我的数据?)

  2. 一个热编码所有 32 列并直接在其上运行预测模型。 (如果我这样做,那么清洗数据的概念就完全失去了,列的数量会猛增,模型会考虑所有相关和不相关的变量进行预测!)

在这种情况下,最终在您有许多分类列的情况下制作预测模型的最佳做法应该是什么?

【问题讨论】:

    标签: python pandas machine-learning data-analysis preprocessor


    【解决方案1】:

    你可以看看你的分类变量是否适合 Spearman 等级相关,它对分类变量进行排名并计算相关系数。但是,请注意分类变量之间的共线性。

    【讨论】:

      【解决方案2】:

      你必须检查相关性。我能想到两种情况。

      1. 如果目标变量是连续变量且自变量是分类变量,则可以使用 Kendall Tau 相关性
      2. 如果目标变量和自变量都是分类变量,则可以使用 CramersV 相关性

      python 中有一个包,它可以为你完成所有这些工作,你可以只选择你需要的列..

      点安装 ctrl4ai

      从 ctrl4ai 导入 automl

      automl.preprocess(数据框,学习类型)

      使用 help(automl.preprocess) 了解有关超参数的更多信息,您可以按照自己的方式自定义预处理..

      请检查 automl.master_correlation,它根据我上面解释的方法检查相关性。

      【讨论】:

        猜你喜欢
        • 2015-06-19
        • 1970-01-01
        • 2020-02-07
        • 2018-10-01
        • 1970-01-01
        • 2015-11-18
        • 1970-01-01
        • 1970-01-01
        • 2018-03-08
        相关资源
        最近更新 更多