斯坦福机器学习2:监督学习应用
来源:互联网 发布:dht网络bt 编辑:程序博客网 时间:2024/05/29 04:37
斯坦福机器学习第二讲学习笔记及MATLAB实现
代码及笔记打下载地址:http://download.csdn.net/detail/misscoder/9381026
第一部分–笔记
一:内容提纲
1:线性回归
2:梯度下降
3:正规方程组
二:学习内容
学习第一个监督学习算法,同时也属于线性回归问题范畴,教学引入例子是房价预测问题。本节课程提供了线性回归问题两种求解方法—梯度下降和正规方程组法。
三:监督学习的内容和步骤
如上图,首先确定h的形式(如线性回归问题中假设h是特征的线性函数);然后设计学习算法,该算法根据训练样本集求解h中参数,确定h最终形式;最后基于h,可对任意输入变量x进行预测:y=h(x)。
梯度下降法和正规方程法是线性回归问题中求解h的两种算法。
四:梯度下降法
核心思想:重复沿最陡方向减小成本函数J(),直到算法收敛。
数学表示:依照如下表达式重复更新参数直到算法收敛
算法收敛的判断:θ变化不大;J(θ)变化不大;J(θ)取最小值
备注:α的合理取值关乎算法成败,若取值过小,则迭代次数过多;若取值过大,则可能会跳过最优解,使θ、J(θ)以及整个算法无法达到收敛状态。实验结果表面,因根据训练样本以及算法运行情况调整α,寻找能使算法收敛的较大α
五:正规方程法
核心思想:求解矩阵方程∇_θ J(θ)=0,则h(x)=θ^T x
数学表示:
第二部分—代码
一:梯度下降法
1:算法实现函数。
% Function: 梯度下降法求解线性回归模型% Create Time:2015/12/14% Parameter:% tx--训练样本输入% ty--训练样本输出% a --步长% x --输入变量% Steps:% 1:沿梯度方向更新参数theta% 2:计算此参数下的评价函数Jtheta% 3: 判断算法是否收敛。若是,停止迭代。算法收敛时,theta,J收敛。function y = laLMS(tx,ty,a,x)[m,n] = size(tx);%m--样本数,n--特征数tx0 = ones(m,1);tx = [tx0 tx];theta = zeros(1,n+1)';y = 0;for k = 1:1:80% 1:沿梯度方向更新参数theta oldTheta = theta; for j = 1:1:n+1 dstep = 0; for i = 1:1:m dstep = dstep + (h_func(oldTheta',tx(i,:)) - ty(i))*tx(i,j); end theta(j) = theta(j) - a*dstep; end% 2:计算此参数下的评价函数Jtheta J = J_func(tx,ty,theta); Jold = J_func(tx,ty,oldTheta); if abs(Jold-J)/Jold<0.0001 theta=oldTheta y = h_func(theta,[1 x]); break; endendend
2:两个相关函数。
function h = h_func(theta,tx)% 参数:tx--一个训练样本输入% h --该训练样本输入预测值h =dot(theta',tx);end
function j = J_func(tx,ty,theta)j = 0;m = size(tx,1);for i = 1:1:m j = j + (h_func(theta',tx(i,:))- ty(i))^2;endj = j/2;end
3:测试函数。
% Function: 测试线性回归问题两种解法% Create Time:2015/12/14% Parameter:clc;clear;% 训练样本集一:tx = [1 40 ;2 40 ;1 50 ;2 50 ;2 80 ;2 82 ;3 83 ;2 88 ;3 120 ;2 120 ];ty = [805;807;1005;1007;1608;1646;1670;1769;2411;2407]; x = [2 110] ;% 训练样本集二:% tx = [1;2;3;4]; % ty = [1.1;2.2;2.7;3.8]; % x = 1.5 ; y1= laLMS(tx,ty,0.00001,x);%第一组训练样本a=0.00001,第二组训练样本a=0.01
二:正规方程法
1:算法实现函数。
% Function: 正规方程法求解线性回归模型% Create Time:2015/12/14% Parameter:% tx--训练样本输入% ty--训练样本输出% x --输入变量% Steps:% 1:沿梯度方向更新参数theta% 2:计算此参数下的评价函数Jtheta% 3: 判断该函数是否为局部最小值。若是,停止迭代function y = laNormalEquations(tx,ty,x)[m,n] = size(tx);%m--样本数,n--特征数tx0 = ones(m,1);X = [tx0 tx];Y = ty;theta = pinv(X'*X)*X'*Ysize(theta)size([1 x])y = dot(theta',[1 x]);end
2:测试函数。
% Function: 测试线性回归问题两种解法% Create Time:2015/12/14% Parameter:clc;clear;% 训练样本集一:tx = [1 40 ;2 40 ;1 50 ;2 50 ;2 80 ;2 82 ;3 83 ;2 88 ;3 120 ;2 120 ];ty = [805;807;1005;1007;1608;1646;1670;1769;2411;2407]; x = [2 110] ;% 训练样本集二:% tx = [1;2;3;4]; % ty = [1.1;2.2;2.7;3.8]; % x = 1.5 ; y2= laNormalEquations(tx,ty,x);
- 斯坦福机器学习2:监督学习应用
- 【机器学习-斯坦福】学习笔记2 - 监督学习应用与梯度下降
- 【机器学习-斯坦福】学习笔记2 - 监督学习应用与梯度下降
- 【机器学习-斯坦福】学习笔记2 - 监督学习应用与梯度下降
- 【斯坦福《机器学习》笔记】[第2集] 监督学习应用.梯度下降
- 斯坦福 机器学习-第一章监督学习
- 【斯坦福---机器学习】复习笔记之监督学习应用.梯度下降
- 斯坦福机器学习公开课学习笔记(2)—监督学习 梯度下降
- [机器学习]斯坦福公开课-第1,2课-监督与非监督矩阵以及梯度下降
- 机器学习2-监督学习
- Python机器学习应用 | 监督学习
- Python机器学习应用 | 无监督学习
- [机器学习]监督学习应用.梯度下降
- 机器学习-监督学习
- 斯坦福机器学习-week 2 学习笔记
- coursera-斯坦福-机器学习-吴恩达-第8周笔记-无监督学习
- 斯坦福机器学习1
- 斯坦福机器学习课程
- 第一篇博客
- TaintDroid实现数据流的污点追踪
- JavaDoc的使用
- 框架SSH学习(Struts)
- http协议笔记
- 斯坦福机器学习2:监督学习应用
- 按下按钮圆圈改变颜色
- [Coursera]算法基础_Week9_考试_Q4
- button作为asp.net服务器控件时在IE提交两次
- HTML兼容性问题
- Android实战 - 音心播放器 (Music Service 实现)
- 实战c++中的vector系列--copy set to vector(别混淆了reserve和resize)
- LR11录制回放出现中文乱码以及录制时一直跳到360浏览器的解决方法
- 常见错误8-搭建hexo,本地server成功,部署到github上之后不能显示主题样式