keras評估模型

2021-08-08 16:21:58 字數 1454 閱讀 1775

當建立好模型並且用來訓練之後,如何評估模型的好壞,準確度又如何呢?

三種常用方法:

1、使用自動驗證方法

在 fit 函式中增加乙個validation_split引數,該引數用來進行驗證效果

該引數可以自由設定,一般設定為20%或者30%。也就是測試集佔總資料集的20%或者30%的資料用來進行驗證,其餘用來進行訓練

2、人工設定

這裡使用到了scikit-learn機器學習庫中的train_test_split()函式,將資料集分為訓練集和測試集,具體如下:

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=seed)

3、使用交叉驗證

這裡用的專業術語為k_fold cross validation,同樣是scikit-learn中的函式

這個過程就是將資料進行分類,分為n個fold(層),然後用乙個迴圈,不停地建立模型,編譯,擬合。直到n個層全部跑完結束

**如下:

kfold = stratifiedkfold(n_splits=10, shuffle=true, random_state=seed)

cvscores =

for train, test in kfold.split(x, y):

# create model

model = sequential()

model.add(dense(12, input_dim=8, activation='relu'))

model.add(dense(8, activation='relu'))

model.add(dense(1, activation='sigmoid'))

# compile model

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# fit the model

model.fit(x[train], y[train], epochs=150, batch_size=10, verbose=0)

# evaluate the model

scores = model.evaluate(x[test], y[test], verbose=0)

print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))

print("%.2f%% (+/- %.2f%%)" % (numpy.mean(cvscores), numpy.std(cvscores)))

以上**將資料集分為kfold,分割引數為10,隨機分(shuffle),然後建立乙個list(cvscores),將獲取到的評估結果儲存

keras評估模型

目錄 keras評估模型 自動評估 手動評估 手動分離資料集 利用交叉驗證 usr bin env python coding utf 8 author jia shilin 通過fit 函式分割引數,設定資料集百分比,from keras.models import sequential from...

keras載入模型

說明 該程式是乙個包含兩個隱藏層的神經網路。演示如何載入乙個儲存好的模型。資料集 mnist from future import print function python提供了 future 模組,把下乙個新版本的特性匯入到當前版本,於是我們就可以在當前版本中測試一些新版本的特性。import ...

keras模型融合

1.構建模型 模型1 33次風運動 defmodel1 ipt layer1 dense units 512,input dim input node,kernel initializer normal activation sigmoid name layer1 ipt layer2 dense ...