回答編集履歴
2
url追加
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
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=
|
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=
|
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)
|