sklearn学习笔记之preprocessing

官方文档地址
参考链接sklearn中文翻译地址:http://www.scikitlearn.com.cn/0.21.3/40/

这个模块的主要内容是数据的预处理:

  • scaling:缩放化
  • normalization:标准化
  • binarization 二值化
  • centering:中心化

API

Binarizer
sklearn.preprocessing.Binarizer(*, threshold=0.0, copy=True)

作用:将数据进行二值化,若是特征值(feature value)大于阈值(threshold)则将特征值赋值为1否则为0

参数

  • threshold:阈值,默认为0
  • copy:默认为True
    设置为False就会将x原值进行替换为二分值(即只为0、1),
    设置为True则不会替换x原值

示例

>>>from sklearn.preprocessing import Binarizer
>>>X = [[ 1., -1.,  2.],
     [ 2.,  0.,  0.],
     [ 0.,  1., -1.]]
>>>transformer = Binarizer().fit(X)
>>>transformer
>Binarizer()
>>>transformer.transform(X)
array([[1., 0., 1.],
       [1., 0., 0.],
       [0., 1., 0.]])

Binarizer官方地址

LabelEncoder
sklearn.preprocessing.LabelEncoder

作用:将目标label编码成[0-n_classes-1]范围的值

示例

>>> from sklearn import preprocessing
>>> le = preprocessing.LabelEncoder()
>>> le.fit([1, 2, 2, 6])
LabelEncoder()
>>> le.classes_
array([1, 2, 6])
>>> le.transform([1, 1, 2, 6])
array([0, 0, 1, 2]...)
>>> le.inverse_transform([0, 0, 1, 2])
array([1, 1, 2, 6])

也可以对非数值型的对象进行编码(这些对象必须可相互比较)转化为数值型标签

>>> le = preprocessing.LabelEncoder()
>>> le.fit(["paris", "paris", "tokyo", "amsterdam"])
LabelEncoder()
>>> list(le.classes_)
['amsterdam', 'paris', 'tokyo']
>>> le.transform(["tokyo", "tokyo", "paris"])
array([2, 2, 1]...)
>>> list(le.inverse_transform([2, 2, 1]))
['tokyo', 'tokyo', 'paris']

LabelEncoder官方地址

MinMaxScaler
sklearn.preprocessing.MinMaxScaler(feature_range=(0, 1), *, copy=True)

作用:将特征缩放到指定范围中,默认是在0-1之间

若是给MinMaxScaler提供一个明确的feature_range=(min,max),完整公式是:

X_std = (X - X.min(axis=0))/(X.max(axis=0)-X.min(axis=0))
#max 是feature_range中的max,min是feature_range中的min
X_scaled = X_std * (max - min) + min

参数

  • feature_range:设置缩放范围,默认是(0,1)
  • copy:和上面一样,不赘述

示例

  1. 将数据矩阵缩放到[0-1]范围
>>> X_train = np.array([[ 1., -1.,  2.],
...                     [ 2.,  0.,  0.],
...                     [ 0.,  1., -1.]])
# 一种写法
>>> min_max_scaler = preprocessing.MinMaxScaler()
>>> X_train_minmax = min_max_scaler.fit_transform(X_train)
>>> X_train_minmax
array([[ 0.5       ,  0.        ,  1.      ],
 [ 1.        ,  0.5       ,  0.33333333],
 [ 0.        ,  1.        ,  0.        ]])
#第二种写法
>>>min_max_scaler = preprocessing.MinMaxScaler(feature_range=(0,1))
>>>X_train_minmax = min_max_scaler.fit(X_train_minmax)
>>>X_train_minmax.transform(X_train_minmax)
array([[ 0.5       ,  0.        ,  1.        ],
 [ 1.        ,  0.5       ,  0.33333333],
 [ 0.        ,  1.        ,  0.        ]])

MinMaxScaler官网文档

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值