機器學習-用循環來測試出最好的參數設置

調用sklearn中現有的機器學習函數包,往往都會有很多參數設置,如knn中,你需要選擇k的數值,需要選擇距離計算方法,需要選擇是不是要按照距離遠近給不同點的不同的權重,等等之類,很多時候只能依靠經驗確定,這時候可以設置一個循環,來測試出最好的參數設置。

以KNN為例,代碼如下:

from sklearn.model_selection import train_test_split 
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=42,stratify=y) 
knn.score(x_test,y_test)
best_p = -1
best_score= 0.0
best_k = -1
best_method=''
for k in range(1,11):
    for method in ['uniform','distance']:
        for p in range(1,6):
            knn_clf= KNeighborsClassifier(n_neighbors=k,weights=method,p=p)
            knn_clf.fit(x_train,y_train)
            score=knn_clf.score(x_test,y_test)
            if score>best_score:
                best_k=k
                best_score=score
                best_p=p
                best_method = method
print (best_p)
print (best_score)
print (best_k)
print (best_method)
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容