sklearn.preprocessing

sklearn中提供了数据预处理的模块,该模块包括了scaling(缩放),centering(中心化),normalization(归一化),binarization(二值化)和imputation(缺失值填补)操作。

实际上metric-based和gradient-based模型都假设输入的特征是标准正态分布的。而决策树是一个例外,它能接受任意scale的数据。sklearn提供的例子,比较各种scaling方法的区别

关于稀疏矩阵:
CSR: Compressed Sparse Rows(see scipy.sparse.csr_matrix)
CSC: Compressed Sparse Columns(see scipy.sparse.csc_matrix)
任何稀疏输入都可以转换成CSR表示

线性变换

函数作用重要参数使用说明备注
scale(X[, axis, with_mean, …])标准化数据集axis:如果为0,则分别对每一个特征标准化,如果为1,则对每一个样本进行标准化;with_mean:如果为真,则再scaling前先中心化数据;with_std:如果为真,则将数据的方差变为1不要用于稀疏矩阵,除非with_mean=False;对于NAN,会自动忽略,接受一维数据
StandarScaler([copy, …])标准化数据集同scale对于CSR和CSC矩阵,需将with_mean=False来避免破坏数据的稀疏结构,需先fit(data)再transform(data)相当于scale有了API
MinMaxScaler([feature_range, copy])将特征缩放到所给的范围内feature_range:需要缩放至的范围,默认是(0,1)用于小方差的数据和保留稀疏数据中的0
MaxAbsScaler([copy])以每个特征最大值的绝对值来进行缩放,缩放后的数据范围是[-1,1]适用于数据已经是标准化数据或是稀疏数据。用于小方差的数据和保留稀疏数据中的0,也可用于CSR和CSC矩阵
minmax_scale(X[, …])将特征scaling至给定范围feature_range:同MinMaxScaler;axis:同scale不产生object,一个简易入口
maxabs_scale(X[, axis, copy])在不破坏稀疏性的前提下,将数据,,接受一维数据缩放至[-1,1]axis:同scale不产生object,一个简易入口,,接受一维数据
RobustScaler([with_centering, …])针对异常点的标准化with_centering:如果为真,scaling钱中心化。如果输入的是稀疏矩阵,那么with_centering=False,否则会爆内存;with_scaling:如果为真,将数据缩放至四分位范围内;quantile_range:默认为(25.0,75.0,),缩放范围该标准化将数据去掉中心值后将数据压缩至1/4分位点到3/4分位点之间。
robust_scale(X[, axis, …])针对异常点的标准化基本同RobustScaler,axis:同scale
KernelCenterer中心化一个核矩阵

非线性转换

函数作用重要参数使用说明备注
QuantileTransformer([…])利用分位点信息进行数据转换成均匀分布或是正态分布n_quantiles:要计算的分位数的数目;output_distribution:选择是正态分布还是均匀分布;ignore_implicit_zeros:输入为稀疏矩阵时使用会使不同大小的数据可比性更强。比起scaling,受异常点的影响更小,但是会扭曲特征间的关联和距离。
quantile_transform(X[, axis, …])利用分位点信息进行数据转换成均匀分布或是正态分布基本同QuantileTransformer([…])不产生object,一个简易入口
PowerTransformer([method, …])利用power transformations将数据转换成高斯分布method:转换方法,根据数据有无负数来选择;standardize:是否标准化用于稳定方差和减少偏度需要进行数据可视化来确定是否真得转换成高斯分布
power_transform(X[, method, …])基本同PowerTransformer

Normalization

函数作用重要参数使用说明
Normalizer([norm,copy])将样本标准化norm:用于标准化非零样本的准则,可选’l1’,'l2’以及‘max’常用于文本分类和聚类 ,接受CSR
normalize(X[, norm, axis, …])基本同Normalizer

对于分类特征进行编码

函数作用重要参数使用说明
OrdinalEncoder([categories, dtype])将类别特征转换成一个数组categories:赋予每一特征独特的值;dtype:可选择输出的类型不建议使用该方法,因为会给模型引用排序信息
OneHotEncoder([n_values, …])独热码sparse:如果为真时,返回一个稀疏矩阵,否则返回一个数组;handle_unknown:处理未出现过的特征的方法;categorical_features:需要被转换的分类特征标签也要用LabelBinarizer进行转换

离散化

可以给线性模型引用非线性元素

函数作用重要参数使用说明
KBinsDiscretizer([n_bins, …])将连续数据离散化n_bins:区间个数;encode:编码方式;strategy:决定bins长度的策略
Binarizer([threshold, copy])二值化特征threshold:阈值如果特征理论上符合多变量伯努利分布时使用sklearn.neural_network.BernoulliRBM,也常用于文本分析
binarize(X[, threshold, copy])基本与Binarizer相同

生成多项式特征

函数作用重要参数使用说明
PolynomialFeatures生成多项式和相互作用的特征degree:多项式的次数;interaction_only:是否生成交互的特征;include_bias:是否添加零次项高次项会导致过拟合

定制转换法则

函数作用
FunctionTransformer可自我定制转换方式

其他

函数作用重要参数使用说明
LabelBinarizer([neg_label, …])将标签进行独热编码neg_label:用该值对负数进行编码;pos_label:用该值对正数进行编码;sparse_output:如果为真,输出为CSR可将一个特征变成多个特征
LabelEncoder将标签进行标号
MultiLabelBinarizer([classes, …])在iterables的iterable和多标签格式之间进行转换
add_dummy_feature(X[, value])增加一个额外的虚拟数据集
label_binarize(y, classes[, …])同LabelBinarizer
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值