簡體   English   中英

使用 Gridsearch 獲得最佳 f1 分數

[英]Getting best f1 score using Gridsearch

我目前正在運行 GridSearchCV 來尋找 f1 分數的最佳超參數。

from sklearn.metrics import f1_score, make_scorer

f1 = make_scorer(f1_score, average='micro')

grid = {'n_neighbors':np.arange(1,16),
        'p':np.arange(1,3),
        'weights':['uniform','distance'],
        'algorithm':['auto']
       }

knn = KNeighborsClassifier()
knn_cv = GridSearchCV(knn,grid,cv=3, verbose = 3, scoring= f1)
knn_cv.fit(X_train_res,y_train_res)

print("Hyperparameters:",knn_cv.best_params_)
print("Train Score:",knn_cv.best_score_)
result_train["GridSearch-Best-Train"] = knn_cv.best_score_

雖然我注意到在使用 f1 作為評分后,最佳超參數和最佳准確度保持不變,但我是不是用錯了?

這並不奇怪,特別是如果你的課程不是太不平衡的話。 而且我沒有立即看到您的代碼有任何問題。

要添加一些支持證據表明事情按預期工作,請查看兩個記分員的knn_cv.cv_results_ (如果您將該字典轉換為pandas數據框,可能最容易檢查)。 事實上,您可以指定多個評分器,以便cv_results_屬性將在同一個字典/框架中顯示兩個分數。 您可能想要輸入更連續的分數,例如對數損失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM