scikit-learn/python 中字符的随机森林

random forest with characters in scikit-learn/python

我有一个字符列和数字,但我想对字符列进行分类并应用随机森林分类器。我意识到有 OneHotEncoder 但没有任何地方的例子。那么如何对字符进行分类,例如性别列,其中 'f' 和 'm' 为整数,例如 (0,1)?

使用 LabelEncoder 获取字符串数组并将其转换为整数数组。

示例:

from sklearn.preprocessing import LabelEncoder
import pandas as pd

data = pd.DataFrame()

data['age'] = [17,33,47]
data['gender'] = ['m','f','m']

enc = LabelEncoder()

print(data)
enc.fit(data['gender'])
data['gender'] = enc.transform(data['gender'])
print(data)

输出:

   age gender
0    17      m
1    33      f
2    47      m
   age  gender
0    17       1
1    33       0
2    47       1

或者,您可以使用 pandas's get_dummies function,它执行标签编码和一次热编码。

在:

import pandas as pd
s = pd.DataFrame(list('abca'))
s = pd.get_dummies(s)
print s

输出:

    a   b   c
0   1   0   0
1   0   1   0
2   0   0   1
3   1   0   0