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
我有一个字符列和数字,但我想对字符列进行分类并应用随机森林分类器。我意识到有 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