Help us improve
Share bugs, ideas, or general feedback.
From light
Cleans data, handles missing/outlier values, feature engineering, data augmentation, dataset splitting and quality assessment. Also guides building datasets from scratch (collection, annotation, format, docs, privacy, release).
npx claudepluginhub light0305/light-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/light:light-data-engineeringThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**数据先行**:在 m03 提 idea 之前,先回答四问——数据是否足以支撑研究?质量是否可靠?规模是否足够?特征是否有挖掘价值?避免脱离数据基础的空想。
Profiles datasets for data quality issues: missing values, outliers, class imbalance, correlation problems, and schema drift. Provides detection methods and actionable recommendations.
Provides patterns for pre-model data preprocessing pipelines covering cleaning, validation, transformation, ETL orchestration. Use for raw data deduplication, schema validation, format conversion before EDA or modeling.
Phase 2 of the /ds workflow — profiles data and creates a task breakdown from a spec. Requires SPEC.md from ds-brainstorm.
Share bugs, ideas, or general feedback.
数据先行:在 m03 提 idea 之前,先回答四问——数据是否足以支撑研究?质量是否可靠?规模是否足够?特征是否有挖掘价值?避免脱离数据基础的空想。
dtype/parse_dates,df.info(memory_usage='deep') 看真实内存,df.isna().mean() 一行得缺失率,df.describe(include='all')。object 列转 category 省内存。pl.scan_csv(...).filter(...).group_by(...).collect(),超大开 collect(streaming=True);想保持 pandas 写法又超内存用 Dask dd.read_csv("*.csv")...compute();单机亿级表做聚合/扫描用 Vaex(先转 HDF5/Arrow,vaex.open 内存映射 + 虚拟列零内存)。ProfileReport(df, title=...).to_file("r.html");列多/行多务必 minimal=True,时序 tsmode=True;对比清洗前后/train-test 用 r1.compare(r2)。看报告 Alerts(高相关、高基数、常量、缺失)。Dataset(df, label=, cat_features=[...]) 后 data_integrity().run(ds)(重复/混合类型/特征-标签泄漏/异常值)、train_test_validation().run(train_ds, test_ds)(漂移/新类别/train-test 样本重叠泄漏)。gx.get_context() → Data Source/Asset/Batch → Expectation Suite(ExpectColumnValuesToNotBeNull/ToBeBetween/ToBeInSet/ToBeUnique/ToMatchRegex)→ Validation Definition → Checkpoint,产出 Data Docs。注意 GX 1.x 与 0.x API 断层,认版本。frictionless describe 推断 Table Schema,frictionless validate datapackage.json 出 cell/row 级错误报告。train_test_split(..., stratify=y, random_state=) 分类必分层;交叉验证按数据性质选——时序用 TimeSeriesSplit(防未来穿越)、重复个体用 GroupKFold/StratifiedGroupKFold(防分组泄漏)、一般分类用 StratifiedKFold。防泄漏铁律:缩放/插补/编码/特征选择全部放进 Pipeline+ColumnTransformer,只在训练折 fit,绝不在划分前对全量 fit_transform。记录随机种子。采集方式、标注规范(标注指南+一致性 κ 检验)、数据格式、数据说明文档(datasheet)、隐私合规(脱敏/授权/许可)、发布方式(Zenodo/HF/Figshare + DOI + license)。产出 dataset_card(见 db04 字段)。
fetch_openml(name=, version=, as_frame=True) 或 fetch_openml(data_id=);完整能力 openml.datasets.get_dataset(id).get_data(target=)、list_datasets(...)、标准化 tasks/runs 可复现。锁 version/data_id 保证复现。load_dataset(name, split=),本地 load_dataset("csv"/"parquet", data_files=),超大 streaming=True(IterableDataset)。处理用 .map(batched=True)/.filter/.train_test_split。kaggle.json 放 ~/.kaggle/(权限 600),kaggle datasets list -s 关键词、kaggle datasets download -d owner/name --unzip。需先接受数据集条款,注意各数据集 license。完整性、一致性、准确性、时效性、唯一性、代表性、偏差(bias_risk)、隐私(privacy_risk)、标注质量。漂移监控用 Evidently 新版 API:Dataset.from_pandas(df, data_definition=DataDefinition(...)) 包装 current/reference,Report(metrics=[DataDriftPreset()]).run(current_data=, reference_data=),.save_html()。漂移按列选检验(KS/PSI/卡方/Wasserstein);注意 Evidently 近年 API 大改,认版本,且“检出漂移≠有害”需结合业务判断。
quality_report.md(命名见 CONVENTIONS §6.1)。data_card.md(交 m05/a03/m06)。结论喂给 m03/m04;流水线交 a03 实现;数据集登记 db04 与项目库 db09。隐私/许可问题上报 a10。
所有脚本带 --selftest(无需数据,内置合成数据 + 断言验证检测器真的触发)。
scripts/data_doctor.py:CSV → Markdown 数据体检报告(形状/类型/真实内存/缺失/重复/常量列/全空列/高基数/IQR 异常值/强相关/目标泄漏提示,按 HIGH/MED/LOW 给问题摘要)。
python scripts/data_doctor.py --selftestpython scripts/data_doctor.py --csv data.csv --target y --out report.md(--sample N 先抽样防大表卡死)。scripts/safe_split.py:按 --task clf/reg/timeseries/group 构建 Pipeline+ColumnTransformer(数值 median 插补+标准化、类别 most_frequent 插补+OneHot)并自动选 CV——StratifiedKFold/KFold/TimeSeriesSplit/GroupKFold/StratifiedGroupKFold。内置泄漏断言:证明预处理在每折单独 refit(折内 mean ≠ 全量 mean),杜绝划分前 fit_transform。
python scripts/safe_split.py --selftest(四种任务全跑)。python scripts/safe_split.py --csv data.csv --target y --task group --group-col user_id。scripts/quality_gate.py:拿 YAML 规则校验 CSV,出 PASS/FAIL 报告(dataset: min/max_rows、no_duplicate_rows;columns: dtype/required/non_null/unique/min/max/enum/regex)。纯 pandas+PyYAML,无 GX/Frictionless 硬依赖,退出码 0/1 可直接做 CI 数据门禁。
python scripts/quality_gate.py --selftest;规则示例见 examples/rules.example.yaml。python scripts/quality_gate.py --csv data.csv --rules rules.yaml --out gate.md。assets/data_card_template.md:datasheet 模板(字段对齐 db04),含质量评估、偏差/隐私风险、访问分级、推荐划分、溯源核实区。scripts/check_access_level.py:数据访问分级守门。每份数据/派生集在数据卡声明 access_level(raw/redacted/verified_only),脚本校验它能否流向某下游 sink——raw 数据流向 paper/figure/public-repo 等公开环节会被阻断(退出码非零,可当 pipeline 闸门)。三态 pass/blocked/unknown,只按声明判定,真实脱敏是否到位仍需 a10 复核。
python scripts/check_access_level.py --selftestpython scripts/check_access_level.py --level raw --sink paper,或 --manifest flows.json 批量校验流向清单。code_assets/stats_tests.py(相对本技能为 ../../code_assets/,含 welch_t、benjamini_hochberg、wilson_ci 等),标注一致性复用 agreement.py,长尾重采样复用 longtail_resample.py,不要重造。工具的真实端点/API/参数与已知坑详见 references.md(逐工具核查笔记)。