質問内容
kerasでcsvデータを学習ができるように正規化したいと思っています。しかしいろいろ検索をかけてはみたのですがよくわかりませんでした。なのでcsvデータを正規化する方法を教えていただきたいです。
以下の画像は使用したcsvデータです

ソースコード
python
1import keras 2import pandas as pd 3from pandas import Series,DataFrame 4from keras.utils import to_categorical 5 6#csv読み込み 7sign_train = pd.read_csv("sign_mnist_train.csv",sep=",",header=0) 8k_data=DataFrame(sign_train.drop("label",axis=1)) 9k_label=DataFrame(sign_train["label"]) 10 11#正規化 12k_data=k_data.values 13k_data = k_data.astype(np.float) 14k_label = keras.utils.to_categorical(k_label,25) 15 16#結果表示 17print('k_data') 18print(k_data) 19print('----------') 20print('k_label') 21print(k_label)
出力結果
k_data [[107. 118. ... 203. 202.] [155. 157. ... 135. 149.] ... [177. 181. ... 87. 93.] [179. 180. ... 209. 215.]] ---------- k_label [[0. 0. 0. ... 0. 0. 0.] [0. 0. 0. ... 0. 0. 0.] ... [0. 0. 0. ... 0. 0. 0.] [0. 0. 0. ... 0. 1. 0.]]
「いろいろ検索をかけてはみたのですがよくわかりませんでした」とのことですが、具体的にはどんなサイトを見てどこが分からなかったのでしょうか?
以下の2つのサイトを参考にしました
①https://qiita.com/tanakadaichi_1989/items/c655d93a1fae56f2be07
②https://note.nkmk.me/python-pandas-dataframe-values-columns-index/
①のサイトにあるように行ったところうまくいかなかったので、DataFrameについて知るために②のサイトを参考にしました。
①のサイトを見ましたが「正規化」についての記述はないように思いました。”①のサイトにあるように行ったところうまくいかなかった”とはどういう意味でしょうか? データを正規化していないことが”うまくいかなかった”原因だと特定できたのでしょうか?
csvデータを用いての実装を行うために①のサイトを参考にさせていただき、損失率を表すグラフを出力したところ横の直線のようになりました。
このようになるのはおかしいと感じ、k_dataとk_labelはどうなっているのかをprintで見たところk_dataが配列の形になっていなかったのでこれに原因があるのではと考えました。
なのでk_lablのような配列の形になるように調べていったところ、②のサイトを見つけ、②のサイトに書かれていたvaluesを用いたところk_labelのような形にすることが出来ました。
しかしそれでも同じような結果になったのでうまく正規化ができているのか、これ以上におかしな点はあるのかについて知りたかったので質問させていただきました。
「損失率を表すグラフを出力したところ横の直線のようになりました。」ということは、おそらく学習できていないということですね。何を学習させようとしているのか不明ですが、そもそも学習可能なデータなのでしょうか?
正規化については各特徴量が「0~1」の間に収まるように計算してあげれば良いのではないでしょうか?(簡単に各特徴量のmax値で割ってみてはどうでしょう?)
これ以上は情報がないので分かりません。
あなたの回答
tips
プレビュー