机器学习:归一化

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 这段内容主要讨论了归一化的目的和两种类型的归一化方法。归一化是为了确保在梯度下降过程中,不同维度的参数以相似的幅度调整,避免因数据尺度差异导致的优化问题。文中提到了最大值最小值归一化和标准归一化,后者更不易受到离群值的影响,并且可以使数据符合正态分布。通过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 编辑

目录
相关文章
|
6月前
|
机器学习/深度学习 资源调度
【机器学习】归一化目的分析
【1月更文挑战第27天】【机器学习】归一化目的分析
|
1月前
|
机器学习/深度学习 算法 搜索推荐
机器学习入门(四):距离度量方法 归一化和标准化
机器学习入门(四):距离度量方法 归一化和标准化
|
5月前
|
机器学习/深度学习 算法 C++
机器学习归一化特征编码(二)
这篇文档讨论了机器学习中的特征编码,特别是独热编码(OneHotEncoder)在处理离散变量时的作用。它指出,对于多分类变量,独热编码是常用方法,但对二分类变量通常不需要。在Python的`sklearn`库中,`OneHotEncoder`可以用来实现这一过程,并可以通过设置`drop='if_binary'`来忽略二分类变量。文档还提到了逻辑回归,解释了正则化参数`C`和`penalty`,并列举了不同的优化算法,如`liblinear`、`lbfgs`等。
|
5月前
|
机器学习/深度学习 算法 数据处理
机器学习归一化特征编码(一)
特征缩放是机器学习预处理的关键步骤,它包括归一化和标准化。归一化通过最大最小值缩放,将数据转换到[0,1]区间,有助于梯度下降算法更快收敛,减少数值较大特征的影响。标准化则通过减去均值并除以标准差,确保数据具有零均值和单位方差,适用于关注数据分布情况的算法。例如,欧氏距离计算时,未归一化的特征可能导致模型偏向数值较大的特征。归一化能提升模型精度,尤其是当距离度量如欧式距离时。常见的实现方法有`MinMaxScaler`,它将每个特征值缩放到用户指定的范围,如[0,1]。而`StandardScaler`执行Z-Score标准化,数据分布符合标准正态分布。
|
5月前
|
机器学习/深度学习 人工智能 算法
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
62 3
|
6月前
|
机器学习/深度学习 数据采集 算法
【Python机器学习专栏】数据标准化与归一化技术
【4月更文挑战第30天】在机器学习中,数据预处理的两大关键步骤是标准化和归一化,旨在调整数据范围以优化算法性能。标准化将数据缩放到特定区间,如[-1, 1]或[0, 1],适合基于距离的算法,如KNN、SVM。归一化则将数据线性变换到[0, 1],保持相对关系。Python中可使用`sklearn.preprocessing`的`MinMaxScaler`和`StandardScaler`实现这两种操作。选择哪种方法取决于数据分布和算法需求。预处理能提升模型理解和性能,增强预测准确性和可靠性。
162 0
|
6月前
|
机器学习/深度学习 算法 Python
【Python机器学习】Sklearn库中Kmeans类、超参数K值确定、特征归一化的讲解(图文解释)
【Python机器学习】Sklearn库中Kmeans类、超参数K值确定、特征归一化的讲解(图文解释)
363 0
|
机器学习/深度学习 人工智能 算法
详解机器学习中的数据处理(二)——特征归一化
详解机器学习中的数据处理(二)——特征归一化
390 0
详解机器学习中的数据处理(二)——特征归一化
|
机器学习/深度学习 算法 Python
学习笔记: 机器学习经典算法-数据集的归一化
机器学习经典算法-个人笔记和学习心得分享
126 0
|
数据采集 机器学习/深度学习 数据挖掘
机器学习数据预处理——归一化(Normalization)和标准化(standardlization)
昨天进行一场答辩,被评委老师问起来归一化的概念,一时间紧张没有想起来,后来复盘回忆,感觉还是自己的理解不够深刻,才导致关键时刻掉链子,没有想起。所以特此整理一下,以供加深印象。
1648 0