私はニューラルネットを初めて使用しています(放棄)。Kerasモデルからの出力を元のスケールに再スケーリングする
私は、8つの特徴に基づいてコンクリートの強度を予測する回帰問題を抱えています。私が最初にやった、最小 - 最大の正規化を使用してデータを再スケーリングされています
# Normalize data between 0 and 1
from sklearn.preprocessing import MinMaxScaler
min_max = MinMaxScaler()
dataframe2 = pd.DataFrame(min_max.fit_transform(dataframe), columns = dataframe.columns)
その後、numpyの配列にデータフレームに変換し、X_train、y_trainに分割し、X_test、y_test。 は、今ここで、ネットワーク自体のKerasコードである:
from keras.models import Sequential
from keras.layers import Dense, Activation
#Set the params of the Neural Network
batch_size = 64
num_of_epochs = 40
hidden_layer_size = 256
model = Sequential()
model.add(Dense(hidden_layer_size, input_shape=(8,)))
model.add(Activation('relu'))
model.add(Dense(hidden_layer_size))
model.add(Activation('relu'))
model.add(Dense(hidden_layer_size))
model.add(Activation('relu'))
model.add(Dense(1))
model.add(Activation('linear'))
model.compile(loss='mean_squared_error', # using the mean squared error function
optimizer='adam', # using the Adam optimiser
metrics=['mae', 'mse']) # reporting the accuracy with mean absolute error and mean squared error
model.fit(X_train, y_train, # Train the model using the training set...
batch_size=batch_size, epochs=num_of_epochs,
verbose=0, validation_split=0.1)
# All predictions in one array
predictions = model.predict(X_test)
質問:
予測アレイは、スケーリングされた形式のすべての値(0〜1)が、明らかになります私は予測が本当の価値にあることが必要です。これらの出力を実際の値に戻すにはどうすればよいですか?
回帰問題に対してMin-MaxまたはZ-Scoreの標準化がより適切ですか?この「バッチ正規化」はどうですか?
inverse_transform(X):
がdocを1として、
あなたの質問は少し広すぎますケラとは何の関係もありません。 –
あなたの最初の質問は回答されており、2番目はstackoverflowの対象外です。 https://stats.stackexchange.com –