sklearn.preprocessing

本文介绍了scikit-learn库中的数据预处理方法,包括标准化(scale)以实现数据的零均值和单位方差,归一化(normalize)使样本具有统一标准,特征二值化(Binarizer)将数值转换为布尔值,以及如何使用OneHotEncoder进行类别特征编码。此外,还讨论了如何处理缺失数据,如使用Imputer填充缺失值,以及通过PolynomialFeatures生成多项式特征以增强模型复杂度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标准化(中心化)scale

sklearn.preprocessing.scale(Xaxis=0with_mean=Truewith_std=Truecopy=True)

X 用来标准化的数据(数组或者稀疏矩阵)
axis 0表示对一列去做相同的操作,1表示对一行去做相同的操作
with_mean 要均值中心化(true)
with_std 要方差规模化(true)

标准化的过程为两步:去均值的中心化(均值变为0);方差的规模化(方差变为1)。

from sklearn import preprocessing
import numpy as np

# 创建一组特征数据,每一行表示一个样本,每一列表示一个特征
x = np.array([[1., -1., 2.],
              [2., 0., 0.],
              [0., 1., -1.]])

# 将每一列特征标准化为标准正太分布,注意,标准化是针对每一列而言的
x_scale = preprocessing.scale(x)

x_scale

>>> array([[ 0.        , -1.22474487,  1.33630621],
       [ 1.22474487,  0.        , -0.26726124],
       [-1.22474487,  1.22474487, -1.06904497]])

# 可以查看标准化后的数据的均值与方差,已经变成0,1了
x_scale.mean(axis=0)
>>> array([ 0.,  0.,  0.])

x_scale.std(axis=0)
>>> array([ 1.,  1.,  1.])

# axis=1表示对每一行去做这个操作,axis=0表示对每一列做相同的这个操作
x_scale.mean(axis=1)
>>> array([ 0.03718711,  0.31916121, -0.35634832])

归一化

 

标准化是依照特征矩阵(每一列是用同一个特征的不同取值)的列处理数据,其通过求z-score的方法,将样本的每个特征的值转换到同一量纲下。 
归一化是依照特征矩阵(每一行是不同特征的取值)的行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准,也就是说都转化为“单位向量”。
 

sklearn.preprocessing.normalize(Xnorm=’l2’axis=1copy=Truereturn_norm=False)

Normalization各个样本归一化为norm为1的正态分布

函数 normalize 提供了一个简单的方法来操作类似数组的数据集,使用l1或l2范式(norm参数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值