我正在使用Ludwig运行模型。
数据集为Adult Census:
功能
工作类别具有接近70%的Private实例,可以使用此值来估算Unknown(?)。
本地国家/地区,其中90%的实例是美国,可用于估算未知(?)值。由于值的分布更加分散,因此无法对占领列说同样的话。
capital_gain 具有小于50K的零值的实例占72%,大于50K的零值的实例占19%。
capital_loss 拥有73%的实例,其值为零的值小于5万,而21%的实例的值为零,其值大于5万。
在定义模型时,对于上述情况,最好的方法是什么?
{
"name": "workclass",
"type": "category"
"preprocessing": {
"missing_value_strategy": "fill_with_mean"
}
},
{
"name": "native_country",
"type": "category"
"preprocessing": {
"missing_value_strategy": "fill_with_mean"
}
},
{
"name": "capital_gain",
"type": "numerical"
"preprocessing": {
"missing_value_strategy": "fill_with_mean",
}
},
{
"name": "capital_loss",
"type": "numerical"
"preprocessing": {
"missing_value_strategy": "fill_with_mean"
}
},
问题:
1)对于类别特征如何定义:如果找到?,则将其替换为X。
2)对于数字特征如何定义:如果找到0,将其替换为均值?
答案 0 :(得分:1)
Ludwig当前考虑CSV文件中的缺失值,例如其替换策略使用两个连续的逗号。在您的情况下,我建议通过替换零和?对数据集进行一些最少的预处理。缺少值或取决于要素类型。您可以使用以下方法轻松地在熊猫中进行操作:
df[df.my_column == <value>].my_column = <new_value>
。
另一种方法是执行代码中已经存在的替换(例如用平均值替换0),这样Ludwig不必这样做,并且可以完全控制替换策略。