当前位置: 首页 > news >正文

Scikit-learn Python机器学习 - 特征预处理 - 处理缺失值:SimpleImputer

锋哥原创的Scikit-learn Python机器学习视频教程:

2026版 Scikit-learn Python机器学习 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

课程介绍


本课程主要讲解基于Scikit-learn的Python机器学习知识,包括机器学习概述,特征工程(数据集,特征抽取,特征预处理,特征降维等),分类算法(K-临近算法,朴素贝叶斯算法,决策树等),回归与聚类算法(线性回归,欠拟合,逻辑回归与二分类,K-means算法)等。

Scikit-learn Python机器学习 - 特征预处理 - 处理缺失值:SimpleImputer

特征预处理就是将原始数据转换为一组更具代表性、更适合模型训练的特征的过程。

真实世界的数据通常存在以下问题,直接影响机器学习模型的性能:

1. 量纲不同:特征的单位和尺度差异巨大(如年龄范围 0-100 vs. 薪资范围 0-100000)。很多模型(如 SVM、KNN、线性回归)基于距离计算,量纲不统一会使得大尺度的特征主导模型,导致小尺度的特征失效。
2. 分布异常:数据可能存在偏差(Skew),不符合模型假设的正态分布,影响模型性能。
3. 信息冗余:定性特征(如国家、品牌)无法直接被模型使用,需要转换为数值。
4. 存在缺失值:数据集中某些特征的值可能缺失,需要处理。

我们处理缺失值,建议使用pandas。

pip install pandas==2.2.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

推荐学习下锋哥的课程。python数据处理与分析Pandas2:2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

Scikit-learn也提供了一些处理缺失值的方案。比如SimpleImputer

我们看一个示例:

import numpy as np
import pandas as pd
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from sklearn.impute import SimpleImputer
​
# 创建示例数据,包含不同类型的问题
data = {'age': [25, 30, np.nan, 45, 60, 30, 15],  # 数值,含缺失值'salary': [50000, 54000, 60000, np.nan, 100000, 40000, 20000],  # 数值,尺度大,含缺失值'country': ['USA', 'UK', 'China', 'USA', 'India', 'China', 'UK'],  # 分类型'gender': ['M', 'F', 'F', 'M', 'M', 'F', 'F']  # 分类型
}
​
df = pd.DataFrame(data)
print("原始数据:")
print(df)
​
# 策略通常为 mean(均值), median(中位数), most_frequent(众数), constant(固定值)
imputer = SimpleImputer(strategy='mean')
​
# 我们只对数值列进行填充
numeric_features = ['age', 'salary']
df_numeric = df[numeric_features]
​
# fit 计算用于填充的值(这里是均值),transform 应用填充
imputer.fit(df_numeric)
df[numeric_features] = imputer.transform(df_numeric)
​
print("\n处理缺失值后:")
print(df)

运行结果:

原始数据:age    salary country gender
0  25.0   50000.0     USA      M
1  30.0   54000.0      UK      F
2   NaN   60000.0   China      F
3  45.0       NaN     USA      M
4  60.0  100000.0   India      M
5  30.0   40000.0   China      F
6  15.0   20000.0      UK      F
​
处理缺失值后:age    salary country gender
0  25.000000   50000.0     USA      M
1  30.000000   54000.0      UK      F
2  34.166667   60000.0   China      F
3  45.000000   54000.0     USA      M
4  60.000000  100000.0   India      M
5  30.000000   40000.0   China      F
6  15.000000   20000.0      UK      F
​
Process finished with exit code 0

文章转载自:

http://lGUgJnFr.zxwbL.cn
http://QS5rQ0xB.zxwbL.cn
http://7fWgcq5H.zxwbL.cn
http://0FMm0lQv.zxwbL.cn
http://vRMFna9k.zxwbL.cn
http://h4BfaFGW.zxwbL.cn
http://ncR5CawZ.zxwbL.cn
http://eHjYMkSq.zxwbL.cn
http://9R2Ld2iG.zxwbL.cn
http://dop0QZ3D.zxwbL.cn
http://9rD705El.zxwbL.cn
http://sUiiKvRj.zxwbL.cn
http://ZJzHAKoi.zxwbL.cn
http://uldPLnFN.zxwbL.cn
http://53LBosIi.zxwbL.cn
http://7VIi2RMv.zxwbL.cn
http://lE2PH1BB.zxwbL.cn
http://CgDiD4Uo.zxwbL.cn
http://WlgakL6G.zxwbL.cn
http://2tdDkFUq.zxwbL.cn
http://6iyDcSX1.zxwbL.cn
http://S1KRI4bR.zxwbL.cn
http://GOAJMDnk.zxwbL.cn
http://R2ZCxssC.zxwbL.cn
http://v00lVxeO.zxwbL.cn
http://7SEuyKjX.zxwbL.cn
http://XI1ChQBd.zxwbL.cn
http://I4oS6dgk.zxwbL.cn
http://lkIS8WVr.zxwbL.cn
http://XwfWWpY4.zxwbL.cn
http://www.dtcms.com/a/364864.html

相关文章:

  • 深度学习与 OpenCV 的深度羁绊:从技术协同到代码实践
  • 苍穹外卖项目实战(日记十四)-记录实战教程及问题的解决方法-(day3课后作业) 菜品停售启售功能
  • centos 压缩命令
  • 解决CentOS 镜像列表服务已下线或迁移导致镜像服务和仓库停止维护解决方案
  • Python:AI开发第一语言的全面剖析
  • Linux之centos 系统常用命令详解(附实战案例)
  • pytorch gpu版本安装(最新保姆级安装教程)
  • 【常用SQL语句和语法总结】
  • Keras/TensorFlow 中 `fit()` 方法参数详细说明
  • leetcode_234 回文链表
  • 如何画时序图、流程图
  • try-catch:异常处理的最佳实践与陷阱规避
  • 2025年互联网行业专业认证发展路径分析
  • RoPE频率缩放机制:解密大语言模型上下文扩展的核心算法
  • 无人机散热模块技术要点分析
  • Diamond基础3:在线逻辑分析仪Reveal的使用
  • 超越马力欧:如何为经典2D平台游戏注入全新灵魂
  • 【Spring Cloud微服务】10.王子、巨龙与Spring Cloud:用注解重塑微服务王国
  • Maven动态控制版本号秘籍:高效发包部署,版本管理不再头疼!
  • .vsdx文件转pdf、word、ppt等文件在线分享(免费版)
  • 【MATLAB代码】UKF(无迹卡尔曼滤波)的组合导航,状态量为平面8维,观测量为XY坐标。附完整代码,有中文注释
  • Unity 的游戏循环机制
  • Vue基础知识-重要的内置关系:vc实例.__proto__.__proto__ === Vue.prototype
  • ESP32嵌入固件读取
  • AI大模型对决:谁是最强智能?
  • MySQL 8.0.40 主从复制完整实验总结(基础搭建 + 进阶延时同步与误操作恢复)
  • [信号与系统个人笔记]第三章 连续时间信号与系统的频域分析 Part 2
  • flutter 中间组件自适应宽度
  • 从在线工具到代码库:图表设计工具挑选指南
  • uniapp 开发上架 iOS App全流程