Scikit learn 在使用随机林时,scikit学习中表示因子变量的方法是什么?

Scikit learn 在使用随机林时,scikit学习中表示因子变量的方法是什么?,scikit-learn,text-mining,random-forest,Scikit Learn,Text Mining,Random Forest,我正在用随机森林解决一个分类问题。为此,我决定使用Python库scikit学习。但我对随机森林算法和这个工具都是新手。我的数据包含许多因素变量。我在谷歌上搜索了一下,发现像线性回归那样给因子变量赋值是不对的,因为它会将其视为连续变量,并给出错误的结果。但我在scikit learn中找不到任何关于如何处理因子变量的信息。请告诉我要使用的选项,或者给我指一些我可以获取的文档。您应该使用sklearn的。它所做的是为分类整数特性中的每个不同值创建一个新变量 因此,例如,如果变量var具有值[10,

我正在用随机森林解决一个分类问题。为此,我决定使用Python库scikit学习。但我对随机森林算法和这个工具都是新手。我的数据包含许多因素变量。我在谷歌上搜索了一下,发现像线性回归那样给因子变量赋值是不对的,因为它会将其视为连续变量,并给出错误的结果。但我在scikit learn中找不到任何关于如何处理因子变量的信息。请告诉我要使用的选项,或者给我指一些我可以获取的文档。

您应该使用sklearn的。它所做的是为分类整数特性中的每个不同值创建一个新变量


因此,例如,如果变量
var
具有值
[10,25,30]
,它将创建三个新变量(即具有3列的矩阵),基本上是变量
var\u 10
var\u 25
var\u 30
具有值
[1,0]
[0,1,0]
[0,0,1]

如果您使用熊猫数据帧,您可以轻松使用get_dummies功能来完成此操作。下面是一个例子:

将熊猫作为pd导入
my_数据=['a'、'b']、['b'、'a']、['c'、'b']、['d'、'a']、['a'、'c']]
df=pd.DataFrame(我的_数据,列=['var1','var2']))
dummy_ranks=pd.get_dummie(df['var1'],前缀='var1_33;
打印虚拟队列
var1_uua var1_ub var1_uc var1_ud
0        1        0        0        0
1        0        1        0        0
2        0        0        1        0
3        0        0        0        1
4        1        0        0        0
[5行x 4列]

谢谢您的回答。但这并不能解决我的问题,因为我没有整数特性。我所说的功能需要许多不同的字符串(单词),有时需要一个字符串数组。顺便说一句,我正在尝试使用随机林对文本数据进行分类。所讨论的数据是不同用户对某个产品的评论。请参阅关于的文档。或者,使用Pandas()库,它有一个get_dummies函数,可以将任意类型的列转换为因子变量。您这样说吗“像我们在线性回归中那样给因子变量赋值是不对的,因为它会将其视为连续变量“。对于线性回归,绝对不应该这样做。Random Forest实际上可以很好地处理这个问题,但线性回归肯定会将因子作为连续变量处理,并给出非常非常错误的结果。下面的OneHotEncoder和get_dummies方法对于线性/逻辑回归是必须的,但对于随机林可能是可选的。