斯坦福机器学习课程 Exercise 习题二
2015-12-17 18:31
519 查看
Exercise 2: Linear Regression
话说LaTex用起来好爽Matlab代码
迭代并且画出拟合曲线
Linear regression 公式如下hθ(x)=θTx=∑i=0nθixi(i是代表x的个数)
batch gradient descent update rule
θj:=θj−α1m∑i=1m(h(i)θ−y(i))x(i)j(for all j)
α=0.07
x = load('L:\\MachineLearning2016\\ex2x.dat'); y = load('L:\\MachineLearning2016\\ex2y.dat'); m = length(y); x = [ones(m, 1), x]; theta=[0,0];%row vector figure % open a new figure window plot(x(:,2), y, 'o'); ylabel('Height in meters') xlabel('Age in years') hold on % Plot new data without clearing old plot plot(x(:,2), x*transpose(theta), '-') legend('Training data', 'Linear regression') %迭代方式1 newTheta1 =theta(1,1) - transpose(x(:,1)) * (x*transpose(theta) -y) *0.07 * 0.02; newTheta2 =theta(1,2) - transpose(x(:,2)) * (x*transpose(theta) -y) *0.07 * 0.02; theta=[newTheta1,newTheta2]; %迭代方式2 for ii = 1:1500 theta = theta - transpose( x*transpose(theta) -y ) * x * 0.07 * 0.02; if rem(ii,100) == 0 hold on % Plot new data without clearing old plot plot(x(:,2), x*transpose(theta), '-') end end hold on % 打印最后一条拟合曲线 plot(x(:,2), x*transpose(theta), '+')
画出J(θ)的图像
Understanding J(θ)J(θ)=12m∗∑i=1m(h(i)θ−y(i))2(i means the ith of sample)
J_vals = zeros(100, 100); % initialize Jvals to 100x100 matrix of 0's theta0_vals = linspace(-3, 3, 100); theta1_vals = linspace(-1, 1, 100); for i = 1:length(theta0_vals) for j = 1:length(theta1_vals) t = [theta0_vals(i); theta1_vals(j)];%column vector J_vals(i,j) = sum( (x*t' -y).^2 ) * 0.01; end end % Plot the surface plot % Because of the way meshgrids work in the surf command, we need to % transpose J_vals before calling surf, or else the axes will be flipped J_vals = J_vals'; figure; surf(theta0_vals, theta1_vals, J_vals) xlabel('\theta_0'); ylabel('\theta_1')
相关文章推荐
- 解析在main函数之前调用函数以及对设计的作用详解
- java和matlab画多边形闭合折线图示例讲解
- C#调用Matlab生成的dll方法的详细说明
- 从java中调用matlab详细介绍
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning
- 机器学习---学习首页 3ff0
- 反向传播(Backpropagation)算法的数学原理
- 稀疏自动编码器 (Sparse Autoencoder)
- 也谈 机器学习到底有没有用 ?
- 量子计算机编程原理简介 和 机器学习
- VC++与Matlab混合编程的快速实现
- Matlab 矩阵运算
- matlab与opencv部分函数的对照
- matlab神经网络工具箱创建神经网络
- Matlab
- MATLAB 入门教程
- matlab函数_连通区域
- MATLAB中函数模式和命令模式的区别
- 初识机器学习算法有哪些?