版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械工程师面试题库及参考解答
- 工地杂工合同范本
- 喝酒合同协议书
- 学徒违约合同范本
- 工资保密写协议书
- 外贸技术协议书
- 带期限的合同范本
- 合拼退位协议书
- 奶茶授权合同范本
- 工伤认定前协议书
- 2025秋四年级上册劳动技术期末测试卷(人教版)及答案(三套)
- 2025年应急物资准备安全培训试卷及答案:物资管理人员应急物资使用测试
- 电商售后客服主管述职报告
- 2025昆明市呈贡区城市投资集团有限公司及下属子公司第一批招聘(12人)笔试考试参考试题及答案解析
- 受控文件管理流程
- GB/T 30341-2025机动车驾驶员培训教练场技术要求
- 2025年黑龙江省哈尔滨市中考数学真题含解析
- 2026年湖南现代物流职业技术学院单招职业技能考试题库附答案
- 河北省2025年职业院校嵌入式系统应用开发赛项(高职组)技能大赛参考试题库(含答案)
- 2025译林版新教材初中英语八年级上册单词表(复习必背)
- 企业微信基础知识培训
评论
0/150
提交评论