sklearn onehot编码

sklearn onehot编码解读https://www.cnblogs.com/Jerry-home/p/9824085.html

  1. 根据训练数据统计特征每一维度的状态数(n_values_属性)
  2. 根据每一维度的状态数计算该特征所需位数,然后将各维度特征进行onehot编码之后拼接起来(feature_indices_则是各维特征在onehot编码中的起始索引)
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',)

你可能感兴趣的:(sklearn,sklearn,onehot,机器学习)