問題タブ [dalex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - RandomForestSRC パッケージを使用した Factor Variable Importance (VIMP): data.frame エラーを強制できません
皆さん、こんにちは。ご協力ありがとうございます。私はRに少し慣れていないので、これが些細な質問または不適切な質問である場合は申し訳ありません。
TL;DR: RandomForestSRC に組み込まれたランダム フォレスト モデルを使用して因子変数の変数重要度 (VIM) を決定しようとしていますが、これはそのパッケージの組み込み機能ではありません。LIME と DALEX の両方のパッケージを使用すると、同じエラーが発生します: cannot coerce class 'c("rfsrc, "predict", "class")' to a data.frame
. このエラーを解決するための支援、または別のアプローチをいただければ幸いです。
RandomForestSRC パッケージを使用して、R で構築したランダム フォレスト モデルがあります。モデルはうまく機能しているようです。トレーニングとテストはうまくいき、必要な予測出力が得られ、結果は期待どおりに見えます。残念ながら、要件の 1 つは、連続変数と因子変数の両方について、モデルがどのように結論に達したか (たとえば、出力の一部として変数の重要度も含める必要がある) を示すことができる必要があるということです。
これは RandomForestSRC パッケージに組み込まれている機能ではないようです。そのため、LIME と DALEX の両方のパッケージを調べました。どちらも既存の RF モデルから VIM を分離できるはずです。残念ながら、どちらも RFSRC パッケージをネイティブでサポートしていません。つまり、このビネットで推奨されているように、予測関数を自分で組み込む必要がありました: https://uc-r.github.io/dalex
残念ながら、モデルの VIM セクションを (LIME と DALEX の両方で) 実行すると、予測された出力と、その出力を作成したモデルの両方を渡すように求められます。そうすると、上記のpredict_model
関数でエラーが発生します。
そして、... もちろん、それはできません。モデル自体をデータ フレームに変換しようとしています。残念ながら、R がそのエラーを表示する理由は理解できたと思いますが、それは私が自分で理解できた範囲です。
さらに、私が RandomForestSRC パッケージを使用している理由は 2 つあります。因子変数の数に制限がないことと、不均衡なデータを処理できることです。私は医療データを扱っているので、これらの両方が必要です (たとえば、1 つのデータ変数にエンコードできる医療コードは最大 100,000 種類あり、「これを持っていない人」の比率は-状態」対「この状態を持っている人」は、しばしば100対1です)。ただし、これらの問題を処理し、VIM 機能が組み込まれている (または DALEX / LIME と統合されている) 代替パッケージの提案があれば、それも素晴らしいでしょう。
お世話になりました皆様、誠にありがとうございました!
mlr3 - dalex パッケージについて少し混乱
こんにちは、mlr3 チームです。
mlr3 本で提供されている dalex パッケージについて質問があります。具体的にはこちら
前もって感謝します
python - logit と sklearn パイプラインの 1 つのホット エンコーディング
Python でDalexパッケージを使用して、バイナリ ロジット モデルの特定の特性を視覚化しようとしています。
ここのサンプルブックからコードの一部 (5 番目のコードセル全体) をコピーしました が、結果がどのように解釈されるべきかについてはよくわかりません...
を使用して作成した私の基本的なロジット モデルではstatsmodels
、多重共線性を回避するために、カテゴリごとに 1 つの参照レベル変数を手動で選択しました (これは、モデルからのすべての結果が参照レベルに関して解釈されることを意味します)。
しかし、上記のリンクからコードを使用すると (これもこの投稿の下にコピーされます)、最初に にパイプライン オブジェクトが作成されsklearn
、カテゴリ変数がワンホット エンコードされ、次にパイプライン オブジェクトがデータに適合され、説明するモデルとしての Dalex 説明者。
問題は、予測に対する変数のceteris paribusmodel_profile()
効果を示すグラフを出力する必要があるDalexのような関数を使用する場合、すべての値が1つのカテゴリ変数に含まれているように見えるため、結果を解釈する方法がわからないことですグラフに含まれています。
たとえば、モデルは、男性と女性の両方の平均予測に対する「性別」カテゴリ変数の影響を示しています...
これも「平均予測」という名前の横線を示していますが、「平均予測」とは何ですか? 男性を参考値として算出したのか、女性を基準に算出したのか。
結果が何を意味するのか、ここで本当に混乱しています...誰かこれを明確にしてもらえますか? 私が使おうとしている機能model_profile()
も手帳に書いてあります。ありがとうございました!
私がコピーしたコード: