• ベストアンサー
  • 困ってます

ニューラルネットワークでデータを正規化するには?

  • 質問No.4244732
  • 閲覧数2672
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 84% (27/32)

こんにちは、今ニューラルネットワークをプログラミングしているのですが、データを正規化しようと思っています

たとえば教師データの入力が年齢と身長、出力が体重のデータがあるとします

年齢  身長  目的変数:体重
24    150 |  65(kg)
24    172 |  73(kg)

という年齢が同じデータがある場合
正規化するにはどうればいいでしょうか?

正規化は
正規化後の値 = (正規化前の値 - 最小値) / 最大値 - 最小値
で出すと書いてあったのですが、年齢は最小値と最大値が同じ 24 しかありませんよね、この場合はどうすればいいのでしょうか?

またついでにこの様な最小値 = 最大値の正規化されたデータを元に戻すにはどうすればいいのでしょうか?(出力層のシグモイド関数の計算結果を元のデータの単位に戻したいんです)

わかりにくかったらすいません、ご存じの方よろしくお願いします。

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 68% (13/19)

 今晩は。
 私もニューラルネットの研究をしています。

一つ目の回答
 この場合教師データの入力としての価値が年齢の項目にはありません。したがって二つの方法が考えられます。

1.年齢は入力しない。
2.適当な最大値、最小値を自分で決定して正規化する。

2の方法はつまり好きな1~0の値を選ぶことになります。
状況に応じて選択してください。

二つ目の回答
正規化後の値 = (正規化前の値 - 最小値) / 最大値 - 最小値
だから
正規化後の値=A
正規化前の値=B
最大値=Max
最小値=Min
とすると、
A=(B-Min)/(Max-Min)
よって
(Max-Min)A-Min=B
では?
お礼コメント
mgh072

お礼率 84% (27/32)

お返事遅れました…
大変分かりやすい説明ありがとうございます!
なるほどそうなんですね、実際にやってみたらできました!!
助かりました、ありがとうございました
投稿日時:2008/08/24 11:53
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ