大规模数据集去重与异常值检测完整流程
在大模型训练过程中,数据质量直接影响模型性能。本文将分享一套可复现的数据去重与异常值检测流程。
一、数据去重流程
1. 基于哈希值去重
import hashlib
import pandas as pd
def generate_hash(row):
# 将行数据转换为字符串并生成哈希值
row_str = ''.join(str(val) for val in row)
return hashlib.md5(row_str.encode()).hexdigest()
# 对数据集计算哈希值
df['hash'] = df.apply(generate_hash, axis=1)
df_unique = df.drop_duplicates(subset=['hash'])
2. 基于相似度去重 使用文本相似度算法,如余弦相似度:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(df['text'])
similarity_matrix = cosine_similarity(tfidf_matrix)
二、异常值检测流程
1. 统计学方法
# 使用Z-score方法识别异常值
from scipy import stats
z_scores = np.abs(stats.zscore(df['numeric_column']))
outliers = df[z_scores > 3]
2. 基于模型的异常检测 使用Isolation Forest算法:
from sklearn.ensemble import IsolationForest
iso_forest = IsolationForest(contamination=0.1)
outlier_labels = iso_forest.fit_predict(df)
三、完整流程建议
- 先进行数据清洗和格式统一
- 使用哈希值快速去除完全重复数据
- 结合语义相似度进行模糊去重
- 多种异常检测方法交叉验证
- 建立数据质量评估指标
这套流程可在大规模数据集处理中有效提升数据质量。

讨论