私はこの非常に基本的なニューラルネットをhttps://machinelearningmastery.com/tutorial-first-neural-network-python-keras/から見ています。私は使用されたデータを数字とランダムなラベルのランダムな配列で置き換えました。基本ニューラルネットの予測?
入力がランダムなので、予測は約0.50、プラスまたはマイナスの値にする必要があります。私はこれを行うときしかし、私の周り0.50である
[0.49525392, 0.49652839, 0.49729034, 0.49670222, 0.49342978, 0.49490061, 0.49570397, 0.4962129, 0.49774086, 0.49475089, 0.4958384, 0.49506786, 0.49696651, 0.49869373, 0.49537542, 0.49613148, 0.49636957, 0.49723724]
を得るが、オーバー行くことはありません。それは、私が使用するランダムな種子のためにそれを行います。したがって、それは単に偶然ではありません。この動作の説明はありますか?
# Create first network with Keras
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
np.random.seed(90)
X_train = np.random.rand(18,61250)
X_test = np.random.rand(18,61250)
Y_train = np.array([0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0,
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0,])
Y_test = np.array([1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0,
1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,])
_, input_size = X_train.shape
# create model
model = Sequential()
model.add(Dense(12, input_dim=input_size, init='uniform', activation='relu'))
model.add(Dense(8, init='uniform', activation='relu'))
model.add(Dense(1, init='uniform', activation='sigmoid'))
# Compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# calculate predictions
predictions = model.predict(X_test)
preds = [x[0] for x in predictions]
print(preds)
# Fit the model
model.fit(X_train, Y_train, epochs=100, batch_size=10, verbose=2, validation_data=(X_test,Y_test))
ありがとうございます!ネットが50%を超えることがあることに気がついたが、私はそれを片面にするために何かをやっていると思った。トレーニング後に予測を行うことは意味があります。 – quil