路德维希预处理

Ludwig preprocessing

我是 运行 模特 Ludwig

数据集是Adult Census:

特征

workclass 几乎有 70% 的 Private 实例,Unknown (?) 可以用这个值来估算。

native_country,90% 的实例是美国,可用于估算未知 (?) 值。由于值分布更广,因此不能说职业列。

capital_gain 有 72% 的实例具有小于 50K 的零值和 19% 的实例具有大于 50K 的零值。

capital_loss 有 73% 的实例具有小于 50K 的零值和 21% 的实例具有大于 50K 的零值。

当我定义模型时,对于上述情况最好的方法是什么?

{
  "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,用均值代替?

Ludwig 目前正在考虑 CSV 文件中的缺失值,例如使用两个连续的逗号作为替换策略。在您的情况下,我建议通过替换零和 ?缺少值或取决于特征的类型。您可以在 pandas 中使用以下内容轻松完成此操作: df[df.my_column == <value>].my_column = <new_value>。 另一种方法是在您的代码中执行替换(例如用平均值替换 0),这样 Ludwig 就不必这样做,您可以完全控制替换策略。