【问题标题】:Linear regression: Substituting the non-numerical discrete domain of a predictor with numerical one线性回归:用数值 1 替换预测变量的非数值离散域
【发布时间】:2013-10-31 00:40:09
【问题描述】:

所以我有一个训练集,其中一个属性的域如下:

A = {Type1, Type2, Type3, ... ,Type5}

如果域保持这种形式,我不能应用线性回归,因为数学假设可能无法工作,例如:

H = TxA + T1xB + T2xC + ...

(也就是说,如果我们假设除 A 属性之外的所有属性都是数字的,那么您不能将实值参数与类型相乘)

我可以用数值的、等效的、离散的值替换域,这样我就可以对这个问题进行线性回归并且没问题吗?

A = {1, 2, 3, ...., 5 )

这是最佳做法吗?如果不能,请在这些情况下给我一个替代方案吗?

【问题讨论】:

  • 有点题外话,对问题投票here 或者尝试询问here

标签: machine-learning supervised-learning


【解决方案1】:

最佳做法是进行一次热 (one-of-K) 编码:对于A 可以采用的每个值,定义一个单独的指标特征。因此,对于五个“类型”,A = type1 将是

[1, 0, 0, 0, 0]

A = type3

[0, 0, 1, 0, 0]

然后将这些向量与你的其他特征连接起来,这样你的假设就变成了

H = w[Atype1] * [A=type1] + ... + w[Atype5] * [A=type5] + w[B] * B + ...

使用[] 表示指标函数。

这避免了您的方法的主要问题,即您引入了许多(可能不正确的)偏见,例如那type5 = type2 + type3。要进一步了解为什么这比您的编码更好,请参阅this answer of mine

【讨论】:

  • 您可能更清楚这是否消除了回归方法。将向量作为输出会迫使您使用 M(输出向量大小)线性回归,不是吗?
  • @BartoszKP:我终于明白为什么你认为这是一个分类问题。但是有时确实会发生对分类变量的回归(特别是在社会科学应用中),所以我仍然假设 OP 真的想做回归。如果不是,那么确实需要多个 LR,尽管逻辑回归可能是一个更好的主意。
  • 好吧,我从来没有听说过,所以感谢您通过示例指出这一点,我会调查一下。逻辑回归似乎是个好主意!如果您不介意,我会将其添加到我的答案中,您可能也应该使用它来更新您的答案;)
【解决方案2】:

一般来说这是行不通的,因为通常名义属性的平均值是没有意义的。例如,如果您指定 Apple = 1、Banana = 2、Orange = 3,那么在模型中 Banana 将显示为 Apple 和 Orange 的平均值。对于分类任务,考虑使用感知器、神经网络(使用Winner-take-all 范式消除了名义属性之间的平均值问题)、决策树或我忘记提及的其他一些工具。正如larsmans 正确指出的那样,您的案例的典型模型是Logistic Regression

您还可以使用 WTA 范式进行线性回归 - 为每个输出向量维度构建回归模型。

澄清:WTA与larsmans's answer中的one-hot相同。

【讨论】:

  • 不知道你为什么提到分类;感知器和神经网络等参数分类模型面临与线性回归相同的问题。
  • @larsmans 它可能不是一个分类,但如果输入空间是名义上的,那么通常是。 Perceptron 不会遇到同样的问题,因为它的输出是二进制的。对于NN,我已经提到需要使用WTA,所以它也会处理这个问题。
猜你喜欢
  • 2019-06-11
  • 2017-11-26
  • 2020-09-11
  • 2020-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-02
  • 2016-08-26
相关资源
最近更新 更多