楼主: yohoowu
1595 1

[程序分享] R gbm package: 多元分類的預測值是怎麼算出來的? [推广有奖]

  • 0关注
  • 0粉丝

高中生

12%

还不是VIP/贵宾

-

威望
0
论坛币
369 个
通用积分
1.9592
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
150 点
帖子
17
精华
0
在线时间
12 小时
注册时间
2017-7-18
最后登录
2017-10-26

楼主
yohoowu 在职认证  发表于 2017-7-24 22:53:48 |只看作者 |坛友微信交流群|倒序 |AI写论文
5论坛币
我在測試 gbm model ,預測值不知道是怎麼計算出來的,想請問有沒有高人可以解釋下?
我的範例程式如下:
  1. library(gbm);library(data.table)
  2. dt2 = iris
  3. gbm2 = gbm(Species~., data=dt2, n.trees=2, shrinkage=1, bag.frac=1, interaction.depth = 2)
  4. p2 = predict(gbm2, newdata=dt2, n.trees=2)
复制代码
p2 的結果
  1.         setosa versicolor virginica
  2. [1,] 4.022788 -0.9711465 -2.309915
  3. [2,] 4.022788 -0.9711465 -2.309915
  4. [3,] 4.022788 -0.9711465 -2.309915
  5. [4,] 4.022788 -0.9711465 -2.309915
  6. [5,] 4.022788 -0.9711465 -2.309915
  7. [6,] 4.022788 -0.9711465 -2.309915
  8. [7,] 4.022788 -0.9711465 -2.309915
  9. [8,] 4.022788 -0.9711465 -2.309915
  10. [9,] 4.022788 -0.9711465 -2.309915
  11. [10,] 4.022788 -0.9711465 -2.309915
  12. ...
复制代码
想請問這些預測值是怎麼計算的?! 預測值不是透過分類器針對殘差進行迭代,產生許多分類器,最後再進行各個分類器的預測值加總嗎?那應該每筆預測資料會只有一個值,怎麼會有三個? (如有說明錯誤,還請指教)

关键词:package Pack Age gbm PAC
沙发
yohoowu 在职认证  发表于 2017-7-25 23:06:43 |只看作者 |坛友微信交流群
沒人回答 我只好自己回答了
我找到一個參考網頁,說的滿清楚的
https://www.zhihu.com/question/48898564

簡單的說,就是"每一個"類別"每一次"迭代就會產生一棵分類樹
也就是,如果以上面的例子而言,有三個類別且 n.tree = 2(迭代兩次) 總共就會有六棵樹
而其中,第一棵樹以及第四棵樹是針對第一個類別
至於樹的結構,可以使用 "pretty.gbm.tree" 作呈現 (範例: tree1 <- pretty.gbm.tree(gbm2, 1))
解析樹的結購可以參考 : https://stackoverflow.com/questions/31296541/understanding-tree-structure-in-r-gbm-package

透過每棵樹的結果,將各類別的數值進行加總
例如: 一筆預測資料,經過六棵樹,產生六個數值,其中第一、四棵樹加總再加上初始值(initF)就是第一個類別的數值,而第二、五棵樹加總就是第二個類別,以此類推
所以一筆預測資料針對三個類別會有三個數值

使用道具

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

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

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

GMT+8, 2024-5-15 06:47