机器学习:归一化

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
大数据开发治理平台 DataWorks,不限时长
简介: 这段内容主要讨论了归一化的目的和两种类型的归一化方法。归一化是为了确保在梯度下降过程中,不同维度的参数以相似的幅度调整,避免因数据尺度差异导致的优化问题。文中提到了最大值最小值归一化和标准归一化,后者更不易受到离群值的影响,并且可以使数据符合正态分布。通过Python代码示例展示了如何使用`StandardScaler`进行标准归一化。

归一化的目的

首先,我们假设

按照常理来说,我们可以想象θ1x1与θ2x2对y的贡献应该是一样大的,即θ1x1=θ2x2,但如果下x1<<x2的情况出现,那么θ'1>>θ'2。

在梯度下降时,最初的θ1与θ2是通过正态分布随机出来的,所以两者的大小是相差不大的,但是最终的θ'1和θ'2却是相差巨大的。

我们设

那么会有|D1|>>|D2|。又因为x1<<x2,我们根据梯度公式

可以得到g1 << g2。参数的调整公式为

所以θ1的调整程度远小于θ2的调整程度。

综上所述,θ1的调整速率小于θ2,但θ1的改变量却远大于θ2,所以θ1只能增加它的轮次来满足条件,否则就会矛盾。而这种等待会耗费时间,这是我们不愿看见的,所以为了解决这个矛盾,归一化应运而生。

结论:归一化的目的是使得最终梯度下降的时候可以不同维度θ参数可以在接近的调整幅度上。

同时,归一化可以去量纲化,这可能会提高一些分类器的精度,例如KNN算法。


归一化分类

最大值最小值归一化

min(x(i,j))是对应X矩阵第j列特征值的最小值,max(x(j))是对应X 阵第j列特征值的最大值

缺点:易受离群值(噪声)的干扰。

标准归一化

基本概念

均值Xmean指的是第j列的均值,而不是所有数据的均值。同样地,标准差也是第j列的标准差。

其中μ为所有样本的均值,σ为所有样本数据的标准差,经过处理的数据符合正态分布。

其中,fi是样本权重,这里设置为1。

优势

我们观察这个公式,可以发现,原始数据被减去了平均值,这是为什么呢?

我们观察梯度下降公式:

如果Xj >= 0,那么不管如何调整,参数的调整方向都是一致的,而减去平均值可以让部分Xj小于0而让参数变化方向不一致而产生更好的结果。

不易受噪声干扰也是它的一大优势。

代码部分


from sklearn.preprocessing import StandardScaler
import numpy as np
data = np.array([1,2,3,7,7,5,5])
data = data.reshape((-1,1))
scaler = StandardScaler()
scaler.fit(data)
print(scaler.mean_)#均值
print(scaler.var_)#方差
data_new = scaler.transform(data)
print(data_new)#归一化后的矩阵
scaler.fit(data_new)
print(scaler.var_)#计算归一化后的方差 == 1
print(scaler.mean_)#计算归一化后的均值 == 0

image.gif

image.gif 编辑

目录
相关文章
|
1月前
|
机器学习/深度学习 资源调度
【机器学习】归一化目的分析
【1月更文挑战第27天】【机器学习】归一化目的分析
|
3天前
|
机器学习/深度学习 人工智能 算法
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
14 3
|
1月前
|
机器学习/深度学习 数据采集 算法
【Python机器学习专栏】数据标准化与归一化技术
【4月更文挑战第30天】在机器学习中,数据预处理的两大关键步骤是标准化和归一化,旨在调整数据范围以优化算法性能。标准化将数据缩放到特定区间,如[-1, 1]或[0, 1],适合基于距离的算法,如KNN、SVM。归一化则将数据线性变换到[0, 1],保持相对关系。Python中可使用`sklearn.preprocessing`的`MinMaxScaler`和`StandardScaler`实现这两种操作。选择哪种方法取决于数据分布和算法需求。预处理能提升模型理解和性能,增强预测准确性和可靠性。
|
1月前
|
机器学习/深度学习 算法 Python
【Python机器学习】Sklearn库中Kmeans类、超参数K值确定、特征归一化的讲解(图文解释)
【Python机器学习】Sklearn库中Kmeans类、超参数K值确定、特征归一化的讲解(图文解释)
150 0
|
机器学习/深度学习 算法 Python
学习笔记: 机器学习经典算法-数据集的归一化
机器学习经典算法-个人笔记和学习心得分享
99 0
|
机器学习/深度学习 人工智能 算法
详解机器学习中的数据处理(二)——特征归一化
详解机器学习中的数据处理(二)——特征归一化
202 0
详解机器学习中的数据处理(二)——特征归一化
|
数据采集 机器学习/深度学习 数据挖掘
机器学习数据预处理——归一化(Normalization)和标准化(standardlization)
昨天进行一场答辩,被评委老师问起来归一化的概念,一时间紧张没有想起来,后来复盘回忆,感觉还是自己的理解不够深刻,才导致关键时刻掉链子,没有想起。所以特此整理一下,以供加深印象。
850 0
|
机器学习/深度学习 Python
数学建模国赛:python机器学习基础之数据归一化、去除空值
数学建模国赛:python机器学习基础之数据归一化、去除空值
284 0
数学建模国赛:python机器学习基础之数据归一化、去除空值
|
机器学习/深度学习 算法 大数据
机器学习:数据特征预处理归一化和标准化
机器学习:数据特征预处理归一化和标准化
226 0
机器学习:数据特征预处理归一化和标准化