keras是python中比較流行的深度學習庫,但是keras本身關注的是深度學習。而python中的scikit-learn庫是建立在scipy上的,有著比較有效的數值計算能力。sklearn是乙個具有全特徵的通用性的機器學習庫,它提供了很多在深度學習中可以用到的工具。舉個例子:
1.可以用sklearn中的k-fold交叉驗證方法來對模型進行評估
2.模型引數的估計和尋找
keras提供了深度學習模型的簡便包裝,可以在sklearn中被用來做分類和回歸。在本片文章中,我們舉這麼乙個例子:使用keras建立神經網路分類器——kerasclassifier,並在scikit-learn庫中使用這個分類器來對uci的pima indians資料集進行分類。
利用keras進行分類或者回歸,主要是利用keras中的兩個類,乙個是kerasclassifier,另乙個是kerasregressor。這兩個類帶有引數build_fn。build_fn是你建立的keras模型的名稱。在建立乙個keras模型時,務必要把完成模型的定義,編譯和返回。在這裡我們假設我們建立的模型叫做create_model()
def create_model():
# create model
model = sequential()
model.add(dense(12, input_dim=8, 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'])
return model
將建立好的模型通過引數build_fn傳遞到kerasclassifier中,並且定義其他的引數選項nb_epoch=150,batch_size=10.kerasclassifier會自動呼叫fit方法。
在sklearn中,我們使用它cross_validation的包中的stratifiedkfold來進行10折交叉驗證,使用cross_val_score來對模型進行評價。
kfold = stratifiedkfold(y=y, n_folds=10, shuffle=true, random_state=seed)
results = cross_val_score(model, x, y, cv=kfold)
使用keras模型和sklearn庫做機器學習任務
keras是python中比較流行的深度學習庫,但是keras本身關注的是深度學習。而python中的scikit learn庫是建立在scipy上的,有著比較有效的數值計算能力。sklearn是乙個具有全特徵的通用性的機器學習庫,它提供了很多在深度學習中可以用到的工具。舉個例子 1.可以用skle...
使用Keras訓練模型二三事兒
資料時tensor格式時,會建議使用steps per epoch,validation steps這些引數,但是使用這些引數時非常容易出現oom記憶體溢位情況 hist model.fit data lable cfg train dir validation data x1,y1 steps p...
keras評估模型
當建立好模型並且用來訓練之後,如何評估模型的好壞,準確度又如何呢?三種常用方法 1 使用自動驗證方法 在 fit 函式中增加乙個validation split引數,該引數用來進行驗證效果 該引數可以自由設定,一般設定為20 或者30 也就是測試集佔總資料集的20 或者30 的資料用來進行驗證,其餘...