机器学习笔记(3)-----梯度下降算法中特征缩放

多变量线性回归

 

 

计算代价函数 ,其中:

octave求代价函数J(theta)代码:

       function J = costFunctionJ(X,y,theta)

       m = size(X,1);   
       prediction = X*theta;
       sqrErrors = (prediction-y).^2;

       J  = 1/(2*m) * sum(sqrErrors);

Python 代码:
def computeCost(X, y, theta):
      inner = np.power(((X * theta.T) - y), 2)     # np为numpy包 import numpy as np
      return np.sum(inner) / (2 * len(X))

然而 当我们的特征范围很大时,就要考虑这一对时间有影响的不可忽略的问题。

以房价问题为例,假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值为 0-
2000 平方英尺,而房间数量的值则是 0-5,以两个参数分别为横纵坐标,绘制代价函数的等
高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。

分布图像如下: 

                                                                  

X1 = size(0-2000feet^2)

x2 = number of bedrooms(1-5)

呈现椭圆形,进行梯度下降的话,则需要的时间会花费很大。

解决的方法是尝试将所有特征的尺度都尽量缩放到-1 到 1 之间。如图:

最简单的方法是令: 其中

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值