数据清洗常见问题排查

Kevin468 +0/-0 0 0 正常 2025-12-24T07:01:19 特征工程 · 数据清洗

数据清洗常见问题排查

在大模型训练过程中,数据清洗是决定模型效果的关键环节。以下是我在实际项目中遇到的几个典型问题及解决方案。

问题1:缺失值处理不当

在处理文本数据时,经常遇到空值或NaN值。常见的错误做法是直接删除含有缺失值的样本。

import pandas as pd
import numpy as np

df = pd.DataFrame({'text': ['hello', '', 'world', None], 'label': [1, 0, 1, 1]})
# 错误做法:直接删除
# df.dropna(inplace=True)

# 正确做法:根据业务场景处理
# 填充空字符串
df['text'].fillna('', inplace=True)
# 或者使用特定标记
# df['text'].fillna('[MISSING]', inplace=True)

问题2:异常值检测与处理

文本数据中可能存在异常长度的样本,这会影响模型训练。

# 检测异常长度文本
lengths = df['text'].str.len()
q1, q3 = lengths.quantile([0.25, 0.75])
irq = q3 - q1
lower_bound = q1 - 1.5 * irq
upper_bound = q3 + 1.5 * irq

# 标记异常值
outliers = lengths[(lengths < lower_bound) | (lengths > upper_bound)]
print(f"异常长度样本数量:{len(outliers)}")

问题3:编码格式不一致

不同来源的数据可能包含不同的编码格式,导致模型无法正确解析。

# 统一编码格式
try:
    df['text'] = df['text'].str.encode('utf-8').str.decode('utf-8')
except UnicodeDecodeError:
    # 处理乱码情况
    df['text'] = df['text'].str.encode('latin1').str.decode('utf-8', errors='ignore')

建议在数据清洗前建立标准化流程,确保数据质量。

推广
广告位招租

讨论

0/2000
梦境之翼
梦境之翼 · 2026-01-08T10:24:58
缺失值处理别盲目删,尤其文本数据,填个'[EMPTY]'比直接丢掉更稳妥,不然训练集样本量锐减,模型泛化能力直接拉胯。
Tara744
Tara744 · 2026-01-08T10:24:58
异常值检测别只看长度,还得结合业务逻辑判断,比如客服对话里突然出现几万字的重复内容,不处理会干扰模型学习重点。