机器学习学习笔记(四)——特征缩放与多项式回归

本文深入探讨了多元线性回归的数学原理,包括特征表示、假设函数、代价函数及梯度下降法。介绍了如何通过特征缩放加快收敛,以及使用正规方程求解参数的方法。并讨论了多项式回归和调试学习率的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多个特征

表达方法

符号含义
n特征的数量
X j ( i ) X^{(i)}_j Xj(i)第i个样本的第j个特征

假设函数

对于多个特征的假设函数,有
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 1 + θ 3 x 3 + θ 4 x 4 h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_1+\theta_3x_3+\theta_4x_4 hθ(x)=θ0+θ1x1+θ2x1+θ3x3+θ4x4
我们定义 x 0 = 1 x_0=1 x0=1,则有
X = { x 0 x 1 x 2 x 3 x 4 } X=\left\{\begin{matrix}x_0\\x_1\\x_2\\x_3\\x_4\end{matrix}\right\} X=x0x1x2x3x4

Θ = { θ 0 θ 1 θ 2 θ 3 θ 4 } \Theta=\left\{\begin{matrix}\theta_0\\\theta_1\\\theta_2\\\theta_3\\\theta_4\end{matrix}\right\} Θ=θ0θ1θ2θ3θ4


h Θ ( X ) = Θ T X h_\Theta(X)=\Theta^TX hΘ(X)=ΘTX

代价函数

J ( Θ ) = 1 2 m ∑ i = 1 m ( h Θ ( x ( i ) ) − y ( i ) ) 2 J(\Theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_\Theta(x^{(i)})-y^{(i)})^2 J(Θ)=2m1i=1m(hΘ(x(i))y(i))2

梯度下降

θ j : = θ j − α ∂ ∂ θ j J ( Θ ) \theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\Theta) θj:=θjαθjJ(Θ)

不要忘了要同时更新

特征缩放

为了梯度下降的收敛更加迅速,应该将所有的特征的范围缩放到一个区间,比如 [ − 1 , 1 ] [-1,1] [1,1]

如果他们一个是 [ − 0.00001 , 0.000001 ] [-0.00001,0.000001] [0.00001,0.000001],或者 [ − 100000 , 1000000 ] [-100000,1000000] [100000,1000000],另一个是 [ − 1 , 1 ] [-1,1] [1,1],那么收敛速度会很慢。

另外一种技巧是用用 x i − μ i x_i-\mu_i xiμi代替 x i x_i xi使特征的平均值为0。

所有有特征缩放:
x i : = x i − μ i S i x_i:=\frac{x_i-\mu_i}{S_i} xi:=Sixiμi
其中 μ i \mu_i μi是特征的平均值, S i S_i Si是特征的范围。

Debug:调整学习率

通常梯度下降不收敛和学习率有关,学习率过小算法收敛慢,学习率过大算法不收敛。

通常的Debug方法是随着迭代的次数增加画出代价函数随迭代次数变化的曲线,如果下降则算法正常,如果平缓则算法已经收敛,如果波动或者上升则说明学习率过大。

多项式回归

优势线性回归方程不是一次的,而是二次的,这时我们可以用房间面积的平方作为特征量即 x 2 = ( s i z e ) 2 x_2=(size)^2 x2=(size)2进行计算。

正规方程

如果数据集中有m组样本,每个样本有n个特征

则我们记
X = { ( X ( 1 ) ) T ( X ( 2 ) ) T ( X ( 3 ) ) T ⋮ ( X ( m ) ) T } X=\left\{\begin{matrix}(X^{(1)})^T\\(X^{(2)})^T\\(X^{(3)})^T\\\vdots\\(X^{(m)})^T\end{matrix}\right\} X=(X(1))T(X(2))T(X(3))T(X(m))T

Θ = { θ 0 θ 1 θ 2 θ 3 ⋮ θ n } \Theta=\left\{\begin{matrix}\theta_0\\\theta_1\\\theta_2\\\theta_3\\\vdots\\\theta_n\end{matrix}\right\} Θ=θ0θ1θ2θ3θn

Y = { y 1 y 2 y 3 ⋮ y m } Y=\left\{\begin{matrix}y_1\\y_2\\y_3\\\vdots\\y_m\end{matrix}\right\} Y=y1y2y3ym

有关系
Θ = ( X T X ) − 1 X T Y \Theta=(X^{T}X)^{-1}X^{T}Y Θ=(XTX)1XTY

octave 表达式

pinv(x'x)*x'*y

X T X X^TX XTX没有逆的情况

造成这种原因有两种

  1. 有相关的特征存在
  2. 特征数大于样本数

解决方法(octave)

pinv()//求伪逆
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值