机器学习的第一步:数据预处理

使用sklearn进行数据预处理:标准化、归一化、正则化与one-hot编码
本文介绍了机器学习中数据预处理的重要步骤,包括使用sklearn库进行标准化(z-score)、归一化、正则化以及one-hot编码的操作。标准化通过减去均值并除以标准差使数据集中在0附近,方差为1;归一化将数据缩放至0-1之间;正则化利用p范数实现向量的规范化;one-hot编码用于将分类数据转化为可计算的01向量。这些预处理方法有助于后续的机器学习任务,提高计算效率和模型性能。

背景

所谓的机器学习,目前还是基于统计的,有监督的。所以数据的预处理则显得尤其重要。
今天我们利用sklearn的preprocess来进行数据的预处理。

以前写过一篇关于特征缩放的,其实本质也是特征预处理,使得标准化。

这里主要是巩固,同时结合sklearn里的代码来实操。

预处理之: 标准化z-score

方法

x ′ = x − μ σ x' = \dfrac{x - \mu}{\sigma} x=σxμ
翻译公式为:(x-mean)/std 计算时对每个属性/每列分别进行。

意义

将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。

实战

import sklearn.preprocessing as preprocessor
scaler = preprocessor.StandardScaler()
z_x = scaler.fit_transform(x) #标准化
print(z_x)
print("mean:",z_x.mean(axis=0))
print("std:",z_x.std(axis=0))

预处理之:归一化

方法

就是把属性缩放到0-1之间。
x ′ = x − m i n ( x ) m a x ( x ) − m i n ( x ) x' = \dfrac{x - min(x)}{max(x) - min(x)} x

在“第一步数据预处理与特征工程”中,**主要使用Python**来完成相任务。 ### 为什么选择 Python? Python 是当前数据科学、机器学习和人工智能领域最主流的编程语言,具备以下优势: 1. **丰富的数据处理库** - 使用 `pandas` 进行数据读取、清洗、编码转换和缺失值处理; - 使用 `numpy` 实现高效的数值计算(如标准化公式:$x' = \frac{x - \mu}{\sigma}$); 示例代码逻辑(仅说明用途,不提供完整代码): ```python import pandas as pd df['SMOKING'] = df['SMOKING'] - 1 # 编码转换:1/2 → 0/1 df['AGE'] = (df['AGE'] - df['AGE'].mean()) / df['AGE'].std() # 标准化 ``` 2. **强大的机器学习支持** - 使用 `scikit-learn` 提供的 `StandardScaler`、`LabelEncoder`、`SMOTE` 等工具进行特征工程与类别不平衡处理; - 可直接对接后续建模环节,流程无缝衔接。 3. **高效快捷的开发体验** - Jupyter Notebook 支持交互式调试,便于观察每一步处理结果; - 开源生态完善,文档丰富,易于团队协作与维护。 --- ### 是否可以使用其他工具? 虽然也可使用如下工具,但**不推荐作为本项目首选**: | 工具 | 说明 | |------|------| | Excel / SPSS | 适合简单统计分析,但难以处理复杂逻辑、自动化流程和模型集成,且无法对接微信小程序后端。 | | R语言 | 具备强大统计分析能力,但在工程部署、API接口开发方面不如Python生态成熟。 | | MATLAB | 数值计算能力强,但开源性差、成本高,不适合轻量化系统部署。 | --- ### 总结 ✅ **推荐使用 Python** 完成“数据预处理与特征工程”阶段的所有任务,因其具备: - 成熟的数据处理库(pandas、numpy) - 完整的机器学习生态系统(scikit-learn、imbalanced-learn) - 良好的前后端集成能力(可直接部署为API服务) 该选择能确保从数据清洗到模型训练再到系统集成的全流程高效贯通,是本研究最合理的技术路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值