【问题标题】:If I'm trying to predict a label for a sample, but the sample is missing features, how should I deal with it?如果我试图预测样本的标签,但样本缺少特征,我应该如何处理?
【发布时间】:2021-08-20 02:28:52
【问题描述】:

我现在有一个概念问题;我知道当 .predict() 用于具有 NaN 值的示例时,sklearn 不喜欢它,但是如果我想预测具有 NaN/缺失特征的示例的标签该怎么办?

目前,我将 NaN 单元格替换为 -999 作为占位符度量,但我不确定这是否是个好主意。不幸的是,搜索预测样本中的缺失值并不会产生有用的结果。

【问题讨论】:

    标签: python machine-learning scikit-learn missing-data


    【解决方案1】:

    当您的数据完整时,机器学习模型的性能会更好,因此建议您使用汇总统计量或使用与位置较近的数据点相同的信息(例如,使用 KNN)来估算缺失值。

    Scikit Learn 包含 suite of algorithms to impute missing values。最常见的方法是使用带有“平均”策略的SimpleImputer。

    您还可以使用更简单的方法并使用 Pandas 使用 fillna() 填充数据集中的所有 NA 或使用 dropna() 删除 NA。

    熟悉您正在使用的数据非常重要。有时丢失的数据是有意义的。例如,在处理收入数据时,一些非常富裕的人拒绝披露他们的收入,而低收入的人总是会披露。在这种情况下,如果将前一组的收入替换为0或均值,则预测结果可能无效。

    在how to handle missing data in Python 上查看此分步指南。

    【讨论】:

      【解决方案2】:

      您可以尝试的一种方法是使用您用来填充训练数据集中缺失值的值来填充测试示例中的缺失值。例如,如果您使用训练数据的均值填充该特征的缺失值,则可以使用该均值来填充测试示例中的缺失值。

      【讨论】:

        猜你喜欢
        • 2022-01-17
        • 1970-01-01
        • 2013-12-21
        • 2021-03-25
        • 2018-09-13
        • 2023-03-18
        • 2020-07-20
        • 2020-01-08
        • 2011-12-01
        相关资源
        最近更新 更多