从数据加载到特征标准化:Python 机器学习预处理完整代码示例
·
从数据加载到特征标准化:Python机器学习预处理完整指南
引言
在机器学习项目中,数据预处理是决定模型性能的关键环节。本文将完整展示从原始数据加载到特征标准化的全流程,通过Python代码逐步实现每个关键步骤。
1. 数据加载与初步探索
首先加载数据集并进行初步分析:
import pandas as pd
import numpy as np
# 加载数据集(以Iris为例)
data = pd.read_csv('iris.csv')
print("数据维度:", data.shape)
print("\n前5行数据:")
print(data.head())
# 检查数据类型
print("\n数据类型:")
print(data.dtypes)
2. 数据清洗与缺失值处理
处理缺失值和异常数据:
# 检查缺失值
print("缺失值统计:")
print(data.isnull().sum())
# 填充缺失值(以均值填充为例)
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(strategy='mean')
numeric_cols = data.select_dtypes(include=np.number).columns
data[numeric_cols] = imputer.fit_transform(data[numeric_cols])
3. 特征工程处理
3.1 分类变量编码
from sklearn.preprocessing import LabelEncoder
# 对分类变量编码
label_encoder = LabelEncoder()
data['species'] = label_encoder.fit_transform(data['species'])
3.2 特征创建
# 创建新特征(花瓣长宽比)
data['petal_ratio'] = data['petal_length'] / data['petal_width']
4. 特征标准化
实现两种常用标准化方法:
4.1 Z-Score标准化
$$ z = \frac{x - \mu}{\sigma} $$
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaled_data = scaler.fit_transform(data[numeric_cols])
4.2 Min-Max归一化
$$ x_{\text{norm}} = \frac{x - x_{\min}}{x_{\max} - x_{\min}} $$
from sklearn.preprocessing import MinMaxScaler
minmax_scaler = MinMaxScaler(feature_range=(0, 1))
normalized_data = minmax_scaler.fit_transform(data[numeric_cols])
5. 完整预处理流水线
整合所有步骤的完整代码:
from sklearn.pipeline import Pipeline
from sklearn.compose import ColumnTransformer
# 定义预处理步骤
preprocessor = ColumnTransformer(
transformers=[
('num', StandardScaler(), numeric_cols),
('cat', LabelEncoder(), ['species'])
])
# 创建流水线
pipeline = Pipeline(steps=[
('imputer', SimpleImputer(strategy='mean')),
('preprocessor', preprocessor)
])
# 执行预处理
processed_data = pipeline.fit_transform(data)
结语
本文完整展示了机器学习数据预处理的六大关键步骤:
- 数据加载与探索
- 缺失值处理
- 分类变量编码
- 特征工程
- 特征标准化
- 流水线整合
通过系统化的预处理流程,可显著提升后续建模效果。实际应用中建议根据具体数据特性调整处理策略,例如对偏态分布数据采用对数变换等补充处理。
完整代码可在[示例仓库]获取(需替换为实际仓库链接)
更多推荐



所有评论(0)