路德维希预处理

时间:2019-07-02 07:13:37

标签: ludwig

我正在使用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,将其替换为均值?

1 个答案:

答案 0 :(得分:1)

Ludwig当前考虑CSV文件中的缺失值,例如其替换策略使用两个连续的逗号。在您的情况下,我建议通过替换零和?对数据集进行一些最少的预处理。缺少值或取决于要素类型。您可以使用以下方法轻松地在熊猫中进行操作: df[df.my_column == <value>].my_column = <new_value>。 另一种方法是执行代码中已经存在的替换(例如用平均值替换0),这样Ludwig不必这样做,并且可以完全控制替换策略。