版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本文会讲到:线性回归的定义单变量线性回归cost function:评价线性回归是否拟合训练集的方法梯度下降:解决线性回归的方法之一feature scaling :加快梯度下降执行速度的方法多变量线性回归Linear Regression注意一句话:多变量线性回归之前必须要Feature Scaling!方法:线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根 据这个训练集学习出一个线性函数,然后测试这个函数训练的好不好(即此函数是否足够拟 合训练集数据),挑选出最好的函数(cost function最小)即可;注意:因为是线性回归,所以学习到的函数为线性函数,即直线
2、函数;因为是单变量,因此只有一个X; 我们能够给出单变量线性回归的模型:膈 3)= Oq +。许我们常称 x 为 feature,h(x)为 hypothesis;从上面“方法”中,我们肯定有一个疑问,怎么样能够看出线性函数拟合的好不好呢?我们需要使用到Cost Function (代价函数),代价函数越小,说明线性回归地越好(和训练 集拟合地越好),当然最小就是0,即完全拟合; 举个实际的例子:我们想要根据房子的大小,预测房子的价格,给定如下数据集:Size in feet2 (x)Price ($) in 1000s (y)210414161534460232315852 Bl178i-
3、n 根据以上的数据集画在图上,如下图所示:Housing Prices (Portland, ORPrice(in 1000sof dollars)Size (feet2)我们需要根据这些点拟合出一条直线,使得cost Function最小;虽然我们现在还不知道Cost Function内部到底是什么样的,但是我们的目标是:给定输入 向量x,输出向量y,theta向量,输出Cost值;以上我们对单变量线性回归的大致过程进行了描述;Cost FunctionCost Function的用途:对假设的函数进行评价,cost function越小的函数,说明拟合训练数据拟合的越好;下图详细说明了当c
4、ost function为黑盒的时候,cost function的作用;(11 vector x vector y(3) vector th&ta蟀:比即存在数据生心 g 料罚,则虹Q2外y = 1;2.3: 如果侵设预删了国裁为丫 - x ,则发Slco&t value - 0 ;如果假设预测了函数为y = 2x ,则发睨st value = 1;如果假设预刨了函数为y -救,则发Hlmst value - 2 ;则痢i谁现y-x的cost仰1睥最小,因此选择y-x作为我Cl的 hypothesis但是我们肯定想知道cost Function的内部构造是什么?因此我们下面给出公式:IJ泌1)
5、=总支(膈(/) ,)i1其中:杼)表示向量x中的第i个元素;俨)表示向量y中的第i个元素;膈(那)表示已知的假设函数;m为训练集的数量;比如给定数据集(1,1)、(2,2)、(3,3)则x = 1;2;3,y = 1;2;3(此处的语法为Octave语言的语法,表示3*1的矩阵)如果我们预测 theta0 = 0, theta1 = 1,则 h(x) = x,则 cost function:J(0,1) = 1/(2*3) * (h(1)-1广2+(h(2)-2广2+(h(3)-3广2 = 0;如果我们预测 theta0 = 0, theta1 = 0.5,则 h(x) = 0.5x,则 c
6、ost function:J(0,0.5) = 1/(2*3) * (h(1)-1广2+(h(2)-2广2+(h(3)-3广2 = 0.58;如果theta0 一直为0,则thetal与J的函数为:如果有theta0与thetal都不固定,则theta0、thetal、J的函数为:当然我们也能够用二维的图来表示,即等高线图;-50005D0 V0OT 15002000即只有一个注意:如果是线性回归,则costfunctionJ与的函数一定是碗状的,最小点;以上我们讲解了 cost function的定义、公式;Gradient Descent (梯度下降)但是又一个问题引出了,虽然给定一个函数
7、,我们能够根据cost function知道这个函数拟 合的好不好,但是毕竟函数有这么多,总不可能一个一个试吧?因此我们引出了梯度下降:能够找出cost function函数的最小值;梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一 小步,能够下降的最快;当然解决问题的方法有很多,梯度下降只是其中一个,还有一种方法叫Normal Equation ;方法:先确定向下一步的步伐大小,我们称为Learning rate;任意给定一个初始值:* ;确定一个向下的方向,并向下走预先规定的步伐,并更新;当下降的高度小于某个定义的值,则停止下降;算法:-终止翁牛repeat
8、 untilLearning rate决定了下降的步伐大土决se 了下降的方向小J(.iipda同dtempl= CtJ (0i)f出0 q rrnpO61 :=坨mplv特点:初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;越接近最小值时,下降速度越慢; 问题:如果、初始值就在local minimum的位置,则七1 会如何变化?答:因为已经在local minimum位置,所以derivative肯定是0,因此不会变化;如果取到一个正确的f 值,则cost function应该越来越小;问题:怎么取 值?答:随时观察值,如果cost function变小了,则ok,反之,
9、则再取一个更小的值;下图就详细的说明了梯度下降的过程:最小值从上面的图可以看出:初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部 最小值;注意:下降的步伐大小非常重要,因为如果太小,则找到函数最小值的速度就很慢,如果太大,则可能会出现overshoot the minimum的现象;卜图就是overshoot minimum 现象:如果Learning rate取值后发现J function增长了,则需要减小Learning rate的值;Integrating with Gradient Descent & Linear Regression梯度下降能够求出一个函数的最小值;线性回
10、归需要求出,使得cost function的最小;因此我们能够对cost function运用梯度下降,即将梯度下降和线性回归进行整合,如下图 所示:Gradient descent algorithmLinear Regression Model膈3) =+务呈repeat until convcrgcncc印:=。1 丈(膈o)一於)厦梯度下降是通过不停的迭代,而我们比较关注迭代的次数,因为这关系到梯度下降的执行速度,为了减少迭代次数,因此引入了 Feature Scaling;Feature Scaling此种方法应用于梯度下降,为了加快梯度下降的执行速度思想:将各个feature的值标
11、准化,使得取值范围大致都在-1=x=1之间;常用的方法是 Mean Normalization,即,其中就训练集中当前知him的平均值,mx为孤能取的最大值,min为x能取的最小值max.- min或者:X-mean(X)/std(X);举个实际的例子,有两个Feature:size,取值范围02000;(2)#bedroom,取值范围 05;贝0通过 feature scaling 后, 沧巴一1000_ #bedrooms25 2000妲5练习题我们想要通过期中开始成绩预测期末考试成绩,我们希望得到的方程为:标弟)=缸-Ml - &Q给定以下训练集:midterm exam(midterm
12、 exam)2final exam89792196725184749488368769476178我们想对(midterm exam)A2 进行 feature scaling,贝0 经过 feature scaling 后的值为多 少?max = 8836,min=4761,mean=6675.5,则 x=(4761-6675.5)/(8836-4761) = -0.47;多变量线性回归前面我们只介绍了单变量的线性回归,即只有一个输入变量,现实世界不可能这么简单,因 此此处我们要介绍多变量的线性回归;举个例子:房价其实由彳艮多因素决定,比如 size、number of bedrooms、n
13、umber of floors、age of home 等,这里我们假设房价由4个因素决定,如下图所示:Size (feet1!Number of bedroomsNumber of floorsAge of home Ivears)Price ($1000)21045145460141632402321534323031S8522136178 + 4a -is 4 I- + -Iaai-我们前面定义过单变量线性回归的模型:膈(8)=仇)OyX这里我们可以定义出多变量线性回归的模型:+ 皈偌 2 + + 0nXnCost function 如下:I J(佻Ml)=去丈(标()一此)2 i=l如
14、果我们要用梯度下降解决多变量的线性回归,则我们还是可以用传统的梯度下降算法进行 计算:Repeat 的快隔加惴记录阳e知:=0-a交(人如叫_舟依眨”的一玉楠(如_必)即-1.e| 瓣 苗:=住土用3) (simultaneously upd-ate 0j for_i=i7 fJtl为:=的-在*(膈3勺-MWi=l总练习题:我们想要根据一个学生第一年的成绩预测第二年的成绩,x为第一年得到A的数量,y为 第二年得到A的数量,给定以下数据集:xy34214301训练集的个数是多少? 4个;J(0,1)的结果是多少?J(0,1) = 1/(2*4)*(3-4)A2+(2-1)A2+(4-3)A2+
15、(0-1)A2 = 1/8*(1+1+1+1) = 1/2 = 0.5我们也可以通过vectorization的方法快速算出J(0,1):dv= :,=8=二昨) = 0= =人_ n伽工)一方=1 01oj -11(机对-面二4 = /皿1)=我3 = /1)另一种线性回归方法:Normal Equation;Gradient Descent 与 Normal Equation 的优缺点;前面我们通过Gradient Descent的方法进行了线性回归,但是梯度下降有如下特点:(1)需要预先选定Learning rate;(2)需要多次 iteration;需要 Feature Scalin
16、g;因此可能会比较麻烦,这里介绍一种适用于Feature数量较少时使用的方法:NormalEquation;当 Feature 数量小于 100000 时使用 Normal Equation;当 Feature 数量大于 100000 时使用 Gradient Descent;Normal Equation 的特点:简单、方便、不需要 Feature Scaling;其中Normal Equation的公式:e = (XTX)-1XTy其中表示第 i 个 training example; 表示第i个training example里的第j个feature的值;m %#training exa
17、mple;n %#feature; 举个实际的例子:Examples:0Size (feet2)Number of bedroomsNumber of floors 旬Age of hom (years)X412104514511416324011534323018522136130004138111112104514514163240L5343230852213630004138X) -*T y一、算法实现由前面的理论,我们知道了用梯度下降解决线性回归的公式:repeal until coiivergeiice m矗:=% 一蓦丈(如例)-妁Oi =伉一蓦寸(知(工)-俨),土i=l梯度下降
18、解决线性回归思路:until convprgpnrA 喝:=侃f ct土81 :一 a 土算法实现:ComputeCost 函数:plain view plaincopyfor t=l:num iterstempi = theta(l) - (alpha / m) temp2 二 theta(Z) - (alpha / m) theta(l) = tempi;theta(2) - temp2;endfunction J = computeCost(X, y, theta)2.m = length(y); % number of training examplesJ = 0;prediction
19、s = X * theta;J = 1/(2*m)*(predictions - y)*(predictions - y);7.endgradientDescent 函数:plain view plaincopyfunction theta, J_history = gradientDescent(X, y, theta, alpha, num_iters)% X is m*(n+1) matrix% y is m*1% theta is (n+1)*1 matrix% alpha is a number% num_iters is number of iterators7.8.m = len
20、gth(y); % number of training examplesJ_history = zeros(num_iters, 1); %cost function 的值的变化过程%预先定义了迭代的次数12.for iter = 1:num_iters14.temp1 = theta(1)-(alpha/m)*sum(X*theta-y).*X(:,1);temp2 = theta(2)-(alpha/m)*sum(X*theta-y).*X(:,2);theta(1) = temp1;theta(2) = temp2;J_history(iter) =computeCost(X,y, t
21、heta);20.end22.end二、数据可视化我们通过算法实现能够求出函数h(x),但是我们还需要将数据可视化:画出训练集的散点图+拟合后的直线;画出J(theta)为z轴,theta0为x轴,thetal为y轴的三维曲线;画出(2)的三维曲线的等高线图;1.画散点图+拟合的直线描述:给定ex1data1.txt,文件中有两列数据,每一列代表一个维度,第一列代表X,第二列代表 Y,用 Octave画出散布图(Scalar Plot),数据的形式如下:6.1101,17.5925.5277,9.13028.5186,13.6627.0032,11.8545.8598,6.82338.3829
22、,11.886data = load(ex1data1.txt);%导入该文件,并赋予 data 变量X = data( : , 1 ); Y = data( : , 2);%将两列分别赋予X和YX = ones(size(X,1),1),X;%在 X 的左边添加一列 1plot(X,Y,rx,MarkerSize, 4);%画图,将 X 向量作为 X 轴,Y 向量作为 Y 轴,每个点用“x”表示,r表示红点,每个点的大小为4;axis(4 24 -5 25);%调整x和y轴的起始坐标和最高坐标;xlabel(x);%给 x 轴标号为x最后见下图:%给y轴标号为y;(7)ylabel(y);经
23、过计算,算出theta值:theta,J_history = gradientDescent(X, y, theta, alpha, num_iters);即可通过:plot(X(:,2), X*theta);%画出最后拟合的直线5W1520Popifafiicn E City in SlO.OOQsE.Z1ED1 E4.14TZ以上呈现了线性回归的结果;以下两种都是可视化J(theta);2.Surface Plot描述:数据如上一题一样,我们想要绘制出对于这些数据的cost function,我们将绘制出三维图形和contour plot;我们如果要绘制cost function,我们必须
24、预先写好cost function的公式:function J = computeCost(X, y, theta)m = length(y);J = 0;predictions = X * theta;J = 1/(2*m)*sum(predictions - y) .A 2);end实现:theta0_vals = linspace(-10, 10, 100);%从-10 到 10 之间取 100 个数组成一个向量theta1_vals = linspace(-1,4, 100);%从-1 到 4 之间取 100 个数组成一个向量J_vals = zeros(length(theta0_v
25、als), length(theta1_vals); % 初始化 J_vals 矩阵,对于 某个 theta0 和 theta1,J_vals 都有对应的 cost function 值;计算每个(theta0,theta1)所对应的 J_vals;fori = 1:length(theta0_vals)for j = 1:length(theta1_vals)t = theta0_vals(i); theta1_vals(j);J_vals(i,j) = computeCost(X, y, t);endendfigure;%创建一个图surf(theta0_vals,theta1_vals,
26、J_vals); %x 轴为 theta0_vals,y 轴为 theta1_vals,z 轴为J_vals;xlabel(theta_0); %添加 x 轴标志ylabel(theta_1); %添加 y 轴标志此图而且可以转动;Contour Plot实现:theta0_vals = linspace(-10, 10, 100);%从-10 到 10 之间取 100 个数组成一个向量theta1_vals = linspace(-1,4, 100);%从-1 到 4 之间取 100 个数组成一个向量J_vals = zeros(length(theta0_vals), length(the
27、ta1_vals); % 初始化 J_vals 矩阵,对于 某个 theta0 和 theta1,J_vals 都有对应的 cost function 值;计算每个(theta0,theta1)所对应的 J_vals;fori = 1:length(theta0_vals)for j = 1:length(theta1_vals)t = theta0_vals(i); theta1_vals(j);J_vals(i,j) = computeCost(X, y, t);endendfigure;%创建一个图contour(theta0_vals, theta1_vals, J_vals, log
28、space(-2, 3, 20); % 画等高线图xlabel(theta_0); ylabel(theta_1);111765,虬4。砌4.IICZJ如果我们想要在等高线图上画出线性回归的theta0与thetal的结果,则可以:plot(theta(1), theta(2), rx, MarkerSize, 10, LineWidth, 2);4.画图查看Learning Rate是否合理我们在gradientDescent函数中返回的值里有J_history向量,此向量记录了每次迭代后cost function的值,因此我们只需要将x轴为迭代的次数,y轴为cost function的值,
29、即可画图:(1)theta,J_history = gradientDescent(X, y, theta, alpha, num_iters); figure;plot(1:length(J_history), J_history, -b, LineWidth, 2);xlabel(Number of iterations);ylabel(Cost J);7010H:I liW.59*010相叩1。3ei-OlO宅 1当然,我们也可以将不同的alpha值都画在一张图上,可以比较取各个alpha时,c ost function 的变化趋势;(1)alpha=0.01;theta,J1 = gr
30、adientDescent(X, y, zeros(3,1), alpha, num_iters);alpha=0.03;theta,J2 = gradientDescent(X, y, zeros(3,1), alpha, num_iters);alpha=0.1;theta,J3 = gradientDescent(X, y, zeros(3,1), alpha, num_iters);plot(1:numel(J1), J1, -b, LineWidth, 2);plot(1:numel(J2), J2, -r, LineWidth, 2);plot(1:numel(J3), J3, -k, LineWidth, 2);76*010le+010Se*4104e*aio3e102eKH0alpha-0.01aJpha=a.1多元线性回归其实方法和单变量线性回归差不多,我们这里直接给出算法:computeCostMulti 函数plain view plaincopy1. function J = computeCostMulti(X, y, theta)2.m = l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年幼儿园食堂管理人员工作计划
- 2024年学生工作总结
- 7天连锁酒店员工手册
- 2024年卫生专业技术资格考试护理学(中级368)专业知识试题及答案指导
- 7.鹿角和鹿腿 第二课时 (教学课件)语文统编版五四制三年级下册(新教材)
- 断桥门窗安装合同履行与合同解除程序合同
- 长乐区202框架协议合同范本获取攻略合同
- 3.9 行为基础级描述
- 《国际金融》教学设计 项目四 国际结算
- 2026年高二语文下学期期中考试卷及答案(五)
- 第4章 光谱表型分析技术
- 山西2026届高三天一小高考五(素质评价)地理+答案
- 2026年上海对外经贸大学辅导员招聘笔试模拟试题及答案解析
- AI赋能地理教学的应用实践研究-初中-地理-论文
- 浙江省杭州山海联盟2024-2025学年度七年级英语下册期中试题卷(含答案)
- 2026山东青岛海上综合试验场有限公司招聘38人备考题库含完整答案详解(历年真题)
- 护理团队建设与沟通技巧
- 芯片销售培训内容
- 耳石症手法复位治疗课件
- 2026年深圳中考历史得分技巧精讲试卷(附答案可下载)
- 外墙保温及真石漆工程施工组织设计方案
评论
0/150
提交评论