在多元线性回归Python中处理类别变量和数值变量

时间:2018-11-22 10:49:36

标签: pandas python-2.7 scikit-learn linear-regression

所以我已经使用sklearn的LinearRegression在Python中执行了多次线性回归。

我的独立变量都是数值变量(我的独立变量也是数值变量)

但是现在我想结合数值和非数值独立变量进行多元线性回归。

因此,我有几个问题:

  • 如果我对非数值变量使用伪变量或One-Hot,那么我能否从sklearn执行LinearRegression?

  • 如果是,我是否需要更改一些参数?

  • 如果没有,该如何执行线性回归?

  • 让我烦恼的一件事是,哑元/单热点方法不处理序数变量,对吗? (因为我认为不应以相同的方式进行编码)

  • 问题是:即使我要编码不同的名义和有序变量, Python似乎无法分辨两者之间的区别?

这些东西对您来说可能很容易,但是现在您可以告诉我我有点困惑,所以我真的可以使用您的帮助!

预先感谢

亚历克斯

1 个答案:

答案 0 :(得分:1)

  • 如果我对非数值变量使用虚拟变量或One-Hot,那么我能否从sklearn执行LinearRegression?

实际上,该模型必须专门提供数值数据,因此您必须对输入要素中的分类数据使用OneHot向量。为此,您可以看看Scikit-Learn的LabelEncoderOneHotEncoder

  • 让我烦恼的一件事是,伪/单热方法不处理序数变量,对吗? (因为我认为不应以相同的方式进行编码)

是的。正如您所提到的,一站式方法不处理序数变量。使用序数要素的一种方法是创建比例尺地图,然后将这些要素映射到该比例尺。 Ordinal在这些情况下是非常有用的工具。您可以根据提到的预先定义的比例映射为它提供映射字典。否则,显然它会随机将整数分配给不同的类别,因为它不知道任何顺序。从文档中:

  

序数编码使用一整列整数表示类。可以传入一个可选的映射字典,在这种情况下,我们使用的知识是类本身有一定的顺序。否则,将假定这些类没有真正的顺序,并且会随机选择整数。

希望这会有所帮助。