使用类别作为特征的线性回归

时间:2012-07-29 13:58:23

标签: java algorithm machine-learning artificial-intelligence

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

任何人都可以提供帮助......我正在用Java实现这一点,所以我很欣赏用这种语言表达的算法或者语言无关。

1 个答案:

答案 0 :(得分:9)

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

请参阅这篇文章了解更多细节,我认为作者已经解释得比我在这里做的更好。

Coding Categorical Variables in Regression Models: Dummy and Effect Coding by 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个变量。