机器学习算法与Python实践(3)
来源:互联网 发布:网络书香讲坛 编辑:程序博客网 时间:2024/05/17 22:45
关于逐步回归的资料,查阅等等都比较的少,所以隔了一天才进行总结。
前向逐步回归算法
前向逐步回归算法属于一种贪心算法,即每一步都尽可能减少误差。一开始,所有的权重都设置为1,然后每一步所做的决策是对某个权重增加或减少一个很小的值。
观察每次循环得到的回归系数,一段时间后会出现系数达到饱和并在特定值之间来回震荡的情况,这是由于步长设置过大导致的。
当我们构建一个模型后,运行该算法找到重要的特征,这样就有可能及时停止对那些不重要特征(非常小,趋于零的回归系数)的收集。
看起来可能有点太抽象了,看下面的伪代码以及代码的例子就可以理解了。
伪代码如下:
数据标准化,使其分布满足0均值和单位方差每次迭代过程中: 设置当前最小误差lowestError为正无穷 对每个特称: 增大或减小: 改变一个系数得到一个新的w 计算新的w下的误差 如果当前误差w小雨最小误差lowestError,那么将wbest设置为w
Python代码如下:
### Front stage-wise Regression ###def rssError(yArr, yHatArr): return ((yArr - yHatArr) ** 2).sum()def regularize(xMat): # regularize by columns inMat = xMat.copy() inMeans = mean(inMat, 0) # calc mean then subtract it off inVar = var(inMat, 0) # calc variance of Xi then divide by it inMat = (inMat - inMeans) / inVar return inMatdef stageWise(xArr, yArr, step=0.01, numIt=100): xMat = mat(xArr) xMat = regularize(xMat) yMat = mat(yArr).T yMean = mean(yMat) yMat = yMat - yMean N, n = shape(xMat) returnMat = zeros((numIt, n)) ws = zeros((n, 1)) wsTest = ws.copy() weMax = ws.copy() for ii in range(numIt): print(ws.T) lowestErr = inf for jj in range(n): for sign in [-1, 1]: wsTest = ws.copy() wsTest[jj] += step * sign yTest = xMat * wsTest rssE = rssError(yMat.A, yTest.A) if rssE < lowestErr: lowestErr = rssE wsMax = wsTest ws = wsMax.copy() returnMat[ii, :] = ws.T return returnMat
看别人总结都是和岭回归等一起总结的,所以等到时候我会将这篇文章进行更新。
阅读全文
0 0
- 机器学习算法与Python实践(3)
- 机器学习算法与Python实践
- 机器学习算法与Python实践(1)
- 机器学习算法与Python实践(2)
- 机器学习算法与Python实践(4)
- 机器学习算法与Python实践(5)
- 机器学习算法与Python实践(6)
- 机器学习算法与Python实践(7)
- 机器学习算法与Python实践(8)
- 机器学习算法与Python实践(9)
- 机器学习算法与Python实践(10)
- 机器学习算法与Python实践(11)
- 机器学习算法与Python实践之支持向量机
- 机器学习算法与Python实践之支持向量机
- 机器学习算法与Python实践之支持向量机
- 机器学习算法和python实践
- Python机器学习实践与Kaggle实战
- 机器学习算法原理与编程实践
- 局势展望
- SpringMVC搭建
- 《HTTP权威指南》学习笔记(3)第3章HTTP报文(关键词:计算机网络/HTTP/HTTP报文)
- Link Cut Tree(动态树)
- 万能Interface实现Fragment之间的通讯
- 机器学习算法与Python实践(3)
- mysql文件类型概览-->错误日志文件
- 第三周 BN
- 安装CocoaPods详细过程
- shell下的公共模块封装
- 输出全部大于平均数的数
- javascript中垃圾收集机制和块级作用域的概率
- mysql搭建集群高可用的相关详解
- coursera-斯坦福-机器学习-吴恩达-第2周笔记