回归分析中的分类和有序特征数据差异?

Posted

技术标签:

【中文标题】回归分析中的分类和有序特征数据差异?【英文标题】:Categorical and ordinal feature data difference in regression analysis? 【发布时间】:2016-03-08 19:52:47 【问题描述】:

在进行回归分析时,我试图完全理解分类数据和有序数据之间的差异。现在,什么是清楚的:

分类特征和数据示例: 颜色:红、白、黑 为什么要分类:red < white < black 在逻辑上是不正确

序数特征和数据示例: 条件:旧的、翻新的、新的 为什么序数:old < renovated < new 在逻辑上是正确

分类到数值和序数到数值的编码方法: 分类数据的 One-Hot 编码 序数数据的任意数

分类示例:

data = 'color': ['blue', 'green', 'green', 'red']

One-Hot 编码后的数值格式:

   color_blue  color_green  color_red
0           1            0          0
1           0            1          0
2           0            1          0
3           0            0          1

序数示例:

data = 'con': ['old', 'new', 'new', 'renovated']

使用映射后的数值格式:Old

0    0
1    2
2    2
3    1

在我的数据中,随着条件从“旧”变为“新”,价格会上涨。数字中的“旧”被编码为“0”。数字中的“新”被编码为“2”。因此,随着条件的增加,价格也会上涨。正确。 现在让我们看一下“颜色”功能。就我而言,不同的颜色也会影响价格。例如,“黑色”将比“白色”更贵。但是从上面提到的分类数据的数字表示来看,我没有看到像“条件”特征那样增加依赖性。这是否意味着如果使用 one-hot 编码,颜色的变化不会影响回归模型中的价格?如果它不影响价格,为什么要使用 one-hot 编码进行回归?你能澄清一下吗?

问题更新: 首先我介绍线性回归的公式: 让我们看一下颜色的数据表示: 让我们使用两种数据表示的公式来预测第 1 件和第 2 件商品的价格:单热编码: 在这种情况下,将存在不同颜色的不同 theta,预测将是:

Price (1 item) = 0 + 20*1 + 50*0 + 100*0 = 20$  (thetas are assumed for example)
Price (2 item) = 0 + 20*0 + 50*1 + 100*0 = 50$  (thetas are assumed for example)

颜色的序号编码: 在这种情况下,所有颜色都有共同的 theta,但乘数不同:

Price (1 item) = 0 + 20*10 = 200$  (theta assumed for example)
Price (2 item) = 0 + 20*20 = 400$  (theta assumed for example)

在我的模型中,价格为白色

【问题讨论】:

Categorical and ordinal feature data representation in regression analysis?的可能重复 【参考方案1】:

您会看到依赖性并没有增加。正如您已经指出的那样,这种区分的全部意义在于,颜色不是可以有意义地放在连续统一体上的特征。

one-hot编码使得软件分析这个维度非常方便。您拥有一组布尔(存在/不存在)特性,而不是具有列出值的特性“颜色”。例如,您上面的第 0 行具有 color_blue = true、color_green = false 和 color_red = false 的特征。

您获得的预测数据应将这些数据显示为单独的维度。例如,color_blue 的存在可能价值 200 美元,而 green 是 -100 美元。

总结:不要寻找跨越(不存在的)颜色轴的线性回归线;相反,寻找 color_* 因素,每种颜色一个。就您的分析算法而言,这些是完全独立的特征; “one-hot”编码(数字电路设计中的一个术语)只是我们的处理这个问题的约定。

这对你的理解有帮助吗?

在 2015 年 12 月 4 日 02:03 Z 编辑问题后:

不,您的假设不正确:这两种表示方式不仅仅是为了方便。颜色的顺序适用于这个例子——因为效果恰好是所选编码的一个简洁的线性函数。正如您的示例所示,您更简单的编码假设白到红到黑的定价是线性的。当绿色、蓝色和棕色都是 25 美元,稀有的黄色价值 500 美元,透明降低 1000 美元时,你会怎么做?

另外,你怎么知道黑比白更值钱,反过来又比红更值钱?

考虑基于小学学区的房价案例,该地区有 50 个学区。如果您使用数字编码——学区编号、字母顺序位置或其他任意顺序——回归软件将很难找到该数字与房价之间的相关性。 PS 107 是比 PS 32 或 PS 15 更贵的地区吗?与 Union City 和 Ventura 相比,Addington 和 Bendemeer 更受欢迎吗?

在 one-hot 原则下将这些分解为 50 个不同的特征,可以将特征与编码分离,并允许分析软件以数学上有意义的方式处理它们。它无论如何都不是完美的——例如,从 20 个功能扩展到 70 个意味着需要更长的时间才能收敛——但我们确实为学区取得了有意义的结果。

如果您愿意,您现在可以按预期的值顺序对该特征进行编码,并获得合理的拟合,而准确性几乎没有损失,并且模型的预测速度更快(变量更少)。

【讨论】:

【参考方案2】:

对于顺序无关紧要的分类变量,您不能使用序数编码。建立回归模型的主要目的是查看一个变量有多少变化对响应变量有多大影响。当您获得回归公式时,这就是您的阅读方式:“变量 X 的 1 个单位变化导致 theta_x 响应变量的变化”。

例如,假设您建立了一个关于房价的回归模型,然后得到:price = 1000 + (-50)*age_of_house。这意味着房子的年龄增加1年导致价格下降50。

当您有一个分类变量时,您不能提及该变量的单位变化。您不能说颜色增加/减少 1 个单位……等等。因此,正如Prune 在他/她的回答中所说,单热编码只是处理分类变量的约定。它允许您解释结果,例如,如果房子是白色的,当最终模型中的 color_white 系数为 +200 时,它会增加 200 美元的值。如果房子不是白色的,则该变量对您的响应变量没有影响,因为该值将为 0。

不要忘记“线性回归”模型只能解释变量之间的线性关系。

我希望这会有所帮助。

【讨论】:

以上是关于回归分析中的分类和有序特征数据差异?的主要内容,如果未能解决你的问题,请参考以下文章

具有分类特征的线性回归分析

如何用SPSS做多项Logistic回归

处理回归(机器学习)中分类特征的未分配(空)值?

如何解读logistic回归分析

在哪些情形下要用 Logistic 回归分析?

线性回归与特征归一化(feature scaling)