所以我已经使用sklearn的LinearRegression在Python中执行了多次线性回归。
我的独立变量都是数值变量(我的独立变量也是数值变量)
但是现在我想结合数值和非数值独立变量进行多元线性回归。
因此,我有几个问题:
如果我对非数值变量使用伪变量或One-Hot,那么我能否从sklearn执行LinearRegression?
如果是,我是否需要更改一些参数?
如果没有,该如何执行线性回归?
让我烦恼的一件事是,哑元/单热点方法不处理序数变量,对吗? (因为我认为不应以相同的方式进行编码)
问题是:即使我要编码不同的名义和有序变量, Python似乎无法分辨两者之间的区别?
这些东西对您来说可能很容易,但是现在您可以告诉我我有点困惑,所以我真的可以使用您的帮助!
预先感谢
亚历克斯
答案 0 :(得分:1)
实际上,该模型必须专门提供数值数据,因此您必须对输入要素中的分类数据使用OneHot向量。为此,您可以看看Scikit-Learn的LabelEncoder和OneHotEncoder。
是的。正如您所提到的,一站式方法不处理序数变量。使用序数要素的一种方法是创建比例尺地图,然后将这些要素映射到该比例尺。 Ordinal在这些情况下是非常有用的工具。您可以根据提到的预先定义的比例映射为它提供映射字典。否则,显然它会随机将整数分配给不同的类别,因为它不知道任何顺序。从文档中:
序数编码使用一整列整数表示类。可以传入一个可选的映射字典,在这种情况下,我们使用的知识是类本身有一定的顺序。否则,将假定这些类没有真正的顺序,并且会随机选择整数。
希望这会有所帮助。