🔍
TT's Learning
← 返回首页
🔍

异常值检测

学习异常值检测的常用方法,包括IQR方法、Z-score方法和专业异常检测算法。

进阶 30分钟 📁 anomaly_data.csv
学习进度
0%
0/4
已学习
0/5
练习
0
得分
第一章 异常值基础

1.1 什么是异常值

异常值是数据集中与其他数据点显著不同的数据点,可能是由于测量错误、数据录入错误或真实的极端情况。

  • 离群值:与大部分数据偏离较大的值
  • 噪声:随机误差或干扰
  • 异常点:不符合正常模式的数据点

💡 异常值检测在金融风控、网络安全、工业检测等领域有广泛应用。

第二章 IQR方法

2.1 IQR原理

IQR(四分位距)方法是一种基于统计学的异常值检测方法:

  • Q1:第一四分位数(25%分位数)
  • Q3:第三四分位数(75%分位数)
  • IQR:Q3 - Q1
  • 下限:Q1 - 1.5 * IQR
  • 上限:Q3 + 1.5 * IQR

2.2 IQR实现

import pandas as pd
import numpy as np

# 创建数据(包含异常值)
data = {'value': [10, 20, 25, 30, 35, 40, 45, 50, 55, 200]}
df = pd.DataFrame(data)

# 计算IQR
Q1 = df['value'].quantile(0.25)
Q3 = df['value'].quantile(0.75)
IQR = Q3 - Q1

# 计算上下限
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

# 检测异常值
outliers = df[(df['value'] < lower_bound) | (df['value'] > upper_bound)]

print(f"Q1: {Q1}, Q3: {Q3}, IQR: {IQR}")
print(f"下限: {lower_bound}, 上限: {upper_bound}")
print(f"异常值: {outliers['value'].values}")
第三章 Z-score方法

3.1 Z-score原理

Z-score表示数据点距离均值的标准差倍数:

import pandas as pd
from scipy.stats import zscore

# 创建数据
data = {'value': [1, 2, 3, 4, 5, 6, 7, 8, 9, 100]}
df = pd.DataFrame(data)

# 计算Z-score
df['z_score'] = zscore(df['value'])

# 检测异常值(通常Z-score绝对值大于3视为异常)
outliers = df[abs(df['z_score']) > 3]

print("数据与Z-score:")
print(df)
print(f"\n异常值: {outliers['value'].values}")
第四章 异常值检测实战

4.1 综合检测示例

💻 在线代码编辑器
练习题(共5题)

练习 1:IQR异常值检测

使用IQR方法检测异常值。

练习 2:Z-score异常值检测

使用Z-score方法检测异常值。

练习 3:异常值处理 - 删除

删除检测到的异常值。

练习 4:异常值处理 - 替换

用均值或中位数替换异常值。

练习 5:多特征异常值检测

对多个特征进行异常值检测。

测试题(共 5 题,满分 100 分)

1. IQR方法中,异常值的判断标准是什么?

2. Z-score表示什么?

3. 通常Z-score绝对值大于多少视为异常值?

4. IQR代表什么?

5. 处理异常值的常用方法不包括?

🎉

测试完成!

0分

太棒了!继续努力!

返回首页 →
作业提交

📝 异常值检测作业

请完成以下任务:

  • 创建包含异常值的数据集
  • 使用IQR方法检测异常值
  • 使用Z-score方法检测异常值
  • 处理检测到的异常值
💻 作业代码提交