sklearn onehot编码解读https://www.cnblogs.com/Jerry-home/p/9824085.html
from sklearn import preprocessing
feature = [['红','重','长'],['黑','轻','长'],['白','重','短'],['白','重','中']]
coder = preprocessing.OneHotEncoder()
coder.fit(feature)
x = [['白','重','短'],['白','重','中']]
coder.transform(x).toarray()
#3个特征分别占据3,2,3位
Out[16]:
array([[1., 0., 0., 0., 1., 0., 1., 0.],
[1., 0., 0., 0., 1., 1., 0., 0.]])
解读一下OneHotEncoder函数
OneHotEncoder(n_values=None,
categorical_features=None,
categories=None,
drop=None,
sparse=True,
dtype=np.float64,
handle_unknown='error')
1、n_values/categories
表示每个特征使用几维的数值(默认为auto,表示从数据集中自动推断),即几种类别就使用几位来表示。也可以自己指定OneHotEncoder(categories= [3,2,3])
注:0.19版本之前用n_values,0.20版本之后用categories
2、categorical_features
定了对哪些特征进行编码(默认为'all',)