gpt4 book ai didi

machine-learning - 回归分析中的分类和序数特征数据表示?

转载 作者:行者123 更新时间:2023-11-30 09:26:17 25 4
gpt4 key购买 nike

在进行回归分析时,我试图充分理解分类数据和序数数据之间的差异。目前,已经明确的是:

分类特征和数据示例:
颜色:红、白、黑
为什么分类: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']}

使用映射后的数值格式:旧<翻新<新→0,1,2

0    0
1 2
2 2
3 1

在我的数据中,我有“颜色”功能。随着颜色从白色变为黑色,价格上涨。根据上述规则,我可能必须对分类“颜色”数据使用 one-hot 编码。但为什么我不能使用序数表示。下面我从我的问题出现的地方提供了我的观察。

首先介绍一下线性回归的公式: enter image description here
让我们看一下颜色的数据表示: enter image description here让我们使用两种数据表示的公式来预测第 1 件和第 2 件商品的价格:
单热编码:在这种情况下,不同颜色将存在不同的 theta。我假设 theta 已经从回归中导出(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)

在我的模型中,价格为白色 < 红色 < 黑色。似乎相关性工作正常,并且在这两种情况下都是合乎逻辑的预测。用于序数和分类表示。因此,无论数据类型如何(分类或序数),我都可以使用任何编码进行回归?数据表示的这种划分只是约定和面向软件的表示的问题,而不是回归逻辑本身的问题?

最佳答案

So I can use any encoding for my regression regardless of the data type (categorical or ordinal)? This division in data representations is just a matter of conventions and software-oriented representations rather than a matter of regression logic itself?

可以做任何事情。问题是什么可能效果更好?答案是您应该使用嵌入有关数据结构的正确信息并且不嵌入错误假设的表示。这里是什么意思?

  • 如果您的数据是分类数据并且使用数字格式,则您会嵌入错误结构(因为分类数据没有排序)
  • 如果您的数据是有序的,并且您使用单锄头编码,那么您不会嵌入真实的结构(因为存在排序,但您会忽略它)。

那么为什么这两种格式在您的情况下都“有效”呢?因为你的问题很微不足道,而且实际上表述不正确。您分析训练样本的预测效果如何,事实上,给定一些过度拟合模型,无论表示形式是什么,您总是会在训练数据上获得满分。事实上,你所做的就是表明存在使事情正确的theta。是的,如果存在适用于普通模型的 theta(在线性模型中),那么总会有一个适用于独热模型。问题是 - 在训练模型时你更有可能错过它。它不是面向软件的问题,而是一个面向学习的问题

但实际上,这种情况不会发生。一旦你引入了实际的问题,有大量的数据,这些数据可能是嘈杂的、不确定的等。使用与问题的性质有关的表示(这里是原始的),你会得到更好的分数,用更少的努力 然后使用不包含它的表示(这里 - 一个热门)。为什么?因为序数的知识可以通过模型从数据中推断(学习),但是您将需要更多的训练数据才能做到这一点。那么,如果您可以将这些信息直接嵌入到数据结构中从而导致更容易的学习问题,为什么还要这样做呢?学习机器学习实际上很困难,不要让它变得更难。另一方面,永远记住,您必须确保您嵌入的知识确实是真实的,因为从数据中学习关系可能很困难,但从数据中学习真实的模式则更难虚假关系。

关于machine-learning - 回归分析中的分类和序数特征数据表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34087329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com