楼主: wuchm
6369 8

[问答] 【求助】决策树中怎么计算拟合精度(R平方) [推广有奖]

  • 6关注
  • 1粉丝

博士生

53%

还不是VIP/贵宾

-

威望
0
论坛币
2395 个
通用积分
4.5100
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
5151 点
帖子
230
精华
0
在线时间
236 小时
注册时间
2007-4-24
最后登录
2023-10-5

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
决策树中怎么计算拟合精度(R平方),类似于eviews软件对模型拟合的评价指标,反映模型的拟合效果。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R平方 决策树 EViews软件 EVIEWS Eview 模型 软件

沙发
jz.mraz 在职认证  发表于 2015-3-23 13:50:04 |只看作者 |坛友微信交流群
随机森林有一个pseudo r-squred:

r-pseudo = 1 - mse / var(y)

mse的计算就是1 / n * sum(yhat -y )^2
参见http://en.wikipedia.org/wiki/Mean_squared_error

使用道具

藤椅
wuchm 发表于 2015-3-23 15:10:05 |只看作者 |坛友微信交流群
jz.mraz 发表于 2015-3-23 13:50
随机森林有一个pseudo r-squred:

r-pseudo = 1 - mse / var(y)
没明白哦,可否写个完整程序呢,将R平方添加到图中?

还有2个问题:
1、决策树的图像展示结果为“139+e3”这种格式,怎么改成正常数字格式呢?
2、决策树呈现结果里面,可以加上:计数、均值、标准差、logworth、差值,显示完整的拟合结果?

使用道具

板凳
jz.mraz 在职认证  发表于 2015-3-23 16:34:40 |只看作者 |坛友微信交流群
wuchm 发表于 2015-3-23 15:10
没明白哦,可否写个完整程序呢,将R平方添加到图中?

还有2个问题:
不好意思啊, 仔细一看我回答的是随机森林的.
一下子脑子抽住了.

总体上市很相似的。决策树的R-squared这么算:
(以下计算基于test set)
首先计算 SST = sum( (yi - ybar) ^ 2)
然后计算 每个叶节点k上的 Sk = sum( (yi - ybar) ^ 2), 把所有的Sk直接求和, 得到SSE
然后Rsquared就是1 - SSE / SST

我不知道你的数据形式是怎样的, 所以不知道怎么写啊。
其次,图像总会是可以改的啊。再不行可以根据结果自己写一个画图脚本嘛
但是你原来的图像是怎样的,最后的图像又是怎样的呢?
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

报纸
wuchm 发表于 2015-3-23 22:00:48 |只看作者 |坛友微信交流群
jz.mraz 发表于 2015-3-23 16:34
不好意思啊, 仔细一看我回答的是随机森林的.
一下子脑子抽住了.
比如有下面数据样本,研究其他三个变量对贷款总额度的决策树分支,能否写个完整程序呢?
拜托!!

行业        公司利润        信用积分        贷款总额度
A        5826        1471        20330
A        9126        815        46793
B        20424        431        60380

使用道具

地板
jz.mraz 在职认证  发表于 2015-3-24 10:38:00 |只看作者 |坛友微信交流群
wuchm 发表于 2015-3-23 22:00
比如有下面数据样本,研究其他三个变量对贷款总额度的决策树分支,能否写个完整程序呢?
拜托!!
  1. library(tree)
  2. data(cpus, package="MASS")
  3. fit <- tree(log10(perf) ~ syct+mmin+mmax+cach+chmin+chmax, cpus)

  4. rsq = function(newdata, obj, y = NULL){
  5.         if ( is.null( y ))        y = predict(obj, newdata)
  6.         sst = sum( (y - mean(y))^2 )
  7.         obj\\$frame\\$yval = as.numeric( row.names(obj\\$frame) )
  8.         leaf = predict(obj, newdata)
  9.         sse = sum( unlist( tapply(y, leaf, function(x) sum( (x - mean(x))^2 ))))
  10.         1 - sse / sst
  11. }

  12. rsq(cpus, fit, y=cpus[, 8])
复制代码
你的数据太小了。 看这个。
话说某开发决策树算法的元老说这个r-squred和pearson r半毛钱关系都没有。容易导致对现实的乐观
机器学习中用经典统计中的统计量是否实用、怎么算、怎么用本身呢就是一个疑问。

使用道具

7
jz.mraz 在职认证  发表于 2015-3-24 10:38:06 |只看作者 |坛友微信交流群
wuchm 发表于 2015-3-23 22:00
比如有下面数据样本,研究其他三个变量对贷款总额度的决策树分支,能否写个完整程序呢?
拜托!!
  1. library(tree)
  2. data(cpus, package="MASS")
  3. fit <- tree(log10(perf) ~ syct+mmin+mmax+cach+chmin+chmax, cpus)

  4. rsq = function(newdata, obj, y = NULL){
  5.         if ( is.null( y ))        y = predict(obj, newdata)
  6.         sst = sum( (y - mean(y))^2 )
  7.         obj\$frame\$yval = as.numeric( row.names(obj\$frame) )
  8.         leaf = predict(obj, newdata)
  9.         sse = sum( unlist( tapply(y, leaf, function(x) sum( (x - mean(x))^2 ))))
  10.         1 - sse / sst
  11. }

  12. rsq(cpus, fit, y=cpus[, 8])
复制代码
你的数据太小了。 看这个。
话说某开发决策树算法的元老说这个r-squred和pearson r半毛钱关系都没有。容易导致对现实的乐观
机器学习中用经典统计中的统计量是否实用、怎么算、怎么用本身呢就是一个疑问。

使用道具

8
wuchm 发表于 2015-3-24 12:33:05 |只看作者 |坛友微信交流群
jz.mraz 发表于 2015-3-24 10:38
你的数据太小了。 看这个。
话说某开发决策树算法的元老说这个r-squred和pearson r半毛钱关系都没有。容 ...
我拿你的程序跑了一遍,rsq函数好像有问题哦

tree和rpart两个有什么区别呢?

使用道具

9
jz.mraz 在职认证  发表于 2015-3-24 13:27:05 |只看作者 |坛友微信交流群
wuchm 发表于 2015-3-24 12:33
我拿你的程序跑了一遍,rsq函数好像有问题哦

tree和rpart两个有什么区别呢?
两个都是做决策树的. 你可以用rpart啊. 话说我用tree只是因为它里面的默认例子是regression的.  我都改这个code好几次了. code我跑过是没问题的 主要是 美元符号前面的斜杠. 去掉斜杠. 这个有时候需要斜杠有时候不需要所以我就不知道贴上来的时候该不该打斜杠转义了. 不打的话有时候会乱码

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-17 13:55