机器学习入门第七篇——Octave/Matlab Tutorial(7)

机器学习入门第七篇——Octave/Matlab Tutorial(7)

  • Vectorization(向量化)

在这里插入图片描述


%unvectorized implementation

%函数体
function J = costFunctionJ(X,y,theta)
m = size(X,1);
predictions = X * theta;
sqrErrors = (predictions-y).^2;
J = 1/(2*m) * sum(sqrErrors);

在这里插入图片描述


 X=[1 1; 1 2; 1 3]
 y=[1; 2; 3]
 theta=[0;1]

在这里插入图片描述


%调用函数

j=costFunctionJ(X,y,theta) % theta=[0;1]

在这里插入图片描述

 theta=[0;0]

在这里插入图片描述

为什么j=2.3333(theta=[0;0])
j=(1^2+2^2+3^2)/(2*3)

为什么j=0(theta=[0;1])
j=(0^2+0^2+0^2)/(2*3)

%vectorized implementation

prediction = theta'*X;
% it will use OCtaves highly optimized numerical linear algerbra routines to 
%compute this inner product between the two vectors theta and X. 
%Not only the vectorized implementation simpler, it will also run much more efficiently.
J=1/(2*m)*sum(sqrErrors);

%vectorized example

在这里插入图片描述


%unvectorized implementation
%C++

%函数体
double prediction =0.0;
for(int j=0 ; j<=n ; j++)
	prediction+=theta[j]*x[j];

%vectorized implementation
%C++

%函数体
double prediction 
				 =theta.transpose()*x;

%Gradient descent

在这里插入图片描述


%vectorized implementation

在这里插入图片描述


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值