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

时间: 2024-11-05 19:03:33

Andrew Ng机器学习(一):线性回归的相关文章

Andrew Ng机器学习入门——线性回归

本人从2017年起,开始涉猎机器学习.作为入门,首先学习的是斯坦福大学Andrew Ng(吴恩达)教授的Coursera课程 2 单变量线性回归 线性回归属于监督学习(Supervise Learning),就是Right answer is given. 课程中,举了一个估计房产价格的例子,在此,我就直接使用两组数据去作为例子使用线性回归,拟合出效果最好的曲线. 2.1 单变量线性回归算法的思路 根据数据的分布,确定模型其中,h(x)是假设函数(Hypothesis Fuction),θ1和θ

Andrew Ng机器学习课程笔记(五)之应用机器学习的建议

Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录了Andrew Ng课程第五章应用机器学习的建议,主要介绍了在测试新数据出现较大误差该怎么处理,这期间讲到了数据集的分类,偏差,方差,学习曲线等概念,帮

Andrew Ng机器学习课程笔记(二)之逻辑回归

Andrew Ng机器学习课程笔记(二)之逻辑回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364598.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录了Andrew Ng课程第二章逻辑回归的笔记,主要介绍了梯度下降法,逻辑回归的损失函数,多类别分类等等 简要介绍:逻辑回归算法是分类算法,我们将它作为分类算法使用.

Andrew Ng机器学习课程笔记(四)之神经网络

Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录Andrew Ng课程第四章和第五章的神经网络,主要介绍前向传播算法,反向传播算法,神经网络的多类分类,梯度校验,参数随机初始化,参数的更新等等 1.神经网络概述

Andrew Ng机器学习公开课笔记 -- Mixtures of Gaussians and the EM algorithm

网易公开课,第12,13课 notes,7a, 7b,8 从这章开始,介绍无监督的算法 对于无监督,当然首先想到k means, 最典型也最简单,有需要直接看7a的讲义   Mixtures of Gaussians 如果要理解Mixtures of Gaussians,那先回去复习一下Gaussians Discriminant Analysis,高斯判别分析 首先高斯判别分析是生成算法, 所以不会直接拟合p(y|x), 而是拟合p(x|y)p(y), 即p(x,y) p(y)符合伯努力分布,

Andrew Ng机器学习课程10补充

Andrew Ng机器学习课程10补充 VC dimension 讲到了如果通过最小化训练误差,使用一个具有d个参数的hypothesis class进行学习,为了学习好,一般需要参数d的线性关系个训练样本.到这里需要指出一点,这个结果是基于empirical risk minimization得到的,而对于那些大部分的discriminative的学习算法采用的通过最小化training error或者training error的近似值,前面推导的结论并不总是可以用,而对于non_ERM 学

Andrew Ng机器学习课程17(2)

Andrew Ng机器学习课程17(2) 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:主要介绍了利用value iteration和policy iteration两种迭代算法求解MDP问题,还介绍了在实际应用中如何通过积累"经验"更新对转移概率和reward的估计的学习模型,并结合两种迭代算法进行求解的完整过程. 2015-10-11 艺少 版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/lg1

Andrew Ng机器学习公开课笔记–Reinforcement Learning and Control

网易公开课,第16课 notes,12 前面的supervised learning,对于一个指定的x可以明确告诉你,正确的y是什么 但某些sequential decision making问题,比如下棋或直升机自动驾驶 无法确切知道,下一步怎么样是正确的,因为这是一个连续和序列化的决策,比如直到最终直升机crash或下棋输了,你才知道之前的选择是不好的,但中间那么多步决策,到底是哪部分出了问题,可见这是个比较复杂的问题 强化学习,基本思路就是,既然不知道怎样是正确的,那就随便try,然后根据

Andrew Ng机器学习公开课笔记–Independent Components Analysis

网易公开课,第15课 notes,11 参考, PCA本质是旋转找到新的基(basis),即坐标轴,并且新的基的维数大大降低 ICA也是找到新的基,但是目的是完全不一样的,而且ICA是不会降维的 对于ICA,最经典的问题,"鸡尾酒会"问题 在鸡尾酒会,上很多人同时在说话,还有背景音乐,如果我们放若干个话筒进行声音采集 是否可以从采集到的数据中,分离出每个人独立的声音 假设有n个不同的人,m个时间采集点,一般会用和人数一样多的话筒,也是n个 is an n-dimensional vec

Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)

网易公开课,第14课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Components Analysis (PCA), 比Factor Analysis更为直接,计算也简单些 主成分分析基于, 在现实中,对于高维的数据,其中有很多维都是扰动噪音,或有些维是冗余的,对描述数据特征没有作用 比如我们在描述汽车速度的时候,用不同的单位mph or kph作为两维,其实只需要其中一维即可