第32回 人工知能
前回は学習データの準備のコードを書きました。
さて、今回は、学習データの準備が出来たので、
学習準備をします。
学習準備をすることと学習データの準備は、違います。
勉強で例えると筆記用具やノート、教科書が学習データ。
机に出して鉛筆を削り消しゴムを用意するのが、学習準備です。
まぁ、準備無しにこのまましてもいいんですが、精度が悪くなります。
この学習準備のことを標準化と言います。
データの大きい小さい数字を0~1までの範囲にまとめます。
なぜ、0から1なのか?
0~1だと、三角関数やら正規分布が使えるからです。
基準精度を上げて処理するためのものがあるんです。
じゃ、早速まとめます。
CNNのときは、Standard Scalerというのを使いました。
今回は、MinMax Scalerを使います。
Minが最小、Maxが最大という意味です。
まずは宣言します。コードの最初に追記します。
from sklearn.preprocessing import MinMaxScaler
そしてコードの続きに下記を書く。
# データスケーリング
scaler = MinMaxScaler(feature_range=(0, 1))
scaler = MinMaxScaler(feature_range=(0, 1))
このscalerというのが、標準化する便利な関数です。
コードと値が、どう変わっていくかを書いていきます。
ここまでが標準化です。
この要領で、気温の方も標準化しましょう。
全体ソースコードはこんな感じです。
import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
#データをdfに読み込み。pandasをpdとして利用。
df = pd.read_csv("sample.csv")
#日付の型に変換
df['datadate'] = pd.to_datetime(df['datadate'])
#インデックス指定
df.set_index('datadate', inplace=True)
look_back = 3
X_train, y_train = create_dataset(df, look_back)
# データスケーリング
scaler = MinMaxScaler(feature_range=(0, 1))
Xsetka = X_train[:,0]
Xsetka = Xsetka.reshape(-1,1)
Scaler_train = scaler.fit(Xsetka)
Xsetka = Scaler_train.transform(Xsetka)
Xsetka = Xsetka.reshape(-1,look_back)
X_train[:,0] = Xsetka
#気温の標準化
Kion_scaler = MinMaxScaler(feature_range=(0, 1))
Xsetka = X_train[:,1]
Xsetka = Xsetka.reshape(-1,1)
Kion_Scaler_train = Kion_scaler.fit(Xsetka)
Xsetka = Kion_Scaler_train.transform(Xsetka)
Xsetka = Xsetka.reshape(-1,look_back)
X_train[:,1] = Xsetka
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
#データをdfに読み込み。pandasをpdとして利用。
df = pd.read_csv("sample.csv")
# 関数の定義 def create_dataset(dataset, look_back): dataX, dataY = [], [] for i in range(len(dataset)-look_back-1): xset, yset = [], [] for j in range(dataset.shape[1]): a = dataset.iloc[i:i+look_back, j] xset.append(a) yset.append(dataset.iloc[i+look_back, 0]) yset.append(dataset.iloc[i+look_back, 1]) dataY.append(yset) dataX.append(xset) return np.array(dataX), np.array(dataY)
#日付の型に変換
df['datadate'] = pd.to_datetime(df['datadate'])
#インデックス指定
df.set_index('datadate', inplace=True)
look_back = 3
X_train, y_train = create_dataset(df, look_back)
# データスケーリング
scaler = MinMaxScaler(feature_range=(0, 1))
Xsetka = X_train[:,0]
Xsetka = Xsetka.reshape(-1,1)
Scaler_train = scaler.fit(Xsetka)
Xsetka = Scaler_train.transform(Xsetka)
Xsetka = Xsetka.reshape(-1,look_back)
X_train[:,0] = Xsetka
#気温の標準化
Kion_scaler = MinMaxScaler(feature_range=(0, 1))
Xsetka = X_train[:,1]
Xsetka = Xsetka.reshape(-1,1)
Kion_Scaler_train = Kion_scaler.fit(Xsetka)
Xsetka = Kion_Scaler_train.transform(Xsetka)
Xsetka = Xsetka.reshape(-1,look_back)
X_train[:,1] = Xsetka
昨日のコードと合わせて書くとこうです。
次は、モデル作成と学習です。
コメント
0 件のコメント :
コメントを投稿