scikit-learn数据预处理

本文介绍了Python机器学习库scikit-learn中的数据预处理技术,包括数据标准化、规范化、二进制化、标签预处理(如标签二值化和编码)、分类特征编码、缺失值估算和多项式特征生成等步骤,帮助提升模型性能。
摘要由CSDN通过智能技术生成

Python下的机器学习工具scikit-learn(-数据预处理)

参考自http://lib.csdn.net/article/machinelearning/1119http://scikit-learn.org/stable/modules/preprocessing.html

(1)数据标准化(Standardization or Mean Removal and Variance Scaling)

进行标准化缩放的数据均值为0,具有单位方差。

#scale函数提供一种便捷的标准化转换操作,如下:
from sklearn import preprocessing #导入数据预处理包
X=[[1.,-1.,2.],
   [2.,0.,0.],
   [0.,1.,-1.]]
X_scaled=preprocessing.scale(X)
X_scaled
array([[ 0.        , -1.22474487,  1.33630621],
       [ 1.22474487,  0.        , -0.26726124],
       [-1.22474487,  1.22474487, -1.06904497]])
X_scaled.mean(axis=0)#preprocessing.scale()方法默认是按0轴(x坐标)缩放的
array([ 0.,  0.,  0.])
X_scaled.std(axis=0)
array([ 1.,  1.,  1.])

同样我们也可以通过preprocessing模块提供的Scaler(StandardScaler 0.15以后版本)工具类来实现这个功能:

scaler=preprocessing.StandardScaler().fit(X)
scaler
StandardScaler(copy=True, with_mean=True, with_std=True)
scaler.mean_
array([ 1.        ,  0.        ,  0.33333333])
scaler.scale_#scaler.std_ will be removed in 0.19. Use ``scale_`` instead
array([ 0.81649658,  0.81649658,  1.24721913])
scaler.transform(X)
array([[ 0.        , -1.22474487,  1.33630621],
       [ 1.22474487,  0.        , -0.26726124],
       [-1.22474487,  1.22474487, -1.06904497]])

(2)数据规范化(Normalization)

将矩阵缩放至[0,1]区间

import numpy as np
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可以用来适配新的数据
X_test=np.array([[-
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值