山东大学机器学习实验1
-
实验内容
下载ex1Data.zip,并从zip文件中提取这些文件。这些文件包含了一些测量两到8岁之间不同男孩身高的例子。y值是以米为单位测量的高度,x值是与身高对应的男孩的年龄。每个身高和年龄元组在我们的数据集中构成了一个训练示例(x(i),y(i)。有m=50个训练示例,您将使用它们来开发一个线性回归模型。
-
第一次迭代后的值:θ0=0.0745,θ1=0.3543
-
最终得到的值:θ0=0.7501,θ1=0.0639
-
预测的身高:
3.5岁:0.9738m≈1.0m
7岁:1.1973m≈1.2m
-
通过本次实验,熟悉了建立线性回归模型的基本流程,掌握了梯度下降的方法,课后也学习了基本matlab知识,感觉对自己的帮助很大,希望之后的实验能够更准确的做出来。
-
由于刚开始接触梯度下降,上网看了一些教程和吴恩达教授的讲解,感觉明白了梯度下降的含义,弄明白了公式的意义,也学到了一些技巧,比如特征缩放,和如何选取学习率,变量应该同时更新值等等。
-
关于学习率的问题,在这里总结一下。学习率是控制你每一次迭代后,值变化的大小。若学习率太小,则会需要迭代很多次才能到达最佳,这其中的时间太漫长。若学习率太大,则会跨过最佳值,经过反复迭代可能会远离最佳值。
、
1.加载训练集
x = load('ex1x.dat');
y = load('ex1y.dat');
2.绘制训练集
figure % open a new figure window
plot (x , y , ' o ' );
ylabel ( ' Height in meters ' );
xlabel ( 'Age in years ' );
3.利用梯度下降迭代
m = length(y) ; % store the number of training examples
x = [ones(m,1),x] ; % Add a column of ones to x
alpha = 0.07;
theta0(1,1) = 0;
theta1(1,1) = 0;
maxIter = 1500;
tol = 1e-8;
for i = 1:maxIter
theta0(i 1,1) = theta0(i,1) - alpha*(1/m)*sum((theta0(i,1).*x(:,1) theta1(i,1).*x(:,2)- y).*x(:,1));
theta1(i 1,1) = theta1(i,1) - alpha*(1/m)*sum((theta0(i,1).*x(:,1) theta1(i,1).*x(:,2)- y).*x(:,2));
theta_before = [theta0(i,1);theta1(i,1)];
theta_now = [theta0(i 1,1);theta1(i 1,1)];
J_before = (0.5/m)*sum(x*theta_before - y);
J_now = (0.5/m)*sum(x*theta_now - y);
if abs(J_now - J_before) < tol
break;
end
end
hold on;
plot( x(:,2),theta0(i 1,1) x(:,2)*theta1(i 1,1),'-');
legend( ' Training data ' , ' Linear regression ' );
4.理解损失函数
J_vals = zeros (100 , 100) ; % initialize Jvals to
% 100*100 matrix of 0's
theta0_vals = linspace (-3 , 3 , 100) ;
theta1_vals = linspace (-1 , 1 , 100) ;
% 对于linespace(x1,x2,N),其中x1、x2、N分别为起始值、终止值、元素个数。
for i = 1 : length (theta0_vals)
for j = 1 : length (theta1_vals )
t = [theta0_vals(i); theta1_vals(j)] ;
J_vals(i,j) = (0.5/m)*(x*t-y)'*(x*t-y);
end
end
J_vals = J_vals'; %转置
figure ;
surf(theta0_vals,theta1_vals,J_vals);
xlabel ('\theta_0 ');ylabel('\theta_1');
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfikheg
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13