sklearn.preprocessing.OneHotEncoder

sklearn.preprocessing.OneHotEncoder(n_values=’auto’, categorical_features=’all’,dtype=<type ‘numpy.float64’>, sparse=True,handle_unknown=’error’)用于处理分类变量,将变量的特征值转换为稀疏矩阵

主要参数说明:

n_values:每个特征的取值个数,可以为auto、整数或整数数组

①若为auto时,从训练集中获取特征的取值范围

②若为整数时,则特征的取值必须在range(n_values)范围内

③若为整数数组,则X[:,i]对应的分类特征有n_values[i]个取值值,特征的取值在range(n_values[i])内

categorical_features:可能取值为all、indices数组或mask

①若为all时,代表所有的特征都被视为分类特征

②若为indices数组时,表示分类特征的indices值

③若mask时,表示特征长度数组

sparse:若为True时,返回稀疏矩阵,否则返回数组

handle_unknown:可以为字符串、error、ignore,在转换过程中,如果出现位置的分类特征时,是抛出错误或直接忽略

In [2]: import numpy as np
   ...: from sklearn import preprocessing
   ...: y = np.array([[1,2,3],[2,5,6]])
   ...: one_hot_encoder = preprocessing.OneHotEncoder()
   ...: one_hot_encoder.fit_transform(y).toarray()
   ...:
Out[2]:
array([[ 1.,  0.,  1.,  0.,  1.,  0.],
       [ 0.,  1.,  0.,  1.,  0.,  1.]])
y有三个特征:第一个特征的取值为1、2,第二特征的取值为2、5,第三个特征的取值为3、6;可知三个特征的最大特征值分别为2、5、6,每个特征的取值都必须在range(n_values[i])范围内,因此n_values=[3,6,7]

n_values_属性:取每个特征的最大特征值+1

In [3]: one_hot_encoder.n_values_
Out[3]: array([3, 6, 7])
feature_indices_属性:n_values_的累计

In [4]: one_hot_encoder.feature_indices_
Out[4]: array([ 0,  3,  9, 16], dtype=int32)
active_features_属性

In [5]: one_hot_encoder.active_features_
Out[5]: array([ 1,  2,  5,  8, 12, 15], dtype=int64)








  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值