版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、附 预测数值型数据:回归拟合直线拟合直线局部加权线性回归局部加权线性回归理解数据理解数据权衡偏差和方差权衡偏差和方差前言 预测联系型数据 “回归可以做任何事情” 最近有新意的应用:预测名人的离婚率1. 先介绍线性回归2. 再引入局部平滑技术3. 分析如何更好的拟合数据4. 在欠拟合情况下的缩减技术5. 探讨偏差和方差的概念用线性回归找到最佳拟合直线 线性回归 优点:结果易于理解,计算上不复杂 缺点:对非线性的数据拟合不好 回归的目的是预测数值型目标值:找到目标的计算公式 预测某人的汽车功率: HorsePower = 0.0015*annualSalary-0.99*hoursListenin
2、gToRadio 以上为回归方程 0.0015和-0.99为回归系数 求回归系数的过程即为回归本次只讨论线性回归回归的一般方法 收集数据 按输入要求整理数据 数据可视化以直观分析数据 训练算法:找到回归系数 测试算法:使用R2或者预测值和数据的拟合度来分析模型的效果 使用算法:给定输入的时候预测输出基本算法例:对以下点集进行拟合 import numpy as np lstDt = lstLbl = # lbl: label fr = open(.ex0.txt) for line in fr.readlines(): arLn = line.strip().split() lstDt.app
3、end(float(arLn0), float(arLn1) lstLbl.append(float(arLn2)计算回归: xMat = np.mat(lstDt) yMat = np.mat(lstLbl).T xTx = xMat.T*xMat if np.linalg.det(xTx)=0.0: print This is matrix is singular, cannot do inverse! else: ws = xTx.I*(xMat.T*yMat)绘图 plt.figure() lstX = dt1 for dt in lstDt plt.scatter(lstX, lst
4、Lbl) lstY = ws0, 0+ws1, 0*x for x in lstX plt.plot(lstX, lstY)如何如何评判模型的好坏? 不同数据集: 分别做线性回归, 得到完全一样的两个模型 如何比较回归效果? 计算yHat和y的相关系数: arrYHat = np.array(lstY) arrY = np.squeeze(np.array(yMat) print np.corrcoef(arrY, arrYHat)局部加权线性回归平滑值 k = 1平滑值 k = 0.01平滑值 k = 0.003代码:算法实现 xMat = np.mat(lstDt) yMat = np.m
5、at(lstLbl).T m = xMat.shape0 k = 0.01 lstY = for i in range(m): wgt = np.mat(np.eye(m) dtTst = xMati, : for j in range(m): difMat = dtTst - xMatj, : wgtj, j = np.exp(difMat*difMat.T/(-2*k*2) xTx = xMat.T*(wgt*xMat) if np.linalg.det(xTx)=0.0: print This is matrix is singular, cannot do inverse! else:
6、 ws = xTx.I*(xMat.T*(wgt*yMat) matV = dtTst*ws lstY.append(matV0, 0)代码:显示结果 plt.figure() lstX = dt1 for dt in lstDt plt.scatter(lstX, lstLbl) sIdx = np.argsort(lstX) lstXSort = lstXidx for idx in sIdx lstYSort = lstYidx for idx in sIdx plt.plot(lstXSort, lstYSort) arrYHat = np.array(lstY) arrY = np.
7、squeeze(np.array(yMat) print np.corrcoef(arrY, arrYHat)普通和加权的代码区别示例:预测鲍鱼的年龄 使用较小的核将得到较小的训练误差: k = 0.1:拟合值与原点集的误差为56.8426 k = 1:拟合值与原点集的误差为429.891 k = 10:拟合值与原点集的误差为549.118 为什么不使用尽量小的核?因为会过拟合 过拟合会体现在新数据的大误差上: k = 0.1:拟合点与原值点的误差为25619.93 k = 1:拟合点与原值点的误差为573.526 k = 10:拟合点与原值点的误差为517.571缩减系数来“理解”数据缩减系
8、数来“理解”数据 缩减法能取得更好的预测效果 可通过预测误差最小化得到:1. 获取数据2. 抽出部分数据作为测试用3. 剩余数据作为训练集4. 训练完毕再用测试集测试5. 使用不同的重复上述过程6. 选取使预测误差最小的岭回归编程 在普通回归方法可能会产生错误的时候,岭回归仍能正常工作 所以不需要再判断行列式是否为0( 0) 对列做归一化处理,使所有列同等重要 如右图: 以指数变化 最小时:回归系数与线性回归一致 最大时:回归系数全部缩减为0修改代码:岭回归 lam = 0.2 xMat = np.mat(lstDt) yMat = np.mat(lstLbl).T xTx = xMat.T*
9、xMat denom = xTx+np.eye(xMat.shape1)*lam ws = denom.I*(xMat.T*yMat)岭回归结果图预备:lasso方法lasso方法前向逐步回归 与lasso效果相似,但计算更简单 属于贪心算法,即每一步都尽可能减少误差 算法开始时,所有权值都设为1 然后每一步都决策对某个权值增加或减少一个很小的步长 优点:理解现有模型并作出改进 当模型建立,可以运行该算法找出最重要的特征 及时停止对那些不重要特征的搜集 如果用于测试,该算法每100次迭代就可以构建出一个模型,可以使用类似10折交叉验证的方法比较这些模型,选择最优模型权衡偏差与方差 偏差:模型预测值和原始数据之间的差异 方差:是模型之间的差异 偏差是学习的产物,是度量学习效果的标准 方差用来比较和选择较好的模型 选择模型必须折中考虑偏差和方差示例:预测乐高玩具套装价格 乐高套装的生命周期大约几年
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 柳州市禾光电脑科技有限责任公司员工培训管理的研究分析
- 2026年云南福城街道办事处招聘镇级森林消防专业队队员15人备考题库及一套答案详解
- 2026年中科云谷招聘专场备考题库有答案详解
- 2026年成都生物制品研究所有限责任公司招聘备考题库带答案详解
- 2026年中药师、中医执业医师等5岗招聘6人备考题库及1套参考答案详解
- 2026年上药控股安徽有限公司招聘备考题库及参考答案详解1套
- 非金属矿井防治水技术方案
- 高坠事故应急演练实施方案
- 煤气泄漏防爆应急处置演练方案
- 关于开展“书香校园”创建活动的实施方案
- 有限空间大型污水井作业工岗位考试试卷及答案
- 车险组长年终工作总结
- 电商售后客服主管述职报告
- 2025昆明市呈贡区城市投资集团有限公司及下属子公司第一批招聘(12人)笔试考试参考试题及答案解析
- 上海证券有限责任公司校招职位笔试历年参考题库附带答案详解
- 保安员冬季安全知识培训课件
- 智慧园区项目合作协议书
- 遗体火化师招聘考核试卷及答案
- 2025年大学消防指挥专业题库- 火灾现场搜救与救援
- 2024-2025学年山东省聊城市临清市七年级(上)期末数学试卷(含答案)
- GB/T 10454-2025包装非危险货物用柔性中型散装容器
评论
0/150
提交评论