用途:面向表格数据的生产级二分类,目标为二值(0/1、是/否、流失/留存、欺诈/正常),特征是数值、类别、日期等而非图像文本音频,且至少有数百条带标签样本。多分类、多标签、少于 100 行的小数据集、强时间结构的时间序列,或需要完整贝叶斯后验的场景不适用。
主要能力:默认使用 XGBoost,天然处理缺失值与混合特征,并附带 SHAP 解释。四个关键点:一是类别不平衡用 scale_pos_weight=n_neg/n_pos 处理,而非重采样或 SMOTE;二是阈值调优,不用 predict() 默认的 0.5,而是在验证集上按 F1 或成本加权(如 FN 100 美元、FP 5 美元)扫描选择;三是校准验证,使用 Brier 分数与可靠性曲线,必要时用 CalibratedClassifierCV(小验证集用 sigmoid,超过 1000 例用 isotonic);四是用 SHAP TreeExplainer 替代 XGBoost 内置 feature_importances_。
使用方式:项目包含 data/、src/train.py、src/predict.py、src/plots.py、notebooks/demo.py 与 mlruns/。用 ibis(ibis-framework[duckdb])读取 parquet 并做类平衡等聚合,在交给 sklearn 前调用一次 .execute() 物化为 pandas。预处理统一封装在 sklearn Pipeline 中,随模型一起保存加载:ColumnTransformer 对数值列 StandardScaler、类别列 OneHotEncoder(handle_unknown="ignore"),再接 XGBClassifier(objective="binary:logistic", eval_metric="logloss")。MLflow 记录 params(数据路径、行数、特征数、scale_pos_weight、调优阈值、seed、超参数)、metrics(ROC-AUC、PR-AUC、logloss、Brier、0.5 与调优阈值下的 F1、精确率与召回率)、tags(数据哈希、不平衡比)和 artifacts(模型、ROC/PR 图、校准图、阈值扫描、混淆矩阵、SHAP 摘要图)。
适用场景:需要可部署、可解释、概率可信的二分类模型,并关注排序能力与校准。
限制与注意:不要把阈值调到测试集上;不要跳过校准检查;不要盲信内置特征重要性;不要在表格数据上未经验证就使用 SMOTE;注意特征泄漏和分层划分 train_test_split(..., stratify=y)。官方文本未提供,以上均依据技能说明整理。