Plotまとめ参考はじめにこんにちは、データサイエンティストの森下です。本記事では所謂ブラックボックスモデルを解釈する方法を紹介したいと思います。RF/GBDT/NNなどの機械学習モデルは古典的な線形回帰モデルよりも高い予測精度が得られる一方で、インプットとアウトプットの関係がよくわからないという解釈性の問題を抱えています。この予測精度と解釈性のトレードオフでどちらに重点を置くかは解くべきタスクによって変わってくると思いますが、たとえばTVISIONでのデータ分析はクライアントの意思決定に繋げる必要があり、解釈性に重きを置いていることが多いです。いえ機械学習モデルの高い予測精度は惜しく、悩ましかったのですが、学習アルゴリズムによらずモデルに解釈性を与えられる手法が注目され始めました。Expectation)を用いて所謂ブラックボックスモデルを解釈する方法を紹介します。モデルの学習まずはパッケージを読み込みます。Forestでダイヤの価格を予測するモデルを作ります。tidymodelsの使い方は記事をご覧下さい。変数重要度モデルの解釈において最も重要なのは、どの変数がアウトプットに強く影響し、どの変数は影響しないのかを特定すること、つまり変数重要度を見ることだと思います。重要な変数を見定めて施策を打つことでアウトプットをより効率よく改善できる可能性が高まりますし*1、ありえない変数の重要度が高く出ていればデータやモデルが間違っていることに気づけるかもしれません。tree系のアルゴリズムだとSplit(分割の回数)やGain(分割したときの誤差の減少量)などで変数重要度を定義することもできますが、ここではアルゴリズムに依存しない変数重要度であるPermutationベースのものを紹介します。Permutationベースの変数重要度のコンセプトは極めて直感的で、「ある変数の情報を壊した時にモデルの予測精度がすごく落ちるならそれは大事な変数だ」というものです。今回のモデルでcaratの変数重要度を見たいとします。訓練データを使って学習済みモデルを用意し、テストデータに対する予測精度を出します。テストデータのcarat列の値をシャッフルしますし、シャッフル済みテストデータを使って同様に予測を行います。2つの予測精度を比較し、予測精度の減少度合いを変数重要度とします。carat列のシャッフルによって、もしcaratが重要な変数ならモデルは的はずれな予測をするようになりますし、逆に重要でないなら特に影響は出ないはずで、これはある意味においての変数の重要度を捉えらていると思います。この手法はあくまで予測の際に用いるデータをシャッフルしていて、学習をやり直しているわけではないため、計算が軽いことも利点です。実際にPermutationベースの変数重要度を計算してみましょう。パッケージはvipを使います。手っ取り早い方法はvip()関数を使った可視化です(グラフを自分で細かくいじりたい場合はvi()での計算結果を自分で可視化します)。caratの変数重要度がその他の変数と比べてダントツであることが見て取れます。Plot各変数の重要度がわかったら、次に行うべきは重要な変数とアウトカムの関係を見ることだと思います。一般にブラックボックスモデルにおいてインプットとアウトカムの関係は非常に複雑で、可視化することは困難です。Plot(PDP)があります。PDPは興味のある変数以外の影響を周辺化して消してしまうことで、インプットとアウトカムの関係を単純化しようというものです。\end{align}で推定します。具体的には以下のようなことをやっています。よって違う場合に有効となります。それでは、特に重要だった変数caratについて実際にPDPを作成してみましょう。パッケージはpdpを使います。Plotの元となるデータを計算できます。細部にこだわらなければautoplot()で可視化するのが一番手っ取り早いです。赤い線がPDP、黒い線がICEになります。caratがlog(price)に与える影響が徐々に逓減していく様子が見て取れます。特徴量に明示的な変換を施さなくても非線形の関係を捉えることができるのがRF+PDPの強力な点かと思います。value、LIMEなどがあり、次回以降に紹介できればと思っています。Plotでブラックボックスモデルを解釈するTweet関連記事2019-01-04purrrとbroomで複数の回帰モデルを効率的に管理するはじめまして。データサイエンティストの森下です。TVISIONで...2018-06-15喧嘩を生まないSQLコーディング規約の作り方こんにちは。INSIGHTSが運営する技術ブログです。Pipelineのハマりポイント月別アーカイブ注目記事スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。