如何将数字列更改为无人驾驶AI上的分类数据

时间:2019-04-29 16:14:53

标签: machine-learning artificial-intelligence driverless-ai

我尝试通过docker版本使用无人驾驶AI。当我尝试导入数据时,我在识别哪些数据是实数值和分类变量时遇到问题。

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

DAI文档常见问题中介绍了分类和用户控件的处理。为了您的方便,我将在此处重新发布:

无人驾驶AI如何处理分类变量?如果整数列确实应该被视为分类列怎么办?

如果一列具有字符串值,则无人驾驶AI会将其视为分类功能。无人驾驶AI如何将分类变量转换为数字有多种方法。这些包括:

  • 一种热编码:为每个值创建伪变量
  • 频率编码:将类别替换为在数据中看到的频率
  • 目标编码:用平均目标值替换类别(包括附加步骤以防止过度拟合)
  • 证据权重:计算每个类别的证据权重(http://ucanalytics.com/blogs/information-value-and-weight-of-evidencebanking-case/) 无人驾驶AI将尝试多种表示列的方法,并确定哪种表示是最佳的。

如果该列具有整数,则无人驾驶AI将尝试将该列视为分类列和数字列。如果唯一值的数量小于50,它将把任何整数列都视为分类列和数字列。

这可以在config.toml文件中配置:

# Whether to treat some numerical features as categorical
# For instance, sometimes an integer column may not represent a numerical feature but
# represent different numerical codes instead.
num_as_cat = true

# Max number of unique values for integer/real columns to be treated as categoricals (test applies to first statistical_threshold_data_size_small rows only)
max_int_as_cat_uniques = 50

(注意:无人驾驶AI还将使用Benford定律检查任何数值列的分布是否与典型数值数据的分布有显着差异。如果列分布不服从Benford定律,我们还将尝试将其视为分类即使唯一值超过50个。)