我使用keras有tensorflow後端神經網絡:當用不同的數據集排列訓練時,神經網絡會給出不同的結果,爲什麼?
seed = 7
np.random.seed(seed)
model = Sequential()
model.add(Dense(32, input_dim=11, init='uniform', activation='relu'))
model.add(Dense(12, init='uniform', activation='relu'))
model.add(Dense(1, init='uniform', activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, result_train, nb_epoch=50, batch_size=5)
scores = model.evaluate(X_test, result_test)
print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
我從與他們的社會經濟參數的公立大學作爲變量測試輟學,起初我有8個CSV文件(命名爲A, b,c,d,e,f,g和h)有12個列標題和300,000行。結果是二進制,保留爲0,丟棄爲1,我在將數據提供給NN之前對數據進行了歸一化處理。
我的第一套訓練集是a,b,c,d,e和f,g和h代表測試。神經網絡爲我提供了一個很好的特異性,靈敏度和準確性:70%,65%和66%。
由於我訓練了與上面所述相同體系結構的另一個NN,這次我的訓練數據集是c,d,e,f,g和h,a和b作爲我的新測試支持,但隨後模型爲特異性,敏感性和準確性提供了非常差的結果:42%,48%和47%,我想知道爲什麼?是否有任何已發表的論文引用了神經網絡中的這種現象?
謝謝!
我假設結果是「持有」測試集? – doctorlove
@doctorlove,是的,他們是支持。我試圖找出爲什麼,我計算了每個csv文件中的退出次數,並且他們沒有很大的範圍,csv文件的%退出是a = 34%,b = 42%,c = 35 %,d = 36%,e = 34%,f = 40%,g = 37%和h = 33%。 –
請看https://www.quora.com/Does-the-order-of-training-data-matter-when-training-neural-networks – Dmitry