会员中心 |  会员注册  |  兼职信息发布    浏览手机版!    超值满减    人工翻译    英语IT服务 贫困儿童资助 | 留言板 | 设为首页 | 加入收藏  繁體中文
当前位置:首页 > 机翻技术 > 识别技术 > 正文

示例:树回归与标准回归的比较

发布时间: 2023-03-23 09:25:19   作者:etogether.net   来源: 网络   浏览次数:


图2.png


骑自行车的速度

图1 人们骑自行车的速度和他们智商之间的关系数据。该数据用于比较树回归模型和普通的线性回归模型



下面将为图1 的数据构建三个模型。首先,将程序清单1中的代码保存为regTrees.py,然后在Python提示符下输人以下命令:


>>> reload(regTrees)


接下来,利用该数据创建一棵回归树:


>>> trainMat=mat (regTrees.loadDataSet('bikeSpeedVsIq_train.txt'))

>>> testMat=mat (regTrees.loadDataSet('bikeSpeedVsIq_test.txt'))

>>> myTree=regTrees.createTree(trainMat, ops=(1/20))

>>> YHat = regTrees.createForeCast (myTree, testMat [:,0])

>>> corrcoef (yHat, testMat [:,1],rowvar=0) [0,1]

0.96408523182221306


同样地,再创建一棵模型树:


>>> myTree=regTrees.createTree(trainMat, regTrees.modelLeaf, regTrees.modelErr, (1,20))

>>> yHat = regTrees.createForeCast (myTree, testMat[:,0], regTrees.modelTreeEval)

>>> corrcoef (yHat, testMat[:,1],rowvar=0) [0,1]

0.9760412191380623


我们知道,R²值越接近1.0越好,所以从上面的结果可以看出,这里模型树的结果比回归树好。下面再看看标准的线性回归效果如何,这里无须导入任何代码,实现一个线性方程求解函数linearsolve():


>>> ws,X,Y=regTrees.linearSolve (trainMat)

>>> WS

matrix([[ 37.58916794],

[ 6.18978355]])


为了得到测试集上所有的yHat预测值,在测试数据上循环执行:


>>> for i in range(shape(testMat) [0]):

……        yHàt [i]=testMat [i,0]*ws [1,0]+ws[0,0]

……

最后来看一下R²值:


>>> corrcoef (yHat, testMat [:,1],rowvar=0) [0,1]

0.94346842356747584


可以看到,该方法在R²值上的表现上不如上面两种树回归方法。所以,树回归方法在预测复杂数据时会比简单的线性模型更有效,相信读者对这个结论也不会感到意外。


责任编辑:admin


微信公众号

[上一页][1] [2] 【欢迎大家踊跃评论】
  • 上一篇:数据集的关联分析
  • 下一篇:连续和离散型特征的树的构建


  • 《译聚网》倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请30天内提供版权疑问、身份证明、版权证明、联系方式等发邮件至info@qiqee.net,我们将及时沟通与处理。


我来说两句
评论列表
已有 0 条评论(查看更多评论)