【第一章:人工智能基础】02.数据处理及可视化-(1)数据清洗与预处理

第一章 人工智能基础

第二部分:数据处理及可视化

第一节:数据清洗与预处理


一、数据清洗与预处理简介

在人工智能项目中,数据质量直接决定模型效果。原始数据通常存在缺失、重复、异常等问题,必须在建模前进行清洗与预处理。


二、处理缺失值(Missing Values)

【漫话机器学习系列】257.填补缺失值(Imputing Missing Values)_机器学习利用python实现缺失值填补-优快云博客

1. 检测缺失值

使用 Pandas:

import pandas as pd

df = pd.read_csv("data.csv")
print(df.isnull().sum())  # 每列缺失值数量
2. 缺失值处理方法
方法示例适用场景
删除缺失值df.dropna()缺失值较少
填充固定值df.fillna(0)用 0 或均值、众数等替代
前/后向填充df.fillna(method='ffill')时间序列数据常用
df['age'].fillna(df['age'].mean(), inplace=True)  # 用均值填充年龄

三、处理重复数据
1. 检测重复行
print(df.duplicated())
2. 删除重复行
df.drop_duplicates(inplace=True)

可指定列删除:

df.drop_duplicates(subset=['name', 'age'], inplace=True)

四、处理异常值(Outliers)

异常值是指明显偏离其他数据点的值,它们可能是数据录入错误、系统问题,也可能是极端但真实的观测结果。异常值会影响模型训练过程,尤其对线性回归、聚类等模型影响较大。

【漫话机器学习系列】198.异常值(Outlier)_outlier值-优快云博客

方法一:基于统计方法识别(Z-Score)
1. 原理简介

Z-Score(标准分数)衡量一个值距离该列平均值的标准差数。计算公式为:

z = \frac{x - \mu}{\sigma}

  • x:单个观测值

  • μ:该列均值

  • σ:该列标准差

  • z:z 分数(正负都可能)

一般规则:若 |z| > 3,则认为该值为异常值(正态分布下 99.7% 的数据都在 ±3σ 范围内)

2. 示例代码
from scipy import stats
import numpy as np
import pandas as pd

df = pd.read_csv("data.csv")
z_scores = np.abs(stats.zscore(df['income']))  # income 列
df_clean = df[z_scores < 3]  # 过滤异常值
3. 优缺点
优点缺点
简单、直观、适合正态分布数据对非正态分布数据不适用,对均值和方差敏感

方法二:基于分位数(IQR:Interquartile Range)方法

【漫话机器学习系列】264.内距(又称四分位差)Interquartile Range_iqr 四分位范围-优快云博客

1. 原理简介

IQR 是描述数据离散程度的统计量,计算如下:

  • Q1:第 25 百分位数(下四分位)

  • Q3:第 75 百分位数(上四分位)

  • QR = Q3 - Q1

常用异常值判定范围为:

[Q1 - 1.5 \times IQR,\ Q3 + 1.5 \times IQR]

超出此范围的值视为异常值。

2. 示例代码
Q1 = df['age'].quantile(0.25)
Q3 = df['age'].quantile(0.75)
IQR = Q3 - Q1

# 筛选在正常范围内的数据
df_clean = df[(df['age'] >= Q1 - 1.5 * IQR) & (df['age'] <= Q3 + 1.5 * IQR)]
3. 优缺点
优点缺点
不依赖分布类型,对极端值不敏感,适用面广对高度偏态分布数据仍可能误判

方法选择建议
数据特点建议方法
接近正态分布Z-Score
不确定分布/存在偏态IQR 方法
数据量大、对鲁棒性要求高更推荐 IQR

五、标准化字段格式
  • 字符串统一大小写:

df['name'] = df['name'].str.lower()
  • 去除空格、特殊符号:

df['city'] = df['city'].str.strip()
  • 日期转换:

df['date'] = pd.to_datetime(df['date'])

六、小结

数据清洗与预处理是 AI 项目的第一步,目标是让数据尽可能完整、统一、无噪声。掌握缺失值填充、重复行处理和异常值剔除等技术,将显著提升后续建模质量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值