模式识别与机器学习(3)
来源:互联网 发布:淘宝主播底薪一般多少 编辑:程序博客网 时间:2024/05/23 01:57
http://www.cnblogs.com/tornadomeet/archive/2013/03/15/2962116.html
%%批量梯度下降%%w我发现对于非线性变换,牛顿法挺好。已经不能把学习率固定了,一固定系数就跑出去。clear all;x=load('../Linear Regression/ex2Data/ex2x.dat');y=load('../Linear Regression/ex2Data/ex2y.dat');% x=[1.15 1.9 3.06 4.66 6.84 7.95 10,14,16]';% x=power(x,0.5);% y=power(x,0.5);%tt=power(x(:,1),2);m=length(y); %原来是我的 散点画错了figure;plot(x,y,'o');ylabel('Height in meters');xlabel('Age in years');%%Gradient descent 这是批量梯度%x=[ones(m,1) x];%这是自变量x=[ones(length(x),1) ,x, x.^2 ];n=size(x,2)-1;theta=zeros(size(x(1,:)))'; %初始化,这里有两个系数,其实变量代表的是Axrange=linspace(min(x(:,2)),max(x(:,2)))';MAX_ITR=1500;%迭代次数 alpha=0.07; %学习率for num_iterations=1:MAX_ITR %懂了上标是什么意思的,原来是指维度,即对于一个变量来说指取了 grad=(1/m)*x'*((x*theta)-y);%第几个实例,一般来说,一张图像是一个变量,图像的维度表示数据 for ii=1:(n+1) for jj=1:(n+1) H1(ii,jj) = sum( x(:, ii).*x(:,jj), 1)/m;%多个负号,按理是要负号的啊 end end %这个挺好,这样对应公式还是挺快的 。 theta=theta-inv(H1)*grad; %这是用牛顿法 %theta=theta-alpha *grad; %换句话说,譬如这里的年龄是个变量,取了几个值,代表着维度。 %矩阵相乘就是求和了end hold on;%tt=power(x(:,2),2);yrange=[ones(size(xrange)),xrange,xrange.^2]*theta;plot(xrange,yrange,'-');legend('Training data', 'Linear regression');%标出图像中各曲线标志所代表的意义hold off ;
0 0
- 模式识别与机器学习(3)
- 模式识别与机器学习
- 模式识别与机器学习
- 模式识别与机器学习(2)
- 模式识别与机器学习(4)
- 模式识别与机器学习(5)
- 模式识别与机器学习-----读书笔记
- 机器学习与模式识别学习总结(一)
- 模式识别与机器学习(第一章)学习笔记
- 模式识别与机器学习(一):概率论、决策论、信息论
- 模式识别与机器学习(一):概率论、决策论、信息论
- 模式识别与机器学习(一):概率论、决策论、信息论
- 【模式识别与机器学习】模式识别中的一些基本概念
- 模式识别与机器学习的简介
- 模式识别与机器学习的简介(zz)
- 模式识别与机器学习的简介
- 【模式识别与机器学习】贝叶斯公式
- 模式识别与机器学习的关系
- day07继承, final修饰 ,抽象类,接口
- C++设计模式之简单工厂、工厂模式、抽象工厂
- 时间戳与时间转换
- PHP Warning: Module 'modulename' already loaded in Unknown on line 0
- target与currentTarget
- 模式识别与机器学习(3)
- 记录:activeandroid数据库工具注解字段,在android6.0里Gson解析确出错了
- C++ STL初探及string、vector学习
- 1008 数组元素循环右移问题
- 【数论】POJ_2115_C Looooops
- Java基础之(三十七)Java多线程编程<三>
- 进程内存印象
- Windows下f&fm&p&eg&录&制&视&频&命&令
- 模式识别与机器学习(4)