【Python机器学习】零基础掌握混合特征与目标值变换的建模流水线
一张业务表同时有年龄、收入、地区、套餐和缺失值,目标金额又明显右偏。如果先把整张表填补、编码、标准化,再划分训练集和验证集,验证分数就可能读到了本不该知道的信息。部署时若来了一个训练阶段没见过的地区,手写预处理流程还可能直接报错。本文用一组可复现的模拟表格,演示ColumnTransformer、Pipeline与TransformedTargetRegressor如何组成完整的训练和预测单元。目标是确保交叉验证、留出测试与新样本推理使用同一套规则,并在原始目标单位下解读误差;模拟数值不代表真实金额预测效果。文章目录混合特征建模首先要检查什么如何组合列预处理与模型训练目标值何时需要单独变换用完整流水线验证并预测新样本出现数据泄漏或新类别时如何排查总结混合特征建模首先要检查什么拿到表格后,先确定各列的语义、缺失机制和新类别可能性。数值列与类别列需要不同的处理;目标值的变换则是另一条链,不能把目标的对数变换塞进特征编码器。字段本文处理需要核对的实际问题年龄、收入中位数填补,再标准化缺失是否有业务原因?极端值是否属于正常记录?地区、套餐众数填补,再独热编码上线后是否会出现新类别?类别拼写是否统一?右偏目标金额比较直接回归与log1p目标变换是否确实为非负,误差应在什么单位评价?这组模拟数据的目标值始终为正,因此可以使用log1p与expm1。若真实目标存在低于-1的值,这对函数就不适用,必须先重新定义变换,而不是忽略输入约束。如何组合列预处理与模型训练ColumnTransformer根据列名把数值和类别处理分开;Pipeline把填补、缩放、编码与回归