2014-12-05 32 views
0

簡單的問題我在任何地方都找不到答案。 根據你的數據,你如何選擇哪個數字用於n_neighbors?或者最好使用默認的5? 我正在使用的數據集使用13個值來預測目標。爲KNeighborsClassifier提供n_neighbors

+0

'根據你的數據,你如何選擇哪個數字用於n_neighbors'。簡答:選擇最適合的號碼。困難的部分是獲得最佳的權利。您可能需要查看培訓和測試與「交叉驗證」之間的區別以找到良好(最佳)參數。 – cel 2014-12-05 21:06:43

+0

在選擇模型參數(如鄰居數量,僅限培訓和驗證或交叉驗證)時,您不應該查看測試集中的錯誤。選擇最小化(交叉)驗證錯誤的參數數量。我建議閱讀[本頁](http://en.wikipedia.org/wiki/Cross-validation_%28statistics%29) – 2014-12-06 13:44:51

回答

0

你應該嘗試不同的參數並通過交叉驗證來評估它們。 Sklearn有一個類:GridSearchCV

g = GridSearchCV(KNeighborsClassifier(), { "n_neighbors" : [5, 7, 11, 13, 17] }) 
g.fit(X, y) 

很容易定製打分函數和(最重要的)並行運行的評估。