machine-learning - 替换分类数据中的缺失值

标签 machine-learning missing-data categorical-data

假设我有一列包含分类数据“红色”“绿色”“蓝色”和空单元格

red
green
red
blue
NaN

我确信 NaN 属于红绿蓝,我应该用颜色的平均值替换 NaN 还是假设太强了?将会是

col1 | col2 | col3
  1      0     0
  0      1     0
  1      0     0
  0      0     1
 0.5    0.25  0.25

或者甚至缩放最后一行但保持比例以使这些值的影响较小?通常最佳实践是什么?

 0.25  0.125  0.125

最佳答案

处理缺失数据的最简单策略是删除包含缺失值的记录。

库提供了 Imputer() 预处理类,可用于替换缺失值。由于是分类数据,不建议使用均值作为替换值。您可以使用

from sklearn.preprocessing import Imputer
imp = Imputer(missing_values='NaN', strategy='most_frequent', axis=0)

Imputer 类直接在 上运行数组而不是 DataFrame。

最后但并非最不重要的一点是,并非所有机器学习算法都无法处理缺失值。不同的ML实现也不同。

关于machine-learning - 替换分类数据中的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46120727/

相关文章:

python - Pandas 0.18 : out of memory error when reading CSV file with categoricals

machine-learning - 有没有一种方法可以使用带有分类变量的决策树而无需进行单热编码?

machine-learning - 使用 fit_generator 时 Keras 中的噪声验证丢失

python - Google Colab 花费太多时间来训练分类器。如何解决这个问题?

python - 如何使用分组依据并返回具有空值的行

r - R 中 K-Modes 聚类的稳定性

machine-learning - 优化网络爬虫的关键字权重

machine-learning - 网格上的 CNN 回归 - 卷积神经网络的局限性?

python - 还有比 pandas fillna() 更快的方法吗?

python - 使用 loadtxt (numpy) 读取丢失数据的文件