机器学习实战_08预测数值型数据-回归
来源:互联网 发布:pls tower 软件 购买 编辑:程序博客网 时间:2024/05/21 14:46
回归的目的是预测数值型的目标值。
最直接的办法是依据输入写出一个目标值的计算公式。
1. 标准回归
# 读取文件def loadDataSet(filename): numFeat = len(open(filename).readline().split('\t'))-1 dataMat =[] labelMat=[] fr = open(filename) for line in fr.readlines(): lineArr = [] curLine =line.strip().split('\t') for i in range(numFeat): lineArr.append(float(curLine[i])) dataMat.append(lineArr) labelMat.append(float(curLine[-1])) return dataMat,labelMat# 求wdef standReares(xArr,yArr): xMat = mat(xArr);yMat=mat(yArr).T xTx = xMat.T*xMat if linalg.det(xTx) ==0.0: print "No answer" return ws = xTx.I*(xMat.T*yMat) return ws
2. 局部加权线性回归
# 读入并创建所需矩阵,之后创建对角权重矩阵weights,阶数等于样本个数#随着样本点与待预测点距离的增加,权重以指数级衰减。k控制衰减的速度def lwlr(testPoint,xArr,yArr,k=1.0): xMat=mat(xArr);yMat=mat(yArr).T; m=shape(xMat)[0] weights=mat(eye((m))) for j in range(m): diffMat=testPoint-xMat[j,:] weights[j,j]=exp(diffMat*diffMat.T/(-2.0*k**2)) xTx =xMat.T * (weights * xMat) if linalg.det(xTx) ==0.0: print "No answer" return ws = xTx.I*(xMat.T*(weights*yMat)) return testPoint*wsdef lwlrTest(testArr,xArr,yArr,k=1.0): m=shape(testArr)[0] yHat=zeros(m) for i in range(m): yHat[i]=lwlr(testArr[i],xArr,yArr,k) return yHat
3. 岭回归
当样本个数小于特征个数时,采用岭回归
公式为:
def ridgeRegres(xMat,yMat,lam=0.2): xTx=xMat.T*xMat denom=xTx+eye(shape(xMat)[1])*lam if linalg.det(denom) == 0.0: print "No answer" return ws = denom.I * (xMat.T * yMat) return wsdef ridgeTest(xArr,yArr):# 对特征进行标准化处理:所有特征减去各自的均值并处以方差 xMat = mat(xArr);yMat=mat(yArr).T yMean =mean(yMat,0) yMat=yMat-yMean xMeans=mean(xMat,0) # var 取0求样本方差的无偏估计值 xVar = var(xMat,0) xMat =(xMat-xMeans)/xVar numTeatPts=30 wMat=zeros((numTeatPts,shape(xMat)[1])) for i in range(numTeatPts): ws = ridgeRegres(xMat,yMat,exp(i-10)) wMat[i,:]=ws.T return wMat
4. Lasso缩减
在增加如下约束时,普通的最小二乘法回归会得到与岭回归一样的公式:
与岭回归类似,lasso缩减方法也对回归系数做了限定,对应的约束条件为:
在足够小的时候,一些系数会因此被迫缩减到0。
5.前向逐步回归
逐步回归是一种变量选择的方法。
随机梯度上升(下降)是一种拟合模型的数值优化方法。
逐步回归试图解决“放哪些变量在模型里最好”这个问题。
随机梯度上升试图解决“确定了哪些变量在模型里,如何求得参数值”这个问题。
阅读全文
0 0
- 机器学习实战_08预测数值型数据-回归
- 机器学习实战——预测数值型数据:回归
- 《机器学习实战》预测数值型数据-回归(Regression)
- 《机器学习实战》预测数值型数据-回归(Regression)
- 机器学习实战-预测数值型数据:回归
- 机器学习实战笔记-预测数值型数据:回归
- 机器学习实战-8预测数值型数据-回归
- 机器学习实战学习笔记(七)预测数值型数据—回归(python3实现)
- 机器学习实战——第八章:用回归预测数值型数据
- 《机器学习实战》笔记之八——预测数值型数据:回归
- 机器学习实战 第八章 预测数值型数据:回归(Regression)
- 代码注释:机器学习实战第8章 预测数值型数据:回归
- 【机器学习实战】第8章 预测数值型数据:回归
- 【机器学习实战】第8章 预测数值型数据:回归(Regression)
- 机器学习实战代码详解(八)预测数值型数据:回归
- 机器学习之预测数值型数据: 回归
- 机器学习(五):回归方法——预测数值型数据
- 预测数值型数据:回归
- mysql数据库的优化整理之数据库结构优化
- Hibernate基础学习(二)—Hibernate相关API介绍
- Java实现更改文件路径
- 2000-一维整形数组
- Android在网页中打开app并传递数据
- 机器学习实战_08预测数值型数据-回归
- 2017 多校训练第六场 HDU 6098 Inversion
- virtualbox中ubuntu和windows共享文件夹设置,包括自动挂载,修改编辑保存/etc/fstab文件详细过程
- windows多线程详解
- 卫星结构分析
- Java——Comparable和Comparator(一)
- 泛型知多少?
- vue.js学习笔记-5
- ListView实现GridView的效果