1

我正在与Ludwig一起运行模型。

数据集是成人人口普查

特征

工作类有将近 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,将其替换为均值?

4

1 回答 1

2

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

于 2019-07-02T21:55:10.170 回答