Sklearn入门之数据预处理preprocessing

         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,方差为1with_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中其他模块的使用方法。

### sklearn入门教程与基本用法 #### 什么是sklearn? Scikit-learn(简称sklearn)是一个强大的Python机器学习库,广泛应用于数据挖掘、数据分析和预测建模等领域[^1]。它不仅提供了多种监督学习和无监督学习算法,还包含了用于数据预处理、特征提取、模型选择和评估等功能的工具。 --- #### 如何安装sklearn? 为了使用sklearn,需先完成其安装过程。以下是具体操作: 1. **准备工作** 确保已安装Python环境(推荐版本为3.7及以上),并满足依赖项的要求:NumPy(>= 1.8.2)和SciPy(>= 0.13.3)[^4]。 2. **安装命令** 如果使用`pip`作为包管理器,则运行以下命令: ```bash pip install -U scikit-learn ``` 若采用Anaconda发行版,可执行如下指令: ```bash conda install scikit-learn ``` 3. **验证安装成功** 执行以下代码片段以确认安装是否正常: ```python import sklearn print(sklearn.__version__) ``` --- #### 数据准备与加载 在实际应用中,通常需要从外部文件或内置数据集中获取数据。例如,可以通过以下方式加载著名的鸢尾花数据集: ```python from sklearn.datasets import load_iris data = load_iris() X, y = data.data, data.target print(f"Features shape: {X.shape}, Target shape: {y.shape}") ``` 此部分展示了如何访问数据及其标签[^3]。 --- #### 数据分割与预处理 对于大多数机器学习任务而言,合理分配训练集与测试集至关重要。此外,标准化或归一化数值范围有助于提升某些算法的表现效果。 ```python from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler # 划分数据集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 特征缩放 scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test) ``` 上述代码实现了基于标准差的方法对输入变量进行调整[^2]。 --- #### 构建线性回归模型 下面展示了一个简单的例子——利用线性回归拟合目标值的过程。 ```python from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score model = LinearRegression() model.fit(X_train_scaled, y_train) # 测试阶段 predictions = model.predict(X_test_scaled) mse = mean_squared_error(y_test, predictions) r2 = r2_score(y_test, predictions) print(f"MSE: {mse:.2f}, R² Score: {r2:.2f}") ``` 此处计算均方误差(MSE)及决定系数(R²),从而衡量预测精度[^2]。 --- #### 模型评估之交叉验证 除了单独划分训练/测试子集外,还可以借助k折交叉验证进一步检验泛化能力。 ```python from sklearn.model_selection import cross_val_score cv_scores = cross_val_score(model, X, y, cv=5, scoring='neg_mean_squared_error') mean_cv_mse = -np.mean(cv_scores) print(f"Mean Cross-Validated MSE: {mean_cv_mse:.2f}") ``` 该段脚本说明了通过多次迭代平均得出更稳健的结果[^5]。 --- #### 总结 以上内容涵盖了sklearn的基础概念、安装指南以及典型应用场景下的实现细节。希望可以帮助初学者快速上手这一优秀的开源软件! ---
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值