从零开始机器学习(三)

常用技巧

特征缩放

在梯度下降算法运用中,如果能保证不同特征的取值在相同或者相近的范围内,比如都处于0-1之间,那么梯度下降算法将会能很很快的收敛。

例如,一个含有两个特征的训练样本集,其中
X 1 = s i z e ( 0 − 2000 f e e t s ) X_1= size(0-2000feets) X1=size(02000feets)
X 2 = n u m b e r   o f   b e d r o o m s ( 1 − 5 ) X_2=number\ of\ bedrooms(1-5) X2=number of bedrooms(15)

cost function 可能会变得这样:

X方向变得紧凑,Y方向变得狭长,是因为X更大,所以X带来的影响更大,等比例减少或者增大X带来的影响更大。这样在梯度下降中就会有有震荡,所以最好进行特征缩放。

1. rescaling

将数据的特征按比例缩放到[0, 1]的区间,公式如下

x i ( j ) = x i ( j ) − m i n ( x i ) m a x ( x i ) − m i n ( x i ) x_i^{(j)}=\frac{x_i^{(j)}-min(x_i)}{max(x_i)-min(x_i)} xi(j)=max(xi)min(xi)xi(j)min(xi)

2. mean normalization

缩放到[-1, 1]的区间, 公式如下

x i ( j ) = x i ( j ) − m e a n ( x i ) m a x ( x i ) − m i n ( x i ) x_i^{(j)}=\frac{x_i^{(j)}-mean(x_i)}{max(x_i)-min(xi)} xi(j)=max(xi)min(xi)xi(j)mean(xi)

  • 注意这里的mean是所有样本的某个属性取平均
3. standardization

又称为Z-score normalization, 将所有数据缩放到平均值为0, 方差为1.如果数据服从正态分布,则现在为标准正态分布,如果数据不服从正态分布,那么缩放后不是标准正态分布,只是服从均值为0, 方差为1。数据缩放后在0左右分布,但不一定就在[0, 1]范围内,有可能超出,公式如下:

z = x i − μ σ z=\frac{x_i-\mu}{\sigma} z=σxiμ

附录

等高线图简单绘制
#导入模块
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-20, 20, 200)
y = np.linspace(-10, 10, 200)

X, Y = np.meshgrid(x, y)

Z = X**2+Y**2
plt.contour(X,Y,Z)
plt.show()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

live_for_myself

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值