处理缺失的分类值 ML
Handling missing categorical values ML
关于处理分类数据中的缺失值,我已经完成了 。
数据集有大约 6 categorical columns
和 missing values
。这将用于二元分类问题
我看到了不同的方法,一种是 just leave the missing values in category column as such
,另一种是使用 from sklearn.preprocessing import Imputer
进行估算,但不确定哪个更好。
如果 imputing
是更好的选择,我可以在应用 LR,Decision Tree, RandomForest
等模型之前使用哪些库。
谢谢!
有多种方法可以处理缺失数据:
- 一些模型会处理它(例如 XGBoost、LightGBM)
- 你可以尝试用一个模型来估算它们。您应该将数据分成训练集和测试集,并尝试不同的模型来衡量哪个模型效果最好。但更多时候不是,它的效果不是很好。在 sklearn
中实现了 KNNImputer
- 您还可以定义规则:将缺失值设置为 0、平均值、中位数或任何有效的值,具体取决于您的数据集。这是 sklearn
中的一个 SimpleImputer 实现
- 如果上面的 none 对您有用,您还可以删除缺少值的行。
有关在 sklearn 中估算值的更多详细信息:https://scikit-learn.org/stable/modules/impute.html
添加到@CoMartel,
不存在可以保证您获得良好结果的特定规则。您需要一一检查所有已知方法并观察模型的性能。
但是如果某列的缺失值比率非常高(例如 >50% 的总行数。阈值也可能不同),您最好删除该列。
此外,如果您缺少分类数据,您应该尝试避免均值,因为假设您将其中一个类别编码为 1,其他类别编码为 2,但均值是 2.5,它不代表任何实际上类别。该模式将是比均值和中位数
更好的选择
关于处理分类数据中的缺失值,我已经完成了
数据集有大约 6 categorical columns
和 missing values
。这将用于二元分类问题
我看到了不同的方法,一种是 just leave the missing values in category column as such
,另一种是使用 from sklearn.preprocessing import Imputer
进行估算,但不确定哪个更好。
如果 imputing
是更好的选择,我可以在应用 LR,Decision Tree, RandomForest
等模型之前使用哪些库。
谢谢!
有多种方法可以处理缺失数据:
- 一些模型会处理它(例如 XGBoost、LightGBM)
- 你可以尝试用一个模型来估算它们。您应该将数据分成训练集和测试集,并尝试不同的模型来衡量哪个模型效果最好。但更多时候不是,它的效果不是很好。在 sklearn 中实现了 KNNImputer
- 您还可以定义规则:将缺失值设置为 0、平均值、中位数或任何有效的值,具体取决于您的数据集。这是 sklearn 中的一个 SimpleImputer 实现
- 如果上面的 none 对您有用,您还可以删除缺少值的行。
有关在 sklearn 中估算值的更多详细信息:https://scikit-learn.org/stable/modules/impute.html
添加到@CoMartel,
不存在可以保证您获得良好结果的特定规则。您需要一一检查所有已知方法并观察模型的性能。
但是如果某列的缺失值比率非常高(例如 >50% 的总行数。阈值也可能不同),您最好删除该列。
此外,如果您缺少分类数据,您应该尝试避免均值,因为假设您将其中一个类别编码为 1,其他类别编码为 2,但均值是 2.5,它不代表任何实际上类别。该模式将是比均值和中位数
更好的选择