核心内容摘要
B站“暴躁姐姐”BGM:炸裂情绪,谁不爱呢?
为什么标准化要把均值设为
方差设为1先说均值。
均值就是平均数所有观测值加起来除以个数。
μ是均值n是数据点总数xᵢ是每个数据点所以均值就是数据的重心位置。
比如均值是20那20就是平衡点。
这不是说所有点到20的距离相等而是说两边的重量刚好在20这个位置抵消掉。
而方差衡量的是数据有多分散定义是每个值与均值偏差的平方的平均值。
n是数据点总数xᵢ是每个数据点μ是均值。
那均值为0有什么用可以把数据想象成坐标系里的一团“点云”。
每个值减去均值x — μ之后整团云就被平移到了原点位置。
数据不再飘在某个角落而是以原点为中心分布。
这对很多机器学习算法都有好处尤其是用梯度下降的时候。
数据居中之后优化过程更平衡、收敛也更快。
因为特征要是一开始就偏离原点很远训练起来会麻烦不少。
那方差为1呢这是为了防止某个特征欺负其他特征。
举个例子年龄和薪资两个特征年龄范围
薪资范围10,
,000。
直接喂给模型的话模型会觉得薪资比年龄重要1000倍数字大嘛。
但这两个特征本来是独立的凭什么薪资就更重要所以标准化就是除以标准差让所有特征的方差都变成1。
这样年龄和薪资就在同一个量级上了变化幅度差不多。
年龄有个小波动不会因为薪资数字大就被模型无视掉。
可视化效果标准化之前特征1红色小尺度和特征2蓝色大尺度放一起红色那条几乎看不见。
标准化之后两个特征尺度一致都能清晰显示出来。
模型终于可以公平对待它们了。
什么时候需要标准化逻辑回归、神经网络、KNN这类用梯度下降的算法标准化影响最大。
总结一下均值为0让数据居中方差为1让特征尺度统一。
两者配合算法学得更快也不会偏心某个特征。
至于什么时候该用标准化、什么时候该用MinMaxScaler老实说我也还在摸索。
https://avoid.overfit.cn/post/957b1b35bc1047e185dab369ae8d84ed作者:vaishnavi