我已经查看了关于处理分类数据中缺失值的讨论。
数据集中有大约6个分类列
包含缺失值
。这将用于二元分类问题。
我看到了不同的处理方法,其中一种是直接保留分类列中的缺失值
,另一种是使用from sklearn.preprocessing import Imputer
进行填补,但我不确定哪种方法更好。
如果填补
是更好的选择,在应用LR,决策树,随机森林
等模型之前,我可以使用哪些库?
谢谢!
回答:
处理缺失数据有多个方法:
- 有些模型可以自动处理(例如XGBoost, LightGBM)
- 你可以尝试用模型来填补缺失值。你应该将数据分成训练集和测试集,并尝试不同的模型来衡量哪一个效果最好。但通常情况下,这种方法效果并不理想。scikit-learn中实现了KNNImputer
- 你也可以定义规则:将缺失值设为0、均值、中位数或其他适合的数据集的数值。scikit-learn中实现了SimpleImputer
- 如果以上方法都不适合,你也可以删除包含缺失值的行。
关于scikit-learn中值填补的更多详情:https://scikit-learn.org/stable/modules/impute.html