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

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

有谁能帮帮我…我是在Java中实现这个的,所以我希望能得到用这种语言表达的算法,或者是语言无关的算法。


回答:

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

请参考这篇文章以获取更多细节,我认为作者的解释比我在这里能做的更好。

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

我猜这个解决方案会属于你的语言无关类别 😉

要编码汽车颜色(我假设汽车颜色只能取3个值:红色,蓝色,绿色)

你可以按以下方式编码:

颜色  虚拟变量一  虚拟变量二红色     1             0蓝色     0             1绿色     0             0 

在上表中,绿色将成为参考级别。在你的情况下,如果你的颜色取n个值,你将需要包含n-1个虚拟变量。

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

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注