- 归一化: 减少数据不同数量级对预测的影响, 主要是将数据不同属性的数据都降到一个数量级。
- 最大值最小值归一化:优点是可以把所有数值归一到 0~1 之间,缺点受离群值影响较大。
- 0-均值标准化: 经过处理的数据符合标准正态分布,即均值为0,标准差为1, 有正有负。
from sklearn.preprocessing import MinMaxScaler # 最大值最小值归一化
min_max_scaler = MinMaxScaler()
x_ = min_max_scaler.fit_transform(x)
from sklearn.preprocessing import StandardScaler # 0-均值标准化
standard_scaler = StandardScaler()
x_ = standard_scaler.fit_transform(x)
- 正则化: 防止数据过拟合, 增强模型的泛化能力, 常用方式为增加L1或 L2干扰项。
- Lasso 回归: 把多元线性回归损失函数加上 L1 正则,
# 套索回归: Lasso回归
from sklearn.linear_model import Lasso
lasso = Lasso(alpha= 0.5)
lasso.fit(X, y)
print('套索回归求解的斜率:',lasso.coef_)
print('套索回归求解的截距:',lasso.intercept_)
- Ridge 岭回归: 把多元线性回归损失函数加上 L2 正则的时候
from sklearn.linear_model import Ridge
ridge = Ridge(alpha= 1, solver='sag')
ridge.fit(X, y)
print('岭回归求解的斜率:',ridge.coef_)
print('岭回归求解的截距:',ridge.intercept_)
- Elastic-Net算法 在很多特征互相联系的情况下是非常有用的, 融合了L1正则化L2正则化。
from sklearn.linear_model import ElasticNet
model = ElasticNet(alpha= 1, l1_ratio = 0.7)
model.fit(X, y)
print('弹性网络回归求解的斜率:',model.coef_)
print('弹性网络回归求解的截距:',model.intercept_)
- 多项式回归的目的: 数据不够时防止欠拟合, 通常是使用现有参数相乘, 或者自身平方达到增加数据量的目的。
二、梯度下降优化
1、归一化 (Normalization)
归一化的目的: 减少数据不同数量级对数据预测的影响, 主要是将数据不同属性的数据都降到一个数量级。
由于不同方向的陡峭度是不一样的,即不同维度的数值大小是不同。也就是说梯度下降的快慢是不同的,归一化的一个目的是,使得梯度下降在不同维度 参数(不同数量级)上,可以步调一致协同的进行梯度下降。归一化的本质就要把各个特征维度
的数量级统一,来做到无量纲化。
1.1、最大值最小值归一化
也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 - 1]之间。转换函数如下:
.
通过公式可以发现,该方式受离群值的影响比较大.
使用scikit-learn函数演示:
import numpy as np
from sklearn.preprocessing import MinMaxScaler
x_1 = np.random.randint(1,10,size = 10)
x_2 = np.random.randint(100,300,size = 10)
x = np.c_[x_1,x_2] # 将数组放到一起
print('归一化之前的数据:')
min_max_scaler = MinMaxScaler()
x_ = min_max_scaler.fit_transform(x)
print('归一化之后的数据:')
display(x_)
1.2、0-均值标准化
这种方法给予原始数据的均值

本文介绍了数据预处理的两种方法——最大值最小值归一化和0-均值标准化,以及它们在梯度下降中的作用。接着讨论了正则化,包括L1正则化的Lasso回归、L2正则化的岭回归和Elastic-Net算法,它们用于防止过拟合,提高模型泛化能力。最后提到了多项式回归在处理非线性关系时的重要性。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



