




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机器学习基础回归2020/12/3机器学习基础回归简单线性回归()评估模型多元线性回归()多项式回归()正则化()应用线性回归用梯度下降拟合模型()2020/12/3线性回归第3-2课简单线性回归简单的线性回归可以用来建模一个响应变量和一个解释变量之间的线性关系。假设你想知道比萨饼的价格2020/12/3线性回归第3-3课观察数据2020/12/3线性回归第3-4课将matplotlib.pyplot导入为PLTX=[[6],[8],[10],[14],[18]]y=[[7],[9],[13],[17.5],[18]]PLT.FIGUE()plt.title(“比萨饼价格与直径之间的关系”)PLT.XLABEL(“直径(英寸)”)PLT.YLabel(“以美元计价的价格”)plt.plot(X,y,'k.')PLT.Axis([0,25,0,25])PLT.GRID(真)plt.show()sklearn.linear_model.linearregression2020/12/3线性回归第3-5课#导入sklearn从sklearn.linear_model导入LinearRegression#训练数据X=[[6],[8],[10],[14],[18]]y=[[7],[9],[13],[17.5],[18]]#创建并拟合模型模型=线性回归()model.fit(X,y)打印('一个12英寸的比萨饼应该花费:$%.2f'%Model.Predict([12])[0])#12英寸的比萨饼应该要13.68美元sklearn.linear_model.linearregressionLinear_Model.LinearRegression类是一个估计器。估计器基于观察到的数据预测值。在scikit-learn中,所有估计器都实现fit()和predict()方法。前一种方法用于学习一个模型的参数,后一种方法用于利用学习的参数对一个解释变量预测一个响应变量的值。使用scikit-learn可以很容易地对不同的模型进行实验,因为所有的估计器都实现了拟合和预测方法2020/12/3线性回归第3-6课结果2020/12/3线性回归第3-7课打印((ercept_,model.coef_))Z=模型。预测(X)PLT散点(X,y)plt.plot(X,Z,color='red')plt.title(“比萨饼价格与直径之间的关系”)PLT.XLABEL(“直径(英寸)”)PLT.YLabel(“以美元计价的价格”)plt.show()#(array([1.96551743]),array([[0.9762931]]))评估模型的适应度由几组参数值产生的回归线绘制在下图中。我们如何评估哪些参数产生了最佳拟合的回归线?2020/12/3线性回归第3-8课成本函数成本函数,也称为损失函数,用于定义和度量模型的误差。模型预测的价格与训练集中的比萨观察价格之间的差异称为残差或训练误差。稍后,我们将在一组单独的测试数据上评估一个模型;测试数据中预测值和观察值之间的差异称为预测误差或测试误差。我们模型的残差由训练实例点和回归超平面点之间的垂直线表示,如下图所示:2023/11/4LinearRegressionLesson3-9通过最小化残差和,我们可以得到最佳的比萨饼价格预测值。也就是说,如果我们的模型预测的响应变量的值接近于所有训练示例的观察值,那么我们的模型就适合了。这个模型适应度的度量称为残差平方和代价函数。2023/11/4LinearRegressionLesson3-10importnumpyasnprss=np.sum((model.predict(X)-y)**2)print('Residualsumofsquares:%.2f'%(rss,))#Residualsumofsquares:8.75求解简单线性回归的最小二乘法对于一元线性回归模型,
假设从总体中获取了n组观察值(X1,Y1),(X2,Y2),
…,(Xn,Yn)。对于平面中的这n个点,可以使用无数条曲线来拟合。要求样本回归函数尽可能好地拟合这组值,最常用的是普通最小二乘法(
Ordinary
LeastSquare,OLS):所选择的回归模型应该使所有观察值的残差平方和达到最小。2023/11/4LinearRegressionLesson3-11varianceofx>>>importnumpyasnp>>>printnp.var([6,8,10,14,18],ddof=1)covarianceofxandy>>>importnumpyasnp>>>printnp.cov([6,8,10,14,18],[7,9,13,17.5,18])[0][1]2023/11/4LinearRegressionLesson3-12既然我们已经计算了解释变量的方差以及响应和解释变量的协方差,我们可以使用以下公式进行求解:在求解β后,我们可以使用以下公式求解α:2023/11/4LinearRegressionLesson3-13评估模型我们使用了一种学习算法来从训练数据中估计模型的参数。我们如何评估我们的模型是否是真实关系的良好代表?2023/11/4LinearRegressionLesson3-14R-squared有几种方法可以用来评估我们模型的预测能力。我们将使用r平方来评估我们的比萨饼价格预测值。R平方度量模型对响应变量的观测值的预测效果。更具体地说,r平方是模型解释的响应变量中方差的比例。r平方分为1,表明利用该模型可以对响应变量进行无误差预测。一半的r平方分数表示可以使用该模型预测响应变量中一半的方差。计算r-d有几种方法。在简单线性回归的情况下,r平方等于Pearson积矩相关系数的平方,或Pearson的r。2023/11/4LinearRegressionLesson3-15
2023/11/4LinearRegressionLesson3-16多元线性回归Formally,multiplelinearregressionisthefollowingmodel:Let'supdateourpizzatrainingdatatoincludethenumberoftoppingswiththefollowingvalues:2023/11/4LinearRegressionLesson3-17MultiplelinearregressionFormally,multiplelinearregressionisthefollowingmodel:2023/11/4LinearRegressionLesson3-18MultiplelinearregressionFormally,multiplelinearregressionisthefollowingmodel:Let'supdateourpizzatrainingdatatoincludethenumberoftoppingswiththefollowingvalues:Wemustalsoupdateourtestdatatoincludethesecondexplanatoryvariable,asfollows:2023/11/4LinearRegressionLesson3-19我们将X乘以它的转置,得到一个可以反转的方阵。用上标T表示,矩阵的转置是通过将矩阵的行变成列而形成的,反之亦然,如下所示:2023/11/4LinearRegressionLesson3-20>>>fromnumpy.linalgimportinv>>>fromnumpyimportdot,transpose>>>X=[[1,6,2],[1,8,1],[1,10,0],[1,14,2],[1,18,0]]>>>y=[[7],[9],[13],[17.5],[18]]>>>printdot(inv(dot(transpose(X),X)),dot(transpose(X),y))[[1.1875][1.01041667][0.39583333]]2023/11/4LinearRegressionLesson3-21NumPy还提供了一个最小二乘函数,可以更紧凑地求解参数值:>>>fromnumpy.linalgimportlstsq>>>X=[[1,6,2],[1,8,1],[1,10,0],[1,14,2],[1,18,0]]>>>y=[[7],[9],[13],[17.5],[18]]>>>printlstsq(X,y)[0][[1.1875][1.01041667][0.39583333]]2023/11/4LinearRegressionLesson3-22sklearn.linear_model.LinearRegression2023/11/4LinearRegressionLesson3-23Polynomialregression在前面的例子中,我们假设解释变量和响应变量之间的实际关系是线性的。这种假设并不总是正确的。在本节中,我们将使用多项式回归,这是多元线性回归的一个特例,它将阶数大于1的项添加到模型中。当您通过添加多项式项来转换训练数据时,将捕获真实的曲线关系,然后以与多元线性回归相同的方式拟合这些项。为了便于可视化,我们将再次使用一个解释变量,即比萨的直径。让我们使用以下数据集比较线性回归和多项式回归:2023/11/4LinearRegressionLesson3-24二次回归,或二次多项式回归,由以下公式给出:我们只使用了一个解释变量,但是模型现在有三个术语而不是两个术语。解释变量已被转换并作为第三项添加到模型中,以捕捉曲线关系。此外,请注意多项式回归方程与向量表示法中的多元线性回归方程相同。多项式特征变换器可以很容易地将多项式特征添加到特征表示中。让我们根据这些特性拟合一个模型,并将其与简单线性回归模型进行比较。2023/11/4LinearRegressionLesson3-252023/11/4LinearRegressionLesson3-262023/11/4LinearRegressionLesson3-27现在,让我们尝试一个更高阶的多项式。下图中的曲线图显示了由九次多项式创建的回归曲线:2023/11/4LinearRegressionLesson3-28九次多项式回归模型与训练数据拟合得很好!然而,模型的r平方得分是-0.09。我们创建了一个非常复杂的模型,它精确地拟合了训练数据,但无法近似真实的关系。这个问题叫做过拟合。该模型应该归纳出一个将输入映射到输出的一般规则;相反,它已经记住了来自训练数据的输入和输出。因此,该模型在测试数据上表现不佳。据预测,一个16英寸的披萨应该不到10美元,一个18英寸的披萨应该超过30美元。该模型完全符合训练数据,但未能了解尺寸与价格之间的真实关系。2023/11/4LinearRegressionLesson3-29Regularization正则化是可以用来防止过度拟合的技术集合。正则化将信息添加到问题中,通常以对复杂性的惩罚的形式添加到问题中。奥卡姆的剃刀(奥卡姆剃刀律)指出,假设最少的假设是最好的。因此,正则化试图找到解释数据的最简单模型。2023/11/4LinearRegressionLesson3-30
2023/11/4LinearRegressionLesson3-31岭回归通过添加系数的l2范数来修正平方代价函数的残差和,如下图所示,*是控制处罚强度的超参数,超参数是模型中不能自动学习的参数,必须手动设置。
2023/11/4LinearRegressionLesson3-32LASSO产生稀疏参数,大多数系数将为0,模型将依赖于特征的一小部分。
2023/11/4LinearRegressionLesson3-33应用线性回归假设你在一个聚会上,你想喝最好的酒。你可以向你的朋友征求建议,但你怀疑他们会喝任何葡萄酒,不管它来自何处。幸运的是,你带来了pH试纸和其他工具来测量葡萄酒的各种理化性质这毕竟是一场聚会。我们将使用机器学习来根据葡萄酒的物理化学属性来预测葡萄酒的质量。2023/11/4LinearRegressionLesson3-34UCI机器学习库的葡萄酒数据集测量了1599种不同红酒的11种物理化学属性,包括pH值和酒精含量。每一种葡萄酒的质量都是由人类评委打分的。分数从0分到10分;0分是最差的质量,10分是最好的质量。数据集可从/ml/datasets/Wine。我们将把这个问题作为一个回归任务来处理,并将葡萄酒的质量回归到一个或多个物理化学属性上。此问题中的响应变量只接受0到10之间的整数值;我们可以将这些值视为离散值,并将问题作为一个多类分类任务来处理。然而,在本章中,我们将把响应变量视为一个连续值。2023/11/4LinearRegressionLesson3-35Exploringthedatafixedacidity非挥发性酸,volatileacidity挥发性酸,citricacid柠檬酸,residualsugar剩余糖分,chlorides氯化物,freesulfurdioxide游离二氧化硫,totalsulfurdioxide总二氧化硫,density密度,pH酸碱性,sulphates硫酸盐,alcohol酒精,quality质量2023/11/4LinearRegressionLesson3-36首先,我们将加载数据集并查看变量的一些基本摘要统计信息。数据以.csv文件的形式提供。请注意,字段之间用分号分隔,而不是逗号):2023/11/4LinearRegressionLesson3-37可视化数据有助于指示响应变量和解释变量之间是否存在关系。让我们使用matplotlib创建一些散点图。考虑以下代码片段:2023/11/4LinearRegressionLesson3-382023/11/4LinearRegressionLesson3-39这些图表明,响应变量依赖于多个解释变量;让我们用多元线性回归来建模关系。我们如何决定在模型中包括哪些解释变量?数据帧.corr()计算成对相关矩阵。相关矩阵证实了酒精和品质之间的正相关最强,而品质与挥发性酸度呈负相关,而挥发性酸度是导致葡萄酒尝起来像醋一样的属性。总而言之,我们假设好的葡萄酒酒精含量高,尝起来不像醋。这一假设似乎是合理的,尽管它表明葡萄酒爱好者可能没有他们声称的复杂的味觉2023/11/4LinearRegressionLesson3-40模型拟合与评价2023/11/4LinearRegressionLesson3-41r平方得分为0.35,表明该模型解释了测试集中35%的方差。如果不同的75%的数据被分区到训练集,性能可能会发生变化。我们可以使用交叉验证来更好地估计估计器的性能。回想一下第一章,每个交叉验证循环训练并测试数据的不同分区,以减少可变性:2023/11/4LinearRegressionLesson3-42Thefollowingfigureshowstheoutputoftheprecedingcode:2023/11/4LinearRegressionLesson3-43Fittingmodelswithgradientdescent在本章的示例中,我们通过以下等式解析求解使成本函数最小化的模型参数值:回想一下,X是每个训练示例的解释变量值的矩阵。XTX的点积得到一个维数为n×n的方阵,其中n等于解释变量的个数。反演这个方阵的计算复杂度在解释变量的数目上几乎是立方的。此外,如果XTX的行列式等于零,则不能求逆。2023/11/4LinearRegressionLesson3-44Gradientdescent在本节中,我们将讨论另一种有效估计模型参数最优值的方法,称为梯度下降法。请注意,我们对良好拟合的定义没有改变;我们仍将使用梯度下降来估计模型参数的值,这些参数使成本函数的值最小化。梯度下降有时被描述为一个蒙着眼睛的人试图从山腰的某个地方找到通往山谷最低点的路。2023/11/4LinearRegressionLesson3-45形式上,梯度下降是一种优化算法,可以用来估计函数的局部最小值。回想一下,我们使用的是残差平方和成本函数,它由以下等式给出:我们可以使用梯度下降法来寻找使成本函数值最小化的模型参数值。梯度下降通过计算每一步代价函数的偏导数迭代更新模型参数的值。2023/11/4LinearRegressionLesson3-46需要注意的是,梯度下降估计函数的局部最小值。对于所有可能的参数值,凸成本函数值的三维绘图看起来就像一个碗。碗的底部是唯一的局部最小值。非凸代价函数可以有许多局部极小值,也就是说,它们的代价函数值的图可以有许多峰和谷。梯度下降只能保证找到局部最小值;它会找到一个山谷,但不一定会找到最低的山谷。幸运的是,代价函数的平方和是凸的。2023/11/4LinearRegressionLesson3-47Typesof
Gradientdescent梯度下降可以根据用于计算误差的训练模式的数量而变化;这反过来又用于更新模型。用于计算误差的模式数包括用于更新模型的梯度的稳定性。我们将看到,在梯度下降配置中,计算效率和误差梯度的保真度存在紧张关系。梯度下降的三种主要方式是批处理、随机和小批量。2023/11/4LinearRegressionLesson3-48StochasticGradientDescent随机梯度下降,通常缩写为SGD,是梯度下降算法的一种变体,它计算误差并更新训练数据集中每个例子的模型。每个训练样本的模型更新意味着随机梯度下降通常被称为在线机器学习算法。2023/11/4LinearRegressionLesson3-49StochasticGradientDescent正面频繁的更新会立即深入了解模型的性能和改进速度。这种梯度下降的变体可能是最容易理解和实现的,特别是对于初学者。增加模型更新频率可以加快对某些问题的学习。噪声更新过程可以使模型避免局部极小(如过早收敛)2023/11/4LinearRegressionLesson3-50StochasticGradientDescentUpsides缺点如此频繁地更新模型比其他梯度下降配置的计算成本更高,在大数据集上训练模型所需的时间明显更长。频繁的更新会产生一个噪声梯度信号,这可能导致模型参数和模型误差跳变(在训练阶段具有更高的方差)。误差梯度下的噪声学习过程也会使算法难以确定模型的误差最小值。2023/11/4LinearRegressionLesson3-51BatchGradientDescent批量梯度下降算法是梯度下降算法的一种变体,该算法计算训练数据集中每个示例的误差,但只在评估完所有训练示例后更新模型。通过整个训练数据集的一个周期称为训练纪元。因此,通常说成批梯度下降在每个训练周期结束时进行模型更新。2023/11/4LinearRegressionLesson3-52BatchGradientDescent正面对模型的更新较少意味着这种梯度下降比随机梯度下降在计算上更有效。降低更新频率可以使误差梯度更稳定,并且在某些问题上可能导致更稳定的收敛。预测误差计算和模型更新的分离使得该算法适用于基于并行处理的实现。2023/11/4LinearRegressionLesson3-53BatchGradientDescentUpsides缺点更稳定的误差梯度可能导致模型过早收敛到一组不太理想的参数。在训练周期结束时的更新需要在所有训练实例中累积预测误差的额外复杂性。通常,批量梯度下降的实现方式是,它需要内存中的整个训练数据集,并可用于算法。对于大型数据集,模型更新和训练速度可能会变得非常慢2023/11/4LinearRegressionLesson3-54Mini-BatchGradientDescent小批量梯度下降算法是梯度下降算法的一个变种,它将训练数据集分成小批量,用于计算模型误差和更新模型系数。实现可以选择在小批量上求和梯度,从而进一步减小梯度的方差。小批量梯度下降寻求在随机梯度下降的鲁棒性和批量梯度下降的效率之间找到一个平衡点。它是在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025公司项目部管理人员安全培训考试试题加答案解析
- 天津城市建设管理职业技术学院《药学创新》2023-2024学年第一学期期末试卷
- 江西传媒职业学院《照明艺术设计》2023-2024学年第二学期期末试卷
- 西安科技大学高新学院《PCB设计与制作》2023-2024学年第二学期期末试卷
- 天津中医药大学《数学课程标准与教学设计》2023-2024学年第一学期期末试卷
- 江西省南昌市安义中学2024-2025学年高三5月三校联考数学试题试卷含解析
- 景德镇陶瓷大学《中医骨伤科学基础实验》2023-2024学年第一学期期末试卷
- 济宁学院《最优理论与算法》2023-2024学年第二学期期末试卷
- 江苏科技大学《标识系统设计》2023-2024学年第二学期期末试卷
- 天津市静海区重点中学2025年高三第二次调研英语试卷含答案
- 2025年春新人教版语文一年级下册教学课件 11 浪花
- 水利工程信息化项目划分表示例、单元工程质量标准、验收应提供的资料目录
- 2025年安徽省水利水电勘测设计研究总院股份有限公司招聘笔试参考题库附带答案详解
- 2025年行政执法人员执法资格考试必考题库及答案(共232题)
- DB31∕T 360-2020 住宅物业管理服务规范
- 2024-2030年中国街舞培训行业发展趋势及竞争格局分析报告
- 2024年度中国鲜食玉米行业发展前景分析简报
- 《电力建设工程施工安全管理导则》(NB∕T 10096-2018)
- 装修拆除安全协议书范本(2篇)
- 国家自然科学基金学科分类目录及代码表
- 射频同轴连接器基础知识及设计要点
评论
0/150
提交评论