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

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

新規登録して質問してみよう
ただいま回答率
86.12%
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

機械学習

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

深層学習を使用した場合の特徴量解析

uer03108
uer03108

総合スコア190

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

機械学習

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0リアクション

0クリップ

240閲覧

投稿2022/09/22 08:21

こんにちは。

深層学習を使用して、テーブルデータの解析を行っております。
クラス分類の解析になります。
NNのモデルは、簡単な全結合のモデルを使用しております。

お伺いしたいのですが、例えば、2値分類の問題で特徴量の解析を行いたいと思った場合、ラベルAとBのそれぞれで、特徴量の違いなどを見ればよいのでしょうか。
具体的には、それぞれの特徴量の分布、最小値・最大値、平均値、中央値について、有意差があるのかなど。
例えば、「カラム1は、ラベルAとBで分布に差が見られる。」とか?

(pytochでは、特徴量をテンソルに変換する際にラベルは除かれると思うので、特徴量の特定は難しいかもしれませんが、そこは何とか無理やり?)

何か勘違いなどありましたら、ご指摘願います。
宜しくお願い致します。

以下のような質問にはリアクションをつけましょう

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

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

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

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

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

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

適切な質問に修正を依頼しましょう。

TakaiY

2022/09/22 08:43

質問の意味がよくわかりません。 「見ればよい」とはどういうことですか?「有意差があるのかなど」とはどういう意味ですか? AB有意差があることがわかっているのであれば、機械学習にかけるまでもなく判定できるのでは?
uer03108

2022/09/22 08:45

例えば、ランダムフォレストなどの深層学習以外の方法であれば、どの特徴量が効いているのか数値で出力することが出来ます。 ですが、深層学習の場合は出来ないので、どの特徴量が効いているのかを自分で調べる必要があるのかなと思いました。 勘違いでしたら、すみません(汗
TakaiY

2022/09/22 08:54

「どの特徴量が判定に効いているのか知る方法はあるのか」というですよね。自分はくわしくないので回答できそうにありませんが、そういうことであれば質問を編集して、見に来たひとにちゃんと伝わるようにしたほうがいいですよ。
jbpb0

2022/09/22 10:27

> ランダムフォレストなどの深層学習以外の方法であれば、どの特徴量が効いているのか数値で出力することが出来ます。 「Permutation Importance」が類似の手法です https://www.dskomei.com/entry/2019/08/29/234415 kerasなら簡単に使えそう https://qiita.com/Kuroakira/items/374f7e016ca9b6bf4003 ですが、pytorchだと簡単に使える方法を知りません 難しい手法ではないので、自分でコード書いても、たいしたことないような気もします
uer03108

2022/09/22 13:23

kerasはあるんですね。 pytorchでも出来そうですね。 有難うございます。
jbpb0

2022/09/23 01:30 編集

「skorch」を使うとpytorchをscikit-learnのように使うことができるので、 https://zenn.dev/megane_otoko/articles/025_skorch_basic で解説されてるgoogle colabのコード https://colab.research.google.com/drive/1gYfyiVFujpK4OG1TJ3GIrD3vg2QS-PaE?usp=sharing を使って、試してみました コードの先頭に、下記を追加 import pandas as pd from sklearn.inspection import permutation_importance コードの「分類」と書かれてるところのすぐ上(「回帰」の最後)に、下記を追加 pi_net_regr = permutation_importance(net_regr, X_test, y_test, n_repeats=100, random_state=SEED) boston_dataset = load_boston() 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) display(pi_net_regr_df) pi_net_regr_df.sort_values("importances_mean").importances_mean.plot.barh() plt.show() コードの末尾に、下記を追加 pi_net = permutation_importance(net, X_test, y_test, n_repeats=100, random_state=SEED) iris_dataset = load_iris() pi_net_df = pd.DataFrame({"importances_mean":pi_net["importances_mean"], "importances_std":pi_net["importances_std"]}, index=iris_dataset.feature_names) display(pi_net_df) pi_net_df.sort_values("importances_mean").importances_mean.plot.barh() plt.show() 上記を全部行った後に、google colabのメニューの「ランタイム」→「すべてのセルを実行」をクリックしたら、「回帰」も「分類」も、それっぽいものが計算されてグラフが表示されました 上記の結果が正しいかどうかは分かりませんので、実際に同様なことをやる時には結果が分かってるデータを使って検証してください

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

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

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

機械学習

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。