【问题标题】:Handling missing categorical values ML处理缺失的分类值 ML
【发布时间】:2020-09-04 04:57:16
【问题描述】:

我已经通过replace missing values in categorical data 处理分类数据中的缺失值。

数据集大约有6 categorical columnsmissing values。这将是一个二元分类问题

我看到了不同的方法,其中一种是 just leave the missing values in category column as such,另一种是使用 from sklearn.preprocessing import Imputer 进行估算,但不确定哪种方法更好。

如果imputing 是更好的选择,我可以在应用LR,Decision Tree, RandomForest 之类的模型之前使用哪些库。

谢谢!

【问题讨论】:

  • 没有通用答案,取决于模型+数据集(例如:xgboost 处理开箱即用的缺失值..)

标签: python machine-learning classification missing-data imputation


【解决方案1】:

有多种方法可以处理丢失的数据:

  • 某些模型会处理它(例如 XGBoost、LightGBM)
  • 您可以尝试用模型来估算它们。您应该将数据拆分为训练集和测试集,并尝试不同的模型来衡量哪种模型效果最好。但更多时候不是,它不能很好地工作。在 sklearn 中实现了一个KNNImputer
  • 您还可以定义规则:根据您的数据集,将缺失值设置为 0、均值、中位数或任何有效的值。这是 sklearn 中的 SimpleImputer 实现
  • 如果以上方法都不适合您,您也可以删除缺少值的行。

有关在 sklearn 中估算值的更多详细信息:https://scikit-learn.org/stable/modules/impute.html

【讨论】:

    【解决方案2】:

    添加到@CoMartel,

    1. 没有特定的规则可以保证您获得良好的结果。您需要将所有已知的方法一一检查并观察模型的性能。

    2. 但是,如果某列的缺失值比率非常高(例如 > 总行数的 50%。阈值也可能不同),则最好删除该列。

    3. 1234563该模式将是比均值和中位数更好的选择

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      • 2016-10-03
      • 2020-09-24
      相关资源
      最近更新 更多