回答編集履歴

2

url追加

2022/09/23 01:38

投稿

jbpb0
jbpb0

スコア7653

test CHANGED
@@ -1,9 +1,18 @@
1
+ > ランダムフォレストなどの深層学習以外の方法であれば、どの特徴量が効いているのか数値で出力することが出来ます。
2
+
3
+ 「Permutation Importance」が類似の手法です
4
+
5
+ 参考
6
+ [AIを脱Black Box! XAI(Explainable Artificial Intelligence)を勉強する〜Permutation Importance〜](https://www.dskomei.com/entry/2019/08/29/234415)
7
+ [Kerasで作ったNNモデルにおける特徴量の重要度を出す(Permutation Importance)](https://qiita.com/Kuroakira/items/374f7e016ca9b6bf4003)
8
+
9
+  
1
10
  [skorch](https://skorch.readthedocs.io/en/stable/)
2
11
  を使うとpytorchをscikit-learnのように使うことができるので、
3
12
  [Pytorch の軽量ラッパー、skorch で回帰・分類を試してみた](https://zenn.dev/megane_otoko/articles/025_skorch_basic)
4
13
  で解説されてる
5
14
  [google colabのコード](https://colab.research.google.com/drive/1gYfyiVFujpK4OG1TJ3GIrD3vg2QS-PaE?usp=sharing)
6
- を使って、試してみました
15
+ を使って、「Permutation Importance」を算出できるか、試してみました
7
16
 
8
17
   
9
18
  コードの先頭に、下記を追加

1

変数SEED

2022/09/23 01:31

投稿

jbpb0
jbpb0

スコア7653

test CHANGED
@@ -17,7 +17,7 @@
17
17
  コードの「分類」と書かれてるところのすぐ上(「回帰」の最後)に、下記を追加
18
18
 
19
19
  ```python
20
- pi_net_regr = permutation_importance(net_regr, X_test, y_test, n_repeats=100, random_state=71)
20
+ pi_net_regr = permutation_importance(net_regr, X_test, y_test, n_repeats=100, random_state=SEED)
21
21
 
22
22
  boston_dataset = load_boston()
23
23
  pi_net_regr_df = pd.DataFrame({"importances_mean":pi_net_regr["importances_mean"], "importances_std":pi_net_regr["importances_std"]}, index=boston_dataset.feature_names)
@@ -31,7 +31,7 @@
31
31
  コードの末尾に、下記を追加
32
32
 
33
33
  ```python
34
- pi_net = permutation_importance(net, X_test, y_test, n_repeats=100, random_state=71)
34
+ pi_net = permutation_importance(net, X_test, y_test, n_repeats=100, random_state=SEED)
35
35
 
36
36
  iris_dataset = load_iris()
37
37
  pi_net_df = pd.DataFrame({"importances_mean":pi_net["importances_mean"], "importances_std":pi_net["importances_std"]}, index=iris_dataset.feature_names)