3

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

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

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

H = TxA + T1xB + T2xC + ...

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

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

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

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

4

2 回答 2

5

最佳实践是进行一次热(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. 有关为什么这比您的编码更好的直觉,请参阅我的这个答案

于 2013-10-22T08:55:46.833 回答
0

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

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

澄清:WTA 与larsmans 的回答中的 one-hot 相同。

于 2013-10-22T08:53:37.727 回答