我正在使用 Python 的库 scikit learn 学习机器学习,在他们的教程中,他们提到了一个color可以有值的分类变量purple,blue和red。
使用 3 个布尔变量color#purple而不是使用单个变量而是将值映射到, color#blue,的原因是什么?color#redcolorpurplebluered123
做任何一种方式都会对回归拟合/预测产生任何影响吗?
我正在使用 Python 的库 scikit learn 学习机器学习,在他们的教程中,他们提到了一个color可以有值的分类变量purple,blue和red。
使用 3 个布尔变量color#purple而不是使用单个变量而是将值映射到, color#blue,的原因是什么?color#redcolorpurplebluered123
做任何一种方式都会对回归拟合/预测产生任何影响吗?
详细说明上面同事的答案:假设您将紫色,蓝色,红色映射到. 说代表帽子的颜色,并且销售量。然后如果我们有一个带有截距的模型,调用它和系数, 叫它,那么我们会说:
我们只能选择一个在这里,它必须迎合所有不同的颜色。想象一下蓝色的帽子比紫色的帽子卖的多,蓝色的帽子比红色的多,那么我们的模型就适合紫蓝色的关系(),但不是蓝红关系!
如果我们使用虚拟变量,那么我们可能会有如下模型:
这不会遇到与第一个模型相同的排序问题。请注意,如果有截距,我们只需要两个虚拟变量,因为这成为蓝色的基线。
这取决于颜色代表什么数据。
如果颜色代表某些数据的比例,则可以将颜色用作单个变量,并在回归中用数字表示颜色。例如,紫色表示风速 10 m/s,蓝色表示 20 m/s,红色表示风速 30 m/s。因此,如果颜色为蓝色,我们可以说某些东西(例如风)比颜色为紫色时大两倍,依此类推。
如果无法对颜色进行定量比较,通常的做法是将每种颜色编码为用于回归的虚拟(布尔)变量。