sklearn.preprocessing

数据预处理(sklearn.preprocessing) 前言 数据预处理的工具有许多,在我看来主要有两种:pandas数据预处理和scikit-learn中的sklearn.preprocessing数据预处理。 前面更新的博客中,我已有具体的根据pandas来对数据进行预处理,原文请点击这里。其中主要知识点包括一下几个方面: 数据的集成:merge、concat、join、combine_first; 数据类型转换:字符串处理(正则表达式)、数据类... 阅读详情

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
from sklearn.preprocessing import LabelEncoder的详细用法 处理非数值特征:确保仅对数值特征应用编码。如果你的数据集中有其他非数值特征(如字符串、日期等),应首先将其转换为数值特征。例如,你可以使用独热编码(One-Hot Encoding)或因子分析(Factor Analysis)等方法。LabelEncoder 是 sklearn.preprocessing 模块中的一个工具,用于将分类特征的标签转换为整数。这在许多机器学习算法中是必要的,因为它们通常不能处理类别数据。其中 labels 是一个包含类别标签的列表或数组。 阅读详情

相关推荐

NCBI Datasets CLI优化:解决基因组数据下载报错与速度问题

基因组数据下载是生物信息学分析的关键环节,其稳定性和效率直接影响研究进度。NCBI Datasets CLI作为官方命令行工具,常面临连接中断和下载速度慢两大痛点,这主要源于服务器连接限制和网络传输问题。通过自动重试机制和校验修复流程可提升稳定性,而连接复用与CDN加速等技术能显著提高下载效率。在植物基因组等大规模数据场景中,结合脱水模式和增量更新策略可减少70%传输量。本文以艾草基因组项目为例,展示如何通过并行下载和API优化将100个基因组的下载时间从18小时缩短至2小时,为生物信息学研究提供可靠的数据

weixin_29051245的博客 243

sklearn.preprocessing()详解: 标准化、正则化、最小最大规范化、特征二值化

一. 数据的标准化与归一化(zero-mean normalization): class sklearn.preprocessing.StandardScaler(*, copy=True, with_mean=True, with_std=True) 官方文档-StandardScaler standard score(z) of a sample x: z = (x - u) / s u: the mean of training samples (u = 0 if with_mean = Fal

从零开始的编码生活 4950

DIY音频必备:手把手教你用AB类功放模块打造高保真桌面音响(含电路图)

本文详细指导如何利用AB类功放模块DIY高保真桌面音响,涵盖选型指南、核心元器件清单、电路搭建与焊接工艺,以及系统调试与音质优化技巧。AB类功放以其接近A类功放的音质和B类功放的效率,成为音频爱好者的理想选择,适合有一定电子基础的实践者。

weixin_42665725的博客 445

数据预处理 --Sklearn preprocessing的理解

一、标准化 API函数:scaler()或者StandardScaler()   数据集标准化对有些机器学习算法是很有必要的手段,只所以进行标准化,是因为两个原因:其一,对于同一特征中,最大最小值之差过大,将数据缩放在合适的范围,比如手机包月流量使用情况,有些数值是500M,有些是1G;其二、有些机器学习算法中目标函数的基础为假设特征均值为0,方差在同一介数的情况,sklearn官网说这类算...

weixin_30348519的博客 376

优惠券管理

(请设计一个优惠券兑换码生成方案,可以支持20亿以上的唯一兑换码,兑换码长度不超过10,只能包含字母数字,并且要保证生成和校验算法的高效)最后把签名值的后14位、新鲜值(4位)、自增序列(32位)拼接,得到一个50位二进制数,然后与一个较大的质数做异或运算加以混淆,再基于Base32或Base64转码,即可的对兑换码。现在,就剩下防止爆刷了。自增id从1增加到Integer的最大值,可以达到40亿以上个数字,而占用的字节仅仅4个字节,也就是32个bit位,距离50个bit位的限制还有很大的剩余,符合要求!

qq_36312661的博客 2206

微信抢红包神器自动抢软件

微信抢红包神器自动抢软件

weixin_44006731的博客 8081

sklearn.preprocessing模块介绍

用于对离散特征进行独热编码。它将每个离散特征的每个取值转换为一个二进制特征向量,其中只有一个元素为 1,表示该取值,其他元素为 0。

qq_29983883的博客 5036

JSON(详解)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它以易于阅读和编写的文本格式来存储和表示数据,通常用于在不同的系统之间进行数据交换。JSON数据以键-值对的形式组织,可以包含对象、数组、字符串、数字等基本数据类型。它经常在Web开发、API通信等领域被广泛使用。

7706

数据规范化——sklearn.preprocessing

sklearn实现---归类为5大类 sklearn.preprocessing.scale()(最常用,易受异常值影响) sklearn.preprocessing.StandardScaler() sklearn.preprocessing.minmax_scale()(一般缩放到[0,1]之间,若新数据集最大最小值范围有变,需重新minmax_scale) sklearn.preproce...

weixin_30444105的博客 726

SageMath下载与安装

SageMath的下载与安装

旺旺的碎冰冰~的博客 7508

【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏1(附项目源码)

关于使用TileMap生成随机2D地图,其实之前已经有做过类似的,感兴趣可以看看 但是随着学习深入,发现之前做的比较粗糙和不够全面,最近又在外网看到

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2216

sklearn.preprocessing模块

标准化和范围缩放

sanghuinan的博客 1105

ImportError: DLL load failed: 找不到指定的程序的解决方案

本文主要介绍了ImportError: DLL load failed: 找不到指定的程序的解决方案,希望能对使用Python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 18万+

sklearn.preprocessing.LabelEncoder

sklearn.preprocessing.LabelEncoder():标准化标签,将标签值统计转换成range(标签值个数-1) 以数字标签为例: In [1]: from sklearn import preprocessing ...: le = preprocessing.LabelEncoder() ...: le.fit([1,2,2,6,3]) ...: Ou

每天进步一点点2017 4万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

python 对数据集的缺失值补全方法 sklearn.preprocessing.Imputer

1、官方说明 sklearn.preprocessing.Imputer 用于对数据中的缺失值进行补全,支持“均值(mean)”、“中值(median)”、“众数(most_frequant,也就是mode)”三种数值替换数据集中的缺失值(numpy.nan、NaN等) https://scikit-learn.org/stable/modules/generated/sklearn.prep...

sdnuwjw的博客 8365

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

sklearn.preprocessing.MinMaxScaler

sklearn.preprocessing.MinMaxScaler sklearn.preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True) 将数据的每一个特征缩放到给定的范围,将数据的每一个属性值减去其最小值,然后除以其极差(最大值 - 最小值) 原理实现: X_std = (X - X.min(axis=0)) / (X.max...

weixin_41798592的博客 1万+

sklearn.preprocessing.LabelEncoder的使用

在训练模型之前,我们通常都要对训练数据进行一定的处理。将类别编号就是一种常用的处理方法,比如把类别“男”,“女”编号为0和1。可以使用sklearn.preprocessing中的LabelEncoder处理这个问题。 作用 将n个类别编码为0~n-1之间的整数(包含0和n-1)。 例子 假设我们要对性别数据进行编码,则数据可以分为两种情况:无NaN,有NaN。 首先导入要使用的包 import ...

weixin_30767835的博客 3299

Sklearn入门之数据预处理preprocessing

以上便是Sklearn入门之preprocessing的基本用法后续,我还将继续介绍sklearn中其他模块的使用方法。

weixin_73953650的博客 2002

sklearn.preprocessing.scale

sklearn.preprocessing.scale简介 函数:sklearn.preprocessing.scale(X, axis=0, with_mean=True, with_std=True, copy=True) 作用:数据标准化 公式:(X-X_mean)/X_std 计算时对每个属性/每列分别进行。 原理:将数据按其属性(按列进行)减去其均值,然后除以其方差。最后得到的结果是,对...

我有明珠一颗的博客 1万+

sklearn.preprocessing.Normalizer

①sklearn.preprocessing.Normalizer(norm=’l2’, copy=True) norm:可以为l1、l2或max,默认为l2 若为l1时,样本各个特征值除以各个特征值的绝对值之和 若为l2时,样本各个特征值除以各个特征值的平方之和 若为max时,样本各个特征值除以样本中特征值最大的值 In [7]: from sklearn import prepr

每天进步一点点2017 1万+

sklearn.preprocessing 中的 Imputer

填补缺失值:sklearn.preprocessing.Imputer(missing_values=’NaN’, strategy=’mean’, axis=0, verbose=0, copy=True) 主要参数说明: missing_values:缺失值,可以为整数或NaN(缺失值numpy.nan用字符串‘NaN’表示),默认为NaN strategy:替换策略,字符串,默认用均值‘me...

weixin_42542536的博客 2992

sklearn.preprocessing.MultiLabelBinarizer

多标签二值化:sklearn.preprocessing.MultiLabelBinarizer(classes=None, sparse_output=False) classes_属性:若设置classes参数时,其值等于classes参数值,否则从训练集统计标签值 ①classes默认值,classes_属性值从训练集中统计标签值 In [1]: from sklearn.prepro

每天进步一点点2017 1万+

sklearn.preprocessing.LabelBinarizer

标签二值化:sklearn.preprocessing.LabelBinarizer(neg_label=0, pos_label=1,sparse_output=False)主要是将多类标签转化为二值标签,最终返回的是一个二值数组或稀疏矩阵 参数说明: neg_label:输出消极标签值 pos_label:输出积极标签值 sparse_output:设置True时,以行压缩格式

每天进步一点点2017 5867
上一篇: sklearn.model_selection
Hiappsus
博客等级 码龄10年 2粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值