【发布时间】:2016-03-09 07:49:46
【问题描述】:
在进行回归分析时,我试图完全理解分类数据和有序数据之间的差异。现在,什么是清楚的:
分类特征和数据示例:
颜色:红、白、黑
为什么要分类: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
在我的数据中,我有“颜色”功能。随着颜色从白色变为黑色,价格上涨。根据上述规则,我可能必须对分类“颜色”数据使用单热编码。但是为什么我不能使用序数表示。下面我提供了我的观察结果。
让我首先介绍线性回归的公式:
让我们看一下颜色的数据表示:
让我们使用两种数据表示的公式来预测第 1 件和第 2 件商品的价格:
单热编码:
在这种情况下,将存在不同颜色的不同 theta。我假设 thetas 已经从回归(20、50 和 100)中得出。预测将是:
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$
颜色的序号编码: 在这种情况下,所有颜色都有 1 个共同的 theta,但我分配的乘数(10、20、30)不同:
Price (1 item) = 0 + 20*10 = 200$ (theta assumed for example)
Price (2 item) = 0 + 20*20 = 400$ (theta assumed for example)
在我的模型中,价格为白色
【问题讨论】:
-
如果你没有得到答案,你可以试试:datascience.stackexchange.com
-
啊好的谢谢我会试试的。
-
在 DataScience.SE 和 SO 上交叉发布:datascience.stackexchange.com/q/9202/8560、stackoverflow.com/q/34087329/781723。请do not post the same question on multiple sites。每个社区都应该诚实地回答问题,而不会浪费任何人的时间。 @HRgiger,以后如果您要推荐另一个网站,请提醒人们不要交叉发布:您可以建议如果他们认为它更适合其他地方,他们应该将其删除并在那里重新发布,但不要在两个 SE 网站上发布。
标签: machine-learning regression linear-regression categorical-data