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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

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

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

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

Q&A

0回答

1036閲覧

Deep learningをSHAPで説明したい

haruharu00

総合スコア9

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

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

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

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

0グッド

0クリップ

投稿2020/07/06 04:02

前提・実現したいこと

アヤメの分類をDeep learinigで行い、SHAPを使って
特徴変数の影響度の説明をしようと思っています。

Explainerを実装中に以下のエラーメッセージが発生しました。

プログラミングをはじめて半年ほどで、
初の質問ですので記入不足等あったらすみません。

発生している問題・エラーメッセージ

--------------------------------------------------------------------------- ValueError Traceback (most recent call last) /usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py in assert_input_compatibility(self, inputs) 309 try: --> 310 K.is_keras_tensor(x) 311 except ValueError: 6 frames ValueError: Unexpectedly found an instance of type `<class 'numpy.ndarray'>`. Expected a symbolic tensor instance. During handling of the above exception, another exception occurred: ValueError Traceback (most recent call last) /usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py in assert_input_compatibility(self, inputs) 314 'Received type: ' + 315 str(type(x)) + '. Full input: ' + --> 316 str(inputs) + '. All inputs to the layer ' 317 'should be tensors.') 318 ValueError: Layer sequential_6 was called with an input that isn't a symbolic tensor. Received type: <class 'numpy.ndarray'>. Full input: [array([[-0.90068117, 0.55861082,…

該当のソースコード

python,keras

1#データセット読み込み 2from sklearn import datasets 3iris = datasets.load_iris() 4 5from sklearn.model_selection import train_test_split as split 6x_train, x_test, y_train, y_test = split(iris.data,iris.target,train_size=0.8,test_size=0.2) 7 8import numpy as np 9import pandas as pd 10 11 12iris_data=pd.DataFrame(iris.data) 13iris_label=pd.DataFrame(iris.target) 14 15from sklearn import preprocessing 16 17#mini-maxスケール変換 18minimax_scale=preprocessing.MinMaxScaler(feature_range=(0,1)) 19iris_data=minimax_scale.fit_transform(iris_data) 20 21#データの標準化 22scaler=preprocessing.StandardScaler() 23iris_data=scaler.fit_transform(iris_data) 24iris_data=pd.DataFrame(iris_data) 25 26import keras 27 28onehot_label=keras.utils.np_utils.to_categorical(iris_label.astype('int32'),3) 29 30X=iris_data 31Y=onehot_label 32 33X=np.asarray(X) 34Y=np.asarray(Y) 35 36print(X.shape) 37print(Y.shape) 38 39from sklearn.model_selection import train_test_split 40 41x_train,x_test,y_train,y_test=train_test_split(X,Y,test_size=0.2,train_size=0.8,shuffle=True) 42 43from keras.models import Sequential 44from keras.layers.core import Dense, Activation 45 46model=Sequential() 47 48model.add(Dense(16, input_shape=(4,))) 49model.add(Activation('relu')) 50 51model.add(Dense(3)) 52model.add(Activation('softmax')) 53 54model.compile(optimizer='adam', loss='categorical_crossentropy', 55 metrics=['accuracy']) 56 57hist=model.fit(x_train,y_train, 58 epochs=50, 59 batch_size=1, 60 verbose=1, 61 validation_data=(x_test,y_test)) 62 63#SHAPを用いた説明 64import shap 65 66explainer = shap.DeepExplainer(model,x_test)

試したこと

入力をSymbolic Tensorにしなければならない?ことは理解しました。
GradientExplainerにするとなぜかうまくいきました。

補足情報(FW/ツールのバージョンなど)

Google Colabでプログラミングをしています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問