1. 程式人生 > >2.9 線性迴歸演算法學習——kNN模型解決迴歸問題及網格搜尋最優引數

2.9 線性迴歸演算法學習——kNN模型解決迴歸問題及網格搜尋最優引數

模型引入

from sklearn.neighbors import KNeighborsRegressor

例項化物件

knn_reg=KNeighborsRegressor()

訓練資料集

knn_reg.fit(X_train,y_train)

檢視評估的成績

knn_reg.score(X_test,y_test)

執行結果

網格搜尋引數:

from sklearn.model_selection import GridSearchCV
param_grid=[
    {
        'weights':['uniform'],
        'n_neighbors':[i for i in range(1,11)]
    },
    {
        'weights':['distance'],
        'n_neighbors':[i for i in range(1,11)],
        'p':[i for i in range(1,6)]
    }
]
knn_reg2=KNeighborsRegressor()
grid_search=GridSearchCV(knn_reg2,param_grid,n_jobs=-1,verbose=1)
grid_search.fit(X_train,y_train)

執行結果


注意:網格搜尋中採用的交叉驗證法與留出法的評估方法不同,第二個成績才是採用留出法的結果,但是他們的score計算方法又不同,所以不能武斷的說這種比另一種演算法好,因為不在一個維度上。