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

我在尝试全面理解回归分析中分类数据和顺序数据的区别。目前我清楚的是:

分类特征和数据示例:
颜色:红色,白色,黑色
为什么是分类:红色 < 白色 < 黑色 逻辑上是错误

顺序特征和数据示例:
状态:旧的,翻新的,新的
为什么是顺序:旧的 < 翻新的 < 新的 逻辑上是正确

分类到数值和顺序到数值的编码方法:
分类数据使用独热编码
顺序数据使用任意数字

分类数据转换为数值:

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

独热编码后的数值格式:

   color_blue  color_green  color_red0           1            0          01           0            1          02           0            1          03           0            0          1

顺序数据转换为数值:

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

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

0    01    22    23    1

在我的数据中,我有’颜色’特征。当颜色从白色变为黑色时,价格会增加。根据上述规则,我可能需要对分类’颜色’数据使用独热编码。但为什么我不能使用顺序表示呢?下面是我提问的观察结果。

让我先介绍线性回归的公式:enter image description here
让我们看看颜色的数据表示:enter image description here让我们使用公式预测第一和第二项的价格,针对两种数据表示:
独热编码:在这种情况下,不同的颜色会有不同的theta。我假设theta已经从回归中得出(20, 50 和 100)。预测将是:

价格(第一项) = 0 + 20*1 + 50*0 + 100*0 = 20美元  (假设theta为示例)价格(第二项) = 0 + 20*0 + 50*1 + 100*0 = 50美元  

颜色顺序编码:在这种情况下,所有颜色将有一个共同的theta,但我的分配乘数(10, 20, 30)不同:

价格(第一项) = 0 + 20*10 = 200美元  (假设theta为示例)价格(第二项) = 0 + 20*20 = 400美元  (假设theta为示例)

在我的模型中,白色 < 红色 < 黑色在价格上。似乎在两种情况下,相关性都正确地工作,并且是合乎逻辑的预测。对于顺序和分类表示。所以我可以对我的回归使用任何编码,而不管数据类型是分类还是顺序?这种数据表示的划分只是惯例和面向软件的表示问题,而不是回归逻辑本身的问题?


回答:

所以我可以对我的回归使用任何编码,而不管数据类型是分类还是顺序?这种数据表示的划分只是惯例和面向软件的表示问题,而不是回归逻辑本身的问题?

可以做任何事情。问题是什么可能会更好?答案是你应该使用能够嵌入正确数据结构信息且不嵌入错误假设的表示。这意味着什么?

  • 如果你的数据是分类数据,而你使用数值格式,你嵌入了错误的结构(因为分类数据没有顺序)
  • 如果你的数据是顺序数据,而你使用独热编码,你没有嵌入真实的结构(因为存在顺序,而你忽略了它)。

那么为什么在你的案例中两种格式都“有效”?因为你的问题是简单的,实际上是错误陈述的。你分析的是训练样本的预测效果,实际上,如果你使用一个过拟合的模型,你总会在训练数据上得到完美的分数,无论使用什么表示。实际上,你所做的就是展示存在一个使事情正确的theta。是的,如果存在一个适用于顺序数据的theta(在线性模型中)——总会有一个适用于独热编码的theta。问题是——你在训练模型时更有可能错过它。这不是面向软件的问题,而是一个学习导向的问题

然而,在实践中,这不会发生。一旦你引入实际问题,涉及大量可能存在噪声、不确定性等的数据,你会发现使用与问题本质相关的表示(这里是顺序)会更少努力地获得更好的分数,而不是使用不包含这种信息的表示(这里是独热编码)。为什么?因为这种顺序性的知识可以从数据中推断(学习)出来,但你需要更多的训练数据来做到这一点。那么,如果你可以直接将这种信息嵌入到数据结构中,从而使学习问题更容易,为什么还要这样做呢?机器学习中的学习实际上是困难的,不要让它变得更难。另一方面,始终记住,你必须确保你嵌入的知识确实是真实的,因为从数据中学习关系可能很难,但从错误的关系中学习真实模式就更难了。

Related Posts

L1-L2正则化的不同系数

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

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

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

f1_score metric in lightgbm

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

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

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

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

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

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

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

发表回复

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