私は、次のような状況でKerasのデフォルトの動作をどのように解釈するかわからない午前:Kerasはマルチラベル分類をどのように扱いますか?
マイY(グランドトゥルース)はscikit学習のMultilabelBinarizer
()を使用して設定されました。
したがって、ランダムな例を与えるために、私のy
列の1つの行は、 [0,0,0,1,0,1,0,0,0,0,1]
のようにワンホットエンコードされています。
私は予測できるクラスが11個あり、複数のクラスが真実かもしれません。したがって、問題のマルチラベルの性質。この特定のサンプルには3つのラベルがあります。
私は非マルチラベル問題(通常のビジネス)と同じようにモデルをトレーニングしますが、エラーは発生しません。それは私のy_train
に遭遇し、y_train
の各行に複数の「1」が存在する意味、それは「マルチ」ワンホットエンコードされていることを見ているとき
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD
model = Sequential()
model.add(Dense(5000, activation='relu', input_dim=X_train.shape[1]))
model.add(Dropout(0.1))
model.add(Dense(600, activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(y_train.shape[1], activation='softmax'))
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
optimizer=sgd,
metrics=['accuracy',])
model.fit(X_train, y_train,epochs=5,batch_size=2000)
score = model.evaluate(X_test, y_test, batch_size=2000)
score
はKerasは何をしますか?基本的に、Kerasはマルチラベル分類を自動的に実行しますか?スコアメトリックの解釈の違いは何ですか?
おかげで、あなたは多くのバイナリ分類問題に私のマルチラベル問題を分解するために言っていますか? Kerasは私にマルチラベル分類タスクを与えていることをどのように知っていますか? – user798719
はい、そうです。 Kerasは本当に知っている必要はありません。 'sigmoid'と' binary_crossentropy'を使うことで、ラベルは個別に改良されます。マルチラベルタスクの場合はそうですね。 – frankyjuang
1つのクラスをどのように取得しますか? –