数据清洗流程的持续集成实践

CleanHeart +0/-0 0 0 正常 2025-12-24T07:01:19 持续集成 · 数据清洗

数据清洗流程的持续集成实践

在大模型训练过程中,数据质量直接影响模型性能。本文分享一个可复现的数据清洗流程持续集成实践方案。

清洗流程设计

import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler

# 1. 数据加载与基础检查
raw_data = pd.read_csv('raw_dataset.csv')
print(f'原始数据形状: {raw_data.shape}')
print(raw_data.info())

# 2. 异常值检测
numeric_columns = raw_data.select_dtypes(include=[np.number]).columns
for col in numeric_columns:
    Q1 = raw_data[col].quantile(0.25)
    Q3 = raw_data[col].quantile(0.75)
    IQR = Q3 - Q1
    lower_bound = Q1 - 1.5 * IQR
    upper_bound = Q3 + 1.5 * IQR
    outliers = raw_data[(raw_data[col] < lower_bound) | (raw_data[col] > upper_bound)]
    print(f'{col} 异常值数量: {len(outliers)}')

# 3. 缺失值处理
missing_data = raw_data.isnull().sum()
print(missing_data[missing_data > 0])

# 4. 数据标准化
scaler = StandardScaler()
raw_data[numeric_columns] = scaler.fit_transform(raw_data[numeric_columns])

持续集成实现

# .github/workflows/data_pipeline.yml
name: Data Cleaning Pipeline
on: [push, pull_request]
jobs:
  clean-data:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Set up Python
      uses: actions/setup-python@v4
      with:
        python-version: '3.9'
    - name: Install dependencies
      run: |
        pip install pandas numpy scikit-learn
    - name: Run cleaning script
      run: python data_cleaning.py
    - name: Upload cleaned data
      uses: actions/upload-artifact@v3
      with:
        name: cleaned-dataset
        path: cleaned_dataset.csv

通过这种方式,可确保每次代码提交后自动执行数据清洗,保障训练数据质量。

推广
广告位招租

讨论

0/2000
灵魂画家
灵魂画家 · 2026-01-08T10:24:58
数据清洗不能只做一次,要像写代码一样持续集成。我之前把清洗脚本写死在notebook里,结果每次新数据进来都要手动跑一遍,效率低还容易出错。后来用GitHub Actions自动化,配置好触发器后,每次提交都自动跑一遍清洗流程,发现问题立马告警。
时光隧道喵
时光隧道喵 · 2026-01-08T10:24:58
别小看异常值检测,它直接决定了模型能不能学得进去。我见过太多人只看缺失值,忽略离群点。建议把检测逻辑封装成函数,加到CI里,这样能提前发现数据分布的异常信号,避免训练时才暴露问题。
LongWeb
LongWeb · 2026-01-08T10:24:58
标准化这一步千万别省,尤其做深度学习的时候。我一开始没做,结果模型训练不稳定,loss震荡得厉害。后来统一加了StandardScaler,并且把scaler保存下来用于推理阶段,保证训练和预测的一致性。
DryHannah
DryHannah · 2026-01-08T10:24:58
建议给清洗流程加个输出报告功能,比如生成清洗前后的数据对比、异常值分布图等。这样不仅便于回溯,也能让非技术人员看懂你做了什么。我在项目里用pytest+coverage组合做验证,确保每一步都跑通且可复现