本节摘要:缩放服务于「依赖距离与梯度」的模型,编码服务于「非数值特征的数字化」,两者各有明确的选择树。本节覆盖标准化与归一化的适用边界、树模型免缩放的原因、独热与目标编码的权衡,以及标签编码「假装有序」的经典陷阱。
清洗之后的数据仍不适合直接入模:量纲打架、类别变量不是数字。变换这一步的全部追问都围绕「哪种模型需要哪种变换」展开——答成「所有模型都要标准化」或「类别变量都独热」这类一刀切,面试官立刻知道你没在生产管线里混过。
主问题:「标准化和归一化有什么区别?都用不行吗?」
标准化(z-score)把特征变成零均值单位方差,不限定取值范围,对异常值相对不敏感;归一化(min-max)把数值压到固定区间(通常零到一),保留了原始分布形状但被极值支配——一个异常点能把其余值的取值区间压成针尖。选择看两件事:模型是否对特征尺度敏感(距离类与梯度类方法敏感,树类不敏感),以及是否有界需求(图像输入、神经网络输出层常用 min-max)。倾斜分布再叠加对数或 Box-Cox 变换,把重尾拉平。
「都用不行吗」的答案是「多数情况能但没必要」:两者都是单调线性变换,不改变树模型的分裂结构,多做的收益为零;对线性模型与神经网络,标准化通常是更稳的默认,因为异常值只影响单特征分布,不会连锁压扁所有特征。
追问:「树模型真的完全不用缩放吗?为什么?」
参考答法:决策树只关心「特征 x 与阈值 t 谁大谁小」,单调变换不改变任何比较结果,分裂点随之等比移动,树形与效果完全不变。同理,KNN 与 SVM 的核函数算的是距离或内积,尺度直接改变几何,必须缩放;线性模型的正则化按系数幅值惩罚,量纲不齐时等于偏袒大尺度特征(回看 2.1 节的「先标准化再正则」);神经网络里尺度失衡让损失面呈狭长峡谷,梯度下降步长难以兼容所有方向。这段回答把「要不要缩放」归因到「模型的数学操作对尺度的敏感性」,比背表高一个层级。
追问:「类别特征用独热还是标签编码?高基数列怎么办?」
这是变换章追问频率最高的一题,推荐按基数分层作答:

及格:分清标准化与归一化,独热与标签编码的使用条件;良好:能解释树模型免缩放的数学原因,高基数给出目标编码加平滑加交叉的完整方案;优秀:主动点名「假序」「泄漏」「推理一致性」三宗罪,并把变换选择归因到模型数学操作的敏感性。变换题的追问往往连环到第三层(每种编码各配一个翻车现场),请按「选择加风险」成对作答。
下一节进入选择环节:几百个特征里挑几百个,过滤、包裹、嵌入三条路线各有一套哲学。
问:独热编码后接线性模型,为什么要去一列?
全保留会让各列之和恒等于一,与截距项完全共线,系数不可唯一确定(虚拟变量陷阱)。树模型没有截距项的烦恼,不必去列。这个细节能区分「用过」与「背过」。
问:目标编码的平滑参数怎么理解?
平滑把类别均值向全局均值收缩,收缩强度由该类别样本数决定——样本越少越信全局。它本质是分层贝叶斯的经验收缩,公式形式与拉普拉斯平滑同源。「目标编码是带先验的均值估计」这个说法能让回答上一个档次。
问:什么场景用哈希编码?
在线学习与流式场景(词表无法预先确定或无限增长)、特征维度预算受控且允许冲突损失的场合。冲突即信息损失,哈希桶数是表达力与维度的交易旋钮。
表达纪律:编码题按基数分层作答,每层给「方法加风险」的成对输出,结构感直接决定档位。
问:训练后新类别出现了怎么办?
预定义策略:映射到「未知」桶、用全局均值兜底、或触发管线重训。「未知桶」的设计要提前做,线上第一次遇到没见过的类别值时的行为必须是测试过的确定行为,而不是报错或静默错误。
问:分箱的边界怎么定才讲道理?
等频箱保证每箱样本均衡但边界无业务含义;等宽箱边界整齐但可能极不均衡;决策树分箱(单变量树)让数据自己找边界,业务审查后再定稿。分箱边界的版本管理同缩放常量一样,属于「随模型发布的常量」。
问:目标编码和嵌入表示什么关系?
都是把高基数类别映射到低维表示:目标编码是一维的监督统计量,嵌入是多维的、由任务梯度学出来的稠密向量。维度越高表达越自由,也越依赖下游数据量——这是「表示容量与数据量」的老交易在新场景的重演。
问:变换的选择要不要考虑下游可解释性?
要。对数变换后系数含义变成弹性(百分比对百分比),目标编码后的特征含义依赖编码版本——业务方问「这个特征怎么影响结果」时,变换层的每个决定都会被翻译成本。可解释性敏感的管线倾向保留原始语义加文档化变换,而不是堆层层变换。
问:训练与推理的变换常量有哪些必须随模型走?
缩放器的均值方差、min-max 的极值、分箱边界、编码器的类别表与平滑参数、缺失填充值。一句话原则:任何 fit 出来的常量都是模型资产,发布时与权重同版本管理——这句是本节的收束句,也是工程岗的高频考点。
再补一问:推理期遇到训练期没有的取值组合(交叉特征)怎么办?
交叉特征的类别表要预定义「其他」桶兜底,新组合的编码值走兜底逻辑并打点计数;兜底命中率持续偏高就是触发重训的信号。一句原则收束:线上任何「没见过」都必须有确定性行为——报错、兜底或降级,唯独不能是静默错误。