5

我正在尝试建立一个线性回归模型,但我的一些特征不是数字的,例如“汽车颜色”,而其他的是例如“发动机尺寸”。在非数字情况下,我不确定在添加为输入特征时如何表示。我能想到的唯一方法是用不同的值表示每种颜色,例如(红色= 1,蓝色= 2,绿色= 3 ...)但这似乎不可接受,因为这意味着绿色是“比红色更好。

任何人都可以帮忙......我正在用Java实现这个,所以我很欣赏用这种语言表达的算法或独立于语言的算法。

4

1 回答 1

9

一种方法是使用虚拟编码,另一种技术是效果编码

请参阅这篇文章了解更多详细信息,我认为作者的解释比我在这里可以做的更好。

回归模型中的分类变量编码:Resmi Gupta 的虚拟和效果编码

我想这个解决方案将属于您的语言独立类别;)

对汽车颜色进行编码(我假设汽车颜色只能取 3 个值:红色、蓝色、绿色)

您可以按如下方式对其进行编码:

Color  Dummy_Var_One  Dummy_Var_Two

Red        1              0
Blue       0              1
Green      0              0 

在上表Green中将成为参考水平。在您的情况下,如果您的颜色n取值,您将需要包含n-1虚拟变量。

可以在Weka过滤器NominalToBinary中找到 Java 中的实现,尽管这将为类别创建n变量。n

于 2012-07-29T14:24:39.963 回答