2017-03-07 15 views
1

私は整数ターゲットクラスを持つデータを1から5の範囲で持っています.1つは最低値、5つは最高値です。この場合、それを回帰問題とみなし、出力層に1つのノードを置くべきですか?ケラで序数ラベルを扱うにはどうすればいいですか?

それを処理する私の方法である:第Iバイナリクラスマトリクス出力層の

labels = to_categorical(np.asarray(labels)) 

-2-にラベルを変換

1-、私は5つのノード

main_output = Dense(5, activation='sigmoid', name='main_output')(x) 
を有します

3コンパイル時に 'categorical_crossentropy with mean_squared_error'を使用する

model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['mean_squared_error'],loss_weights=[0.2]) 

また、誰でも私に教えてください:categorical_accuracyと 'mean_squared_error'の使用の違いは?

+0

序数では、回帰と分類の両方が意味を成すことができます。 AFAIK分類喪失は、「categorical_crossentropy」のように「距離」を考慮しない(すなわち、すべての分類ミスも同様に間違っている)ため、実際に利用可能なすべての情報を使用しない。 – Frank

答えて

-1

回帰と分類は大きく異なります。これを回帰課題として再現すると、地上の真理値が4のときの予測値の差が4ではなく3を予測した場合よりも高く評価されます。車、動物、人のような階級があれば、ランキングは気にしませんそれらのクラスの間。画像が人を示す場合、予測車は動物と同じように間違っています。

メトリクスは学習に全く影響しません。これは、モデルのパフォーマンスを示すために損失に加えて計算されるものです。ここでの正確さは理にかなっています。これは、主に私たちが気にするメトリックです。平均二乗誤差は、モデルがどれほどうまくいくかを示していません。 0.0015平均2乗誤差のようなものが得られればそれは良いと思うが、これがいかにうまくいくかを視覚化するのは難しい。対照的に、精度を使用し、例えば95%の精度を達成することは意味がある。

最後に、最終層に確率分布を得るために、最終出力としてsigmoidの代わりにsoftmaxを使用してください。 Softmaxは、合計1のクラスごとにパーセンテージを出力します。次に、クロスエントロピーは、ネットワーク出力の確率分布と地上の真理の差を計算します。

+0

ありがとうThomas Pinetz 私は予測値と観測値の差を求めようとしているので、回帰問題は間違いありません。 次の変更により、NNが回帰に適していますか? 1- \t to_categorical()の使用なし 2- \t出力レイヤーには、ノードが1つあり、アクティブ化されていません。 3- \tそして、損失は 'mean_squared_error' –

+0

平均二乗誤差はこの場合意味をなさず、H.H.Hは順序尺度を使用するためです。 – Frank

関連する問題