2

私は単純なニューラルネットワーク(Python、Theano)を作成して、さまざまな店舗の選択からの消費履歴に基づいて人の年齢を推定しました。残念ながら、それは特に正確ではありません。年齢ニューラルネットワーク序数分類

正確性は、ネットワークが通常の知識を持っていないという事実によって損なわれる可能性があります。ネットワークの場合、年齢区分には関係がありません。現在、softmax出力層から最も高い確率で年齢を選択しています。

出力分類を各年齢の重み付き確率の平均値に変更することを検討しました。 (年齢:10:20%、年齢20:20%、30歳:60%)

Rather than output: Age 30 (Highest probability) 
Weighted Average: Age 24 (10*0.2+20*0.2+30*0.6 weighted average) 

この溶液は、サブ最適感じ

例えば、年齢確率を考えます。ニューラルネットワークに序数の分類を実装する方が良いか、実装できる優れた機械学習方法がありますか? (logistic regression)

+1

[このペーパー](https://web.missouri.edu/~zwyw6/files/rank.pdf)をご覧ください。 NNetsを使用して順序回帰を設定する方法について説明します。 – gobrewers14

+0

このリンクは残念ながらうまくいかず、大学のアクセス権と関係があるかどうかはわかりません。あなたは代わりにそれの名前を持っていますか? –

答えて

3

この問題は前のKaggle competitionにありました(このスレッドは、コメントで述べた論文を参照しています)。

アイデアは、あなたが、あなたはK-1のクラスにそれらをエンコードすることができ、それらをコードし、ソフトマックス目的関数を使用して0 、代わりのワンホット5の年齢層を、持っていたと言うことですシグモイドの目的を使用してください。例として、エンコードは

[0] -> [0, 0, 0, 0] 
[1] -> [1, 0, 0, 0] 
[2] -> [1, 1, 0, 0] 
[3] -> [1, 1, 1, 0] 
[4] -> [1, 1, 1, 1] 

となります。その後、ネットで順序が学習されます。お役に立てれば。