【发布时间】:2016-05-18 03:14:10
【问题描述】:
我有一个字符列和数字,但我想对字符列进行分类并应用随机森林分类器。我意识到有 OneHotEncoder 但在任何地方都没有示例。那么我如何对字符进行分类,例如将“f”和“m”转换为 (0,1) 等整数的性别列?
【问题讨论】:
标签: python machine-learning scipy scikit-learn ipython
我有一个字符列和数字,但我想对字符列进行分类并应用随机森林分类器。我意识到有 OneHotEncoder 但在任何地方都没有示例。那么我如何对字符进行分类,例如将“f”和“m”转换为 (0,1) 等整数的性别列?
【问题讨论】:
标签: python machine-learning scipy scikit-learn ipython
使用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
【讨论】: