質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.40%

  • Python 3.x

    10684questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • 機械学習

    1015questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

ランダムフォレストや勾配ブースティング回帰木の弱学習器の予測値を取得したい。

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 60

i113

score 5

前提・実現したいこと

python3でランダムフォレスト(scikit learn)や勾配ブースティング(LightGBM)を使って機械学習をしています。
ふと弱学習器の予測値から、予測の安定性や信頼度のようなものが評価できるのではないかと考えました(弱学習器同士の結果が類似しているほど安定している信頼できる?)。
そこで保存した学習器を読み出し、所定の特徴量を与えた時、最終的な予測値に加え各弱学習器の予測値も(できれば同時に)取得したいのですが、やり方がわかりません。また勾配ブースティングでは最後に線形結合する時の重みも取得したいです。
よろしくお願いします。

試したこと、該当のソースコード

ここ(https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestRegressor.html)を見て、もしかしてX_leavesがそうかなと思い確認してみましたが、インデックスが返ってきました。

loaded_forest = pickle.load(open('/home/username/jupyter_lab/RandomForest.pickle', 'rb'))
print(loaded_forest.apply(X_test.loc[0:1]))
[[164986 165035 322799 294009  16770 179009  17417  17570 267422 262120
  276773 261463 151737 141899  22639 182916 234047 192829 160043  69046
   31185 268680  88700  16477  71713 145532 174898 167395  66887 342845
  167554 162721  17607 334158 303226 196298  24452 340699 143654 311956
  249828   5351 140397 162778  19699 289262 180608 165309 287408  79345
  169618 263374 144529 258547 144835  17241  16948  77787 153924 233308
   16180  13638 152615  17418 142858 321507 155943 258476 281854 248653
   24214 169823 182079 129955 258050  17797 244047  17660 230253  17557
  226559 161047  53980 270496   2847 177724 154010  22606  20485 105930
   23972 182382  24513  77768 153548 225014  86759  16487  93654  81506
   23587  41978 208339 259430 316331 153458 255267 239590  16842 243271
  338586 265260   5620 164392 171739  25784 249024 228563 176890  17962
  293084  67501  17793  17367 174240 252836  15688  86671 221525 153041
   18027 333965  23860 196570 162616 156373  52649  16177 236184 263179
   16604 293171 161337  82485  23605 232953  19767 142583 215073 162921
  127983 319221  16037 228787 137056 193238 146904  23899  13813  81683
  254528 138924 151020  17773  17211   7231 197964 243739 290699 232038
   17248 163653 244810  12830  60169  17519 176658 296198  47307 137605
  156200  54149  18026 318979  16755 147532 152606  25603 253396  17901
  134783 142273 200322 204959 245813  17997 300598  33147]
 [180259 202376 211641 178563  53081 207588  56127 119056  67414 122670
   89622  52573  24603  60272 178043 215044  53233 180614  55106 204278
  183747  84694  26752  57087  72730 189311  60100  71342 120713 212511
   71901 124900 182783  35989  64158 178558 188699  58469  65323 208984
   65808  59369  58076 190798  59789  58501 212860  29924  29235  59802
   88702  59516  62561  63999 207186  60208 214772  57233  62941  59164
   88717 212756  60969 330240  62558 213497  55322 190905 182133 200560
   55434 206916 219993 175785 203180  82894  61737 184435 177479  54013
  254895  63491  66330 110532  61687 235819  22073 276457 196393 235443
   55439  91073 241622  60084 231018  53952  37314  61916  51538 181667
  200784 125877 280231 130884  59337 218996  65075  64376  55666  63875
  131563  58874  56735  56417 134118  66073  57836  59957 132082  91737
   58107 193629 195826 196906  57707  64068  60427  25038 182032  54306
  188468  29851 176484 205762 188391  66321 177549  59446  55066  64203
   89598  58023  64039 221003  50219  64324 137099  53110 310720  62388
  192167 203279 218156  58740 181988 181772  55876 186988 197869  29142
  200268  51810  64500 177384  61942 202813 217625  60034  25621  64742
   74371 185031  59392 209334  63813  55962 213412 172458 116783 203783
   58366  61176 187893 181108  55848  62924  56092 193764  57833 218396
   52914  55872 296317 273842 159952  62653 216143  56807]]
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

applyメソッドでどうですか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/07/11 18:25

    ランダムフォレストはそれで合っています。勾配ブースティングはあとで確認しますので、しばしお待ち下さい

    キャンセル

  • 2019/07/12 13:51

    LighbGBMは実装的に厳しそうですね。取得できるものが少ないようです。

    キャンセル

  • 2019/07/16 18:55

    そうなのですか、残念です。
    どうもありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.40%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Python 3.x

    10684questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • 機械学習

    1015questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。