Sklearn入门之数据预处理preprocessing

发布于:2025-04-20 ⋅ 阅读:(73) ⋅ 点赞:(0)

         Sklearn全称:Scipy-toolkit  Learn是 一个基于scipy实现的的开源机器学习库。它提供了大量的算法和工具,用于数据挖掘和数据分析,包括分类、回归、聚类等多种任务。本文我将带你了解并入门Sklearn下的preprocessing在机器学习中的基本用法。

获取方式

pip install scikit-learn

模块结构

        在Python中,要想熟练地使用一个库来完成各种任务,那么我们必须得对这个库内各个模块的结构比较熟悉才可以,观察Scikit-learn源代码中的第一级模块,我们不难画出这样的一个树状图用来描述其结构:

        在这其中,datasets为内置数据集,剩下的2-13基本包含了整个机器学习中所有比较经典的算法,后边七个模块是我们在进行机器学习任务时常用的工具。

        后续,我将分别为大家介绍这20个模块的基本用法,本文我们着重来了解preprocessing这个模块的基本用法。

Preprocessing

        当我们对需要对数据进行预处理操作的时候,可以使用sklearn的preprocessing模块内的函数来进行操作,这里我给大家罗列出来常用数据预处理操作以及sklearn.preprocessing模块内对应函数。

预处理类型 主要函数/类 功能描述 常用参数 适用场景
​​标准化​​ StandardScaler 将特征缩放为均值为0,方差为1 with_meanwith_std 适用于大多数基于距离的算法
​​归一化​​ MinMaxScaler 将特征缩放到给定范围(默认[0,1]) feature_range 神经网络、图像处理
MaxAbsScaler 将特征缩放到[-1,1]范围 - 稀疏数据
Normalizer 对样本进行归一化(行归一化) norm('l1','l2','max') 文本分类、聚类
​​鲁棒缩放​​ RobustScaler 使用中位数和四分位数范围缩放 with_centeringwith_scaling 存在异常值的数据
​​非线性变换​​ PowerTransformer 应用幂变换使数据更接近正态分布 method('yeo-johnson','box-cox') 非正态分布数据
QuantileTransformer 使用分位数信息变换特征 n_quantilesoutput_distribution 非线性模型
​​离散化​​ KBinsDiscretizer 将连续特征离散化 n_binsencodestrategy 决策树类算法
​​二值化​​ Binarizer 根据阈值将数据二值化 threshold 文本处理、概率输出
​​编码分类特征​​ OrdinalEncoder 将分类特征编码为整数 categories 有序分类变量
OneHotEncoder 将分类特征进行one-hot编码 categoriesdrop 无序分类变量
LabelEncoder 将目标标签编码为0到n_classes-1 - 目标变量编码
​​缺失值处理​​ SimpleImputer 填充缺失值 strategy('mean','median','most_frequent','constant') 数据缺失处理
​多项式特征​ PolynomialFeatures 生成多项式特征 degreeinteraction_only 线性模型扩展特征
​自定义变换​ FunctionTransformer 应用自定义函数变换 funcinverse_func 自定义预处理逻辑
​特征选择​ VarianceThreshold 移除低方差特征 threshold 预处理中的特征选择

总结

        以上便是 Sklearn入门之preprocessing的基本用法的所有内容,如果本文对你有用,免费的三连来一波,感谢各位大佬支持。后续,我还将继续介绍sklearn中其他模块的使用方法。


网站公告

今日签到

点亮在社区的每一天
去签到