大规模数据集去重与异常值检测完整流程

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

大规模数据集去重与异常值检测完整流程

在大模型训练过程中,数据质量直接影响模型性能。本文将分享一套可复现的数据去重与异常值检测流程。

一、数据去重流程

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)

三、完整流程建议

  1. 先进行数据清洗和格式统一
  2. 使用哈希值快速去除完全重复数据
  3. 结合语义相似度进行模糊去重
  4. 多种异常检测方法交叉验证
  5. 建立数据质量评估指标

这套流程可在大规模数据集处理中有效提升数据质量。

推广
广告位招租

讨论

0/2000
Frank306
Frank306 · 2026-01-08T10:24:58
哈希去重简单高效,但对数据格式要求高,建议先统一字段类型和空值处理,避免误删。
闪耀之星喵
闪耀之星喵 · 2026-01-08T10:24:58
相似度去重别只看文本,结合元数据如时间、来源等维度,能减少语义相近但内容不同的误判。
Quinn942
Quinn942 · 2026-01-08T10:24:58
Z-score异常检测适合正态分布数据,实际场景中建议搭配Isolation Forest做交叉验证,提升鲁棒性。
WiseRock
WiseRock · 2026-01-08T10:24:58
流程最后别忘了建立数据质量报告,记录去重前后的样本变化,方便后续模型迭代优化。