💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在优快云上与你们相遇~💖
本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】
Sklearn 机器学习:对多列数据进行缺失值填充的正确姿势 ✨
在实际的机器学习项目中,我们经常会遇到 缺失值(Missing Values) 问题。尤其是当数据集包含多个列且存在不同类型(数值型、分类型)缺失时,如何高效、优雅地使用 Scikit-learn(sklearn) 工具进行批量填充,是一个非常值得深入掌握的技巧。
本文将深入讲解如何使用 sklearn
对多列数据批量进行缺失值填充,并结合 ColumnTransformer
实现自动化处理流程,适用于实际工程环境。
🧩 一、缺失值的来源与影响
✅ 常见缺失情况:
- 用户未填写信息(如年龄、性别)
- 数据采集问题(如硬件丢包)
- 数据合并导致字段不一致
❗ 缺失值对模型训练的影响:
- 大多数模型(如
RandomForest
,SVM
,LogisticRegression
)无法直接处理缺失值 - 不处理直接建模将报错或结果不稳定
- 错误填充可能导致偏差,影响泛化能力
🧪 二、准备数据:含多列缺失值的 DataFrame
我们模拟一个包含数值列和类别列的混合数据集,展示如何处理缺失值:
import pandas as pd
import numpy as np
# 模拟含缺失值的 DataFrame
df = pd.DataFrame({
'age': [25, np.nan,