【发布时间】: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)
在我的模型中,价格为白色
【问题讨论】:
标签: machine-learning regression linear-regression categorical-data ordinals