sklearn学习之--预处理数据

本文介绍了scikit-learn中的数据预处理方法,包括标准化、非线性转换、特征缩放、归一化、二值化和分类特征编码。标准化通过去除均值和缩放至单位方差,确保数据的零均值和标准正态分布;非线性转换如分位数转换用于处理离群值;归一化用于使样本具有单位范数;二值化将数值特征转换为布尔值;分类特征通过one-hot编码转换为数值形式;对于缺失值,可以使用平均值、中位数或众数进行插补。
摘要由CSDN通过智能技术生成

                                   sklearn学习之--预处理数据


1.标准化,也成为曲俊致和方差按比例缩放

说明:什么是标准化 :数值减去均值,再除以标准差

           什么是中心化:变量减去他们的均值

           意义:数据中心化和标准化在回归分析中是取消由于量纲不同,自身变异或者数值相差较大一起的误差。

           目的:通过中心化和标准化处理,得到均值为0,标准差为1的服从标准正态分布的数据。

数据集的标准化对scikit-learn中实现的大多是机器学习算法来说是常见的要求。如果个别特征或多或少看起来不是很像标准正态分布(具有0均值和单位方差),那么它的他们的表现可能会比较差。

在实际情况中,我们经常忽略特征的分布形状,直接经过去均值来对某个特征进行中心化,在通过初一非常亮特征的标准差进行缩放。

例如,在机器学习算法的目标函数例如(SVM的RBF内核或者线性模型的l1和l2正则化),许多学习算法目标函数的额基础都是假设所有的特征都是零均值并且具有同一阶数上的方差。如果某个特征的方差比其他特征的大几个数量级,那么他就会在学习算法中占主导位置,导致学习器并不能如我们所期望的那样,从其他特征中学习。

函数scale为数组形状的数据集的标准化提供了一个快捷的实现

from sklearn import preprocessing
import numpy as np
X_train = np.array([[ 1., -1.,  2.],
                    [ 2.,  0.,  0.],
                    [ 0.,  1., -1.]])
X_scaled = preprocessing.scale(X_train)
#结果
array([[ 0.  ..., -1.22...,  1.33...],
       [ 1.22...,  0.  ..., -0.26...],
       [-1.22...,  1.22..., -1.06...]])

经过缩放后的数据具有零均值以及标准方差

X_scaled.mean(axis=0)
#结果
array([ 0.,  0.,  0.])
X_scaled.std(axis=0)
#结果
array([ 1.,  1.,  1.])

预处理模块还提供了一个实用类StandardScaler,它实现了转化器的API来计算训练集上的平均值和标准偏差,一遍以后能够在测试集上重新引用相同的变换。因此,这个 类适合用于sklearn,pipe.Plieline的早期步骤。计算平均值和标准差

from sklearn import preprocessing
import numpy as np

X_train = np.array([[ 1., -1.,  2.],
                    [ 2.,  0.,  0.],
                    [ 0.,  1., -1.]])

scaler=preprocessing.StandarScaler().fit(X_train)
scaler.mean_    #均值结果   array([ 1. ...,  0. ...,  0.33...])
scaler.scale_   #缩放系数

1.1  将特征缩放至特定的范围内

       一种标准化是将特征缩放到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值