Andrew Ng机器学习(一):线性回归
1.什么是线性回归?
用线性关系去拟合输入和输出。
设输入为x,则输出y=ax+b。
对于多元的情况y=b×1+a1x1+a2x2+...+anxn。
用θ表示系数,可以写作:
其中,x0=1。
2.线性回归有什么用?
对于连续输入和输出的问题,如果线性回归可以较好的拟合输入和输出,那么可以用这个模型预测其它输入时的输出。
反过来想:如果线性回归可以较好的拟合输入和输出,那么说明输出和输入有很强的线性相关性,可以识别输入中的冗余信息。
3.怎么判断是否较好的拟合?
初步考虑,就是当使用模型时的输出、和真实的输出有多大偏差,选择一个方法量化这个偏差。
每个样本输入模型时,均会产生一个偏差。
线性回归中,通过求这些偏差的平方平均值,来判断偏差的程度。写作:
其中实际输出为y,模型输出为h,上标i是指每个样本。系数在平方平均值的基础上除以2。
判断偏差的这个方程起名叫 Cost Function。当偏差越小、即Cost Function的值越小时,拟合的越好。
4.怎么训练模型?
训练模型的目的在于实现较好的拟合,也就是说使Cost Function的值尽量小。
训练在这里,就是选择一组系数θ(模型确定以后,模型的参数就是系数θ们),实现上面的目的。
微积分学过,可以对θ求偏导数等于0的点,直接得到极值点。
按照Andrew Ng的课件,当参数个数大于10000个时,直接求极值点时间太长,需要选择别的办法。
5.怎样训练模型:梯度下降。
顾名思义,就是沿着梯度下降。选择一个合适的步长α,一步一步改变θ,使Cost Function的值不断减小。
其中,θj表示各个系数。:=前面的冒号表示每个θj同时改变。
走多少步?和怎么判断模型训练好了呢?最好是观察每次θj改变后,J(θ)的值的变化。
最开始θj等于多少呢?最开始,随便选一组值就可以。
步长α应该选多大呢?要通过手动尝试,“找”到合适的值。
最后,经过多次迭代后,算法得到一组θ,使Cost Function的值比较小。
6.matlab实现一个线性回归。
%一个特征的输入参数
X1=[0.50,0.75,1.00,1.25,1.50,1.75,1.75,2.00,2.25,2.50,2.75,3.00,3.25,3.50,4.00,4.25,4.50,4.75,5.00,5.50];
X0=ones(size(X1));
X=([X0;X1])';
y=([10, 22, 13, 43, 20, 22, 33, 50, 62, 48, 55, 75, 62, 73, 81, 76, 64, 82, 90, 93])';
%梯度下降参数设计
alpha=0.001;%当alpha大于1时就不收敛了
theta=[2;3];%选哪个点作为起点似乎对收敛速度影响不大
times=2000;%迭代次数
for i=1:times
delta=X*theta-y;%求偏导数
theta=theta-alpha.*(X'*delta);%梯度下降
J(i)=delta'*delta;%求此时的Cost Function值
end
%观察Cost Function值随迭代次数的变化
% plot(J);
%观察拟合情况
stem(X1,y);
p2=X*theta;
hold on;
plot(X1,p2);
7.实际使用
实际使用线性回归时,先对输入数据进行优化。包括:1.将冗余的和无关的变量去掉;2.对于非线性关系,采用多项式拟合,将一个变量变为多个变量;3.将输入范围归一化。
小结
线性回归开始假设输入和输出存在线性关系,
然后使用线性回归模型h=θTx,用Cost Function J(θ)评价拟合程度,
通过对J(θ)应用梯度下降算法逼近一组好的参数θ,从而得到一个适用的模型h。
线性回归的使用建立在“输入和输出存在线性关系”这一假设基础上,把一组特征映射到一个值。
使用起来,也许因为模型太简单,感觉不到“机器学习”的感觉。选用时也需要很多先验知识、针对特定情况,就像一般的编程处理问题一样。
在使用梯度下降的算法时,迭代的过程,有点“学习”的感觉。
转载于:https://www.cnblogs.com/sumr/p/9746649.html
Andrew Ng机器学习(一):线性回归相关推荐
- Andrew Ng机器学习课程6
Andrew Ng机器学习课程6 说明 在前面跟随者台大机器学习基石课程和机器学习技法课程的设置,对机器学习所涉及到的大部分的知识有了一个较为全面的了解,但是对于没有动手写程序并加以使用的情况,基本上 ...
- Andrew Ng机器学习课程14(补)
Andrew Ng机器学习课程14(补) 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 利用EM对factor analysis进行的推导还是要参看我的上一 ...
- 【原】Coursera—Andrew Ng机器学习—Week 9 习题—异常检测
[原]Coursera-Andrew Ng机器学习-Week 9 习题-异常检测 参考文章: (1)[原]Coursera-Andrew Ng机器学习-Week 9 习题-异常检测 (2)https: ...
- Andrew Ng机器学习课程17(1)
Andrew Ng机器学习课程17(1) 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:主要介绍了强化学习与监督学习的设定上的区别,以及强化学习的框架 ...
- Andrew Ng机器学习算法入门(二):机器学习分类
机器学习的定义 Arthur Samuel给出的定义,Field of Study that gives computers the ability to learn without being ex ...
- 斯坦福大学Andrew Ng - 机器学习笔记(3) -- 神经网络模型
大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...
- 斯坦福大学Andrew Ng - 机器学习笔记(8) -- 推荐系统 大规模机器学习 图片文字识别...
大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...
- 【机器学习】Andrew Ng——04多变量线性回归
多变量线性回归 Linear Regression with Multiple Variables 房屋估价问题 在单变量线性回归一章,我们讲到了房屋估价问题,以房屋面积这一单变量来决定房屋的估价 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 16—Recommender Systems 推荐系统...
Lecture 16 Recommender Systems 推荐系统 16.1 问题形式化 Problem Formulation 在机器学习领域,对于一些问题存在一些算法, 能试图自动地替你学习到 ...
最新文章
- 怎样理解雷达的相参与非相参
- 蚁群算法,PSO算法以及两种算法可以融合的几种方法
- 组合数 com(n,r)
- 阿里巴巴和印度最大移动支付和商务平台Paytm
- QT之在QML中使用C++类和对象的两种方式
- 抢答网页PHP,[抢答]抢答环节已结束,相关答案已封箱 - 薅羊毛(Coupon)版 - 北大未名BBS...
- weblogic概览下的上下文根配置_weblogic创建域
- java内存模型之二volatile内存语义
- mysql为用户部分授权,MYSQL为用户授权
- Q96:PT(3.4):砂岩纹理(Sandstone Texture)
- Android 6.0 扫描不到 Ble 设备需开启位置权限
- 用glew,glfw,FreeImag实现opengl画图-第五课 摄像机
- js 在线压缩混淆工具
- java持久层框架分析
- Talk预告 | 北京大学人工智能研究院杨耀东:一个合作博弈的通用求解框架
- Itext设置页眉页脚、表头划线、水印、条形码、二维码
- JavaScript 通过注册表的形式调用搜狗输入法的手写输入功能
- linux脚本判断奇数偶数,Bash Shell -- 奇数 偶数 之和计算
- YOLOX训练代码分析3-损失函数
- win10打字反应慢处理