2016-05-29 61 views
0

我正在尋找一種方法來在不使用K-fold驗證的情況下對sklearn中的超參數進行網格搜索。即,我希望我的網格在特定數據集(X1,y1在下面的示例中)上進行訓練,並根據特定的外延數據集(以下示例中的X2,y2)進行驗證。帶有特定驗證數據的網格搜索

X1,Y2 =列車數據
X2,Y2 =驗證數據

clf_ = SVC(kernel='rbf',cache_size=1000) 
Cs = [1,10.0,50,100.0,] 
Gammas = [ 0.4,0.42,0.44,0.46,0.48,0.5,0.52,0.54,0.56] 
clf = GridSearchCV(clf_,dict(C=Cs,gamma=Gammas), 
       cv=???, # validate on X2,y2 
       n_jobs=8,verbose=10) 
clf.fit(X1, y1) 

回答

0
clf = GridSearchCV(clf_,dict(C=Cs,gamma=Gammas),cv=???, # validate on X2,y2,n_jobs=8,verbose=10) 
  1. n_jobs> 1沒有任何意義。如果n_jobs = -1,則意味着處理將使用您計算機上的所有內核。如果是1,則只使用一個核心。

  2. 如果cv = 5,它將爲每次迭代運行5次交叉驗證。

  3. 在迭代的情況下,總數爲9(Cs的大小)* 5(伽瑪的大小)* 5(CV值)

  4. 如果使用交叉驗證,對於重新檢查模型的數據,沒有任何意義。如果您對演出沒有信心,您可以增加簡歷以獲得更好的體型。

這將是非常時間SVM尤其是消費,我寧願建議您使用RandomSearchCV它允許你給迭代的次數你希望你的模型來隨機選擇。