如何在应用机器学习算法之前处理数据集中的缺失值?如何在Python中处理缺少的机器学习NaN
我注意到,丢失缺失的NAN值不是一件聪明的事情。我通常使用熊猫进行内插(计算平均值)并填充数据,这是一种有效的工作,并提高了分类准确性,但可能不是最好的做法。
这是一个非常重要的问题。 处理数据集中缺失值的最佳方法是什么?
例如,如果你看到这个数据集,只有30%有原始数据。
Int64Index: 7049 entries, 0 to 7048
Data columns (total 31 columns):
left_eye_center_x 7039 non-null float64
left_eye_center_y 7039 non-null float64
right_eye_center_x 7036 non-null float64
right_eye_center_y 7036 non-null float64
left_eye_inner_corner_x 2271 non-null float64
left_eye_inner_corner_y 2271 non-null float64
left_eye_outer_corner_x 2267 non-null float64
left_eye_outer_corner_y 2267 non-null float64
right_eye_inner_corner_x 2268 non-null float64
right_eye_inner_corner_y 2268 non-null float64
right_eye_outer_corner_x 2268 non-null float64
right_eye_outer_corner_y 2268 non-null float64
left_eyebrow_inner_end_x 2270 non-null float64
left_eyebrow_inner_end_y 2270 non-null float64
left_eyebrow_outer_end_x 2225 non-null float64
left_eyebrow_outer_end_y 2225 non-null float64
right_eyebrow_inner_end_x 2270 non-null float64
right_eyebrow_inner_end_y 2270 non-null float64
right_eyebrow_outer_end_x 2236 non-null float64
right_eyebrow_outer_end_y 2236 non-null float64
nose_tip_x 7049 non-null float64
nose_tip_y 7049 non-null float64
mouth_left_corner_x 2269 non-null float64
mouth_left_corner_y 2269 non-null float64
mouth_right_corner_x 2270 non-null float64
mouth_right_corner_y 2270 non-null float64
mouth_center_top_lip_x 2275 non-null float64
mouth_center_top_lip_y 2275 non-null float64
mouth_center_bottom_lip_x 7016 non-null float64
mouth_center_bottom_lip_y 7016 non-null float64
Image 7049 non-null object
“*处理数据集中缺失值的最佳方法是什么?*”I会争辩说,这个问题的答案既是具体情况,也是基于观点。 – CoryKramer
您可以删除任何缺少值的行,但这可能会降低性能,或者将缺失值设置为不影响预测的某个值,但如果缺少很多值,这可能仍然会歪曲您的模型,它实际上取决于。您可以使用平均值/中位数,但您必须衡量所有方法的性能,并查看最佳方法,这取决于这些功能是否有任何价值以及您选择哪种模型 – EdChum