关键在理清从原始数据到可用模型的完整链路:数据探查→特征工程→闭环验证→可解释性与上线准备。真实项目80%时间用于清洗、理解特征及评估验证,而非调用model.fit()。
用Python做机器学习,关键不在调包,而在理清从原始数据到可用模型的完整链路。真实项目里,80%的时间花在数据清洗、特征理解和评估验证上,不是写model.fit()。
拿到数据第一件事不是划分训练集,而是用pandas快速看形状、缺失值、数据类型和分布。执行df.info()和df.describe()能立刻发现异常列(比如本该是数值却读成object)、大量空值或明显离群点。对分类目标变量,用value_counts()检查是否严重不均衡——若正样本只占0.3%,直接套逻辑回归效果必然差,得先考虑过采样或调整评估指标。
别只跑一个RandomForest就交差。用sklearn的Pipeline把预处理和模型串起来,再配合StratifiedKFold做分层交叉验证——尤其当标签不均衡时,普通KFold可能某折里根本没正样本。评估不能只看准确率:二分类重点看AUC和精确率-召回率平衡点;多分类看加权F1;回归问题盯住MAE和R²在各折中的稳定性。验证完立刻画学习曲线,判断是欠拟合(训练/验证得分都低)还是过拟合(训练高、验证低)。
用SHAP或Permutation Importance分析特征贡献,确认模型决策逻辑符合业务常识(例如“信用分越高,违约概率越低”)。保存模型
推荐用joblib而非pickle(更轻量、兼容性好),同时把fit时用的列名、缺失值填充策略、标准化参数一并存为字典。上线前用新采集的几条数据走一遍完整pipeline,验证输入输出格式和耗时是否达标。