2017-05-17 4 views
0

私はMLに新しく、ANNを使用する練習として単純なこんにちは世界問題を考えています。ここに問題がある、私は英語名とそれに対応する性別で設定したトレーニングデータを持っていると言う:ニューラルネットワーク入力のために1つの単語をベクトルに変換する方法

ALEX,M 
BONNIE,F 
CARLO,F 
DAVID,M 
EDDY,M 
... 

私は名前の性別を予測するモデルを構築したいと思います。 ANNへの入力はベクトルの形式でなければならないので、名前をデータセット内の最長の名前と同じ数のベクトル(つまり10)に変換し、A = 1、B = 2とすることを考えています、...、Z = 26、およびヌル= -1をベクトルに加えます。例えば

ALEX will be [1, 12, 5, 24, -1, -1, -1, -1, -1, -1] 

出力層は、男性または女性のいずれかを表す{1,0}であろう。

私には非常に奇妙な音です。このようにANNに1つの単語を入力するのは良い方法ですか?

答えて

1

ワンホットエンコードを使用します。これは入力サイズが大きいことを意味しますが、動作することが証明されています。 A=1, B=2, Z=26を使用すると、BがAよりZに近いという印象をネットワークに与え、関数をマップするには多くの隠れノードが必要です。ワンホットエンコーディングで

  • A:[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
  • B:[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
  • Z:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
  • なし:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

だから、文字当たり26個の入力を必要とします。

+1

ありがとうThomas。ワンホット入力エンコーディングを使用することで、精度を60%から85%に高めることができます。いい考えだ! – NeoNosliw

関連する問題