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

Machine learning 回归分析中的分类和顺序特征数据表示?,machine-learning,regression,linear-regression,categorical-data,Machine Learning,Regression,Linear Regression,Categorical Data,在进行回归分析时,我试图完全理解分类数据和顺序数据之间的差异。目前,有一点是明确的: 分类功能和数据示例: 颜色:红、白、黑 为什么分类:red

在进行回归分析时,我试图完全理解分类数据和顺序数据之间的差异。目前,有一点是明确的:

分类功能和数据示例:
颜色:红、白、黑
为什么分类:
red
在逻辑上不正确

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

分类到数字和顺序到数字编码方法:
分类数据的一个热编码
顺序数据的任意数

分类数据到数字:

data = {'color': ['blue', 'green', 'green', 'red']}
data = {'con': ['old', 'new', 'new', 'renovated']}
一次热编码后的数字格式:

   color_blue  color_green  color_red
0           1            0          0
1           0            1          0
2           0            1          0
3           0            0          1
从顺序数据到数字:

data = {'color': ['blue', 'green', 'green', 'red']}
data = {'con': ['old', 'new', 'new', 'renovated']}
使用映射后的数字格式:旧<翻新<新→ 0,1,2

0    0
1    2
2    2
3    1
在我的数据中,我有“颜色”功能。随着颜色从白色变为黑色,价格上涨。根据上述规则,我可能必须对分类“颜色”数据使用一种热编码。但为什么我不能使用序数表示。下面,我提供了我的问题所在的观察结果

让我首先介绍线性回归的公式:
让我们看看颜色的数据表示: 让我们使用两种数据表示形式的公式来预测第一项和第二项的价格:
一个热编码: 在这种情况下,将存在不同颜色的不同θ。我假设θ已经从回归(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$  
颜色的顺序编码: 在这种情况下,所有颜色都有一个公共θ,但我指定的乘数(10、20、30)不同:

在我的型号中,价格为白色<红色<黑色。似乎相关性是正确的,在这两种情况下都是合乎逻辑的预测。用于顺序和分类表示。所以我可以对我的回归使用任何编码,而不考虑数据类型(分类或顺序)?数据表示中的这种划分只是一个约定和面向软件的表示的问题,而不是回归逻辑本身的问题

所以我可以对我的回归使用任何编码,而不考虑数据类型(分类或顺序)?数据表示中的这种划分只是一个约定和面向软件的表示的问题,而不是回归逻辑本身的问题

你可以做任何事。问题是什么可能更有效?答案是,您应该使用表示法,该表示法包含正确的数据结构信息,而不包含错误的假设。这是什么意思

  • 如果您的数据是分类的,并且您使用数字格式,则嵌入了错误结构(因为分类数据没有排序)
  • 如果您的数据是原始的,并且您使用了一种hoe编码,则不会嵌入真正的结构(因为存在排序,您会忽略它)
那么,为什么这两种格式在您的案例中都“起作用”?因为你的问题很琐碎,而且事实上陈述得不正确。您可以分析训练样本的预测程度,事实上,给定一些过度拟合的模型,无论采用何种表示方式,您都可以在训练数据上获得满分。事实上,你所做的就是证明存在θ,它使事情变得正确。是的,如果存在θ(在线性模型中),它对原点有效-总会有一对一的热。问题是-在训练模特时,你很可能会错过它。这不是面向软件的问题,而是面向学习的问题

然而,在实践中,这不会发生。一旦你引入了实际问题,有大量的数据,可能会有噪音、不确定等。你可以使用与问题性质有关的表示法(此处为oridinal)获得更好的分数,而不必太费劲,然后使用不包含它的表示法(此处为一个热门)。为什么?因为这种有序的知识可以通过模型从数据中推断出来,但是你需要更多的训练数据。那么,如果您可以将这些信息直接嵌入到数据结构中,从而导致更容易的学习问题,那么为什么要这样做呢?学习ML其实很难,不要让它变得更难。另一方面,请始终记住,您必须确保嵌入的知识确实是真实的,因为从数据中学习关系可能很困难,但从错误关系中学习真实模式则更困难

所以我可以对我的回归使用任何编码,而不考虑数据类型(分类或顺序)?数据表示中的这种划分只是一个约定和面向软件的表示的问题,而不是回归逻辑本身的问题

你可以做任何事。问题是什么可能更有效?答案是,您应该使用表示法,该表示法包含正确的数据结构信息,而不包含错误的假设。这是什么意思

  • 如果您的数据是分类的,并且您使用数字格式,则嵌入了错误结构(因为分类数据没有排序)
  • 如果您的数据是原始的,并且您使用了一种hoe编码,则不会嵌入真正的结构(因为存在排序,您会忽略它)
那么,为什么这两种格式在您的案例中都“起作用”?因为你的问题很琐碎,而且事实上陈述得不正确。你分析了训练样本的预测能力,事实上,给出了一些过度拟合的模型,你总能在tra上得到满分