python和機器學習 第四章 三)超引數

2021-09-25 04:30:35 字數 2930 閱讀 7358

超引數:演算法執行前需要決定的引數,如前文中的k值

模型引數:演算法過程中學習的引數,knn演算法沒有模型引數

1、怎麼找出最好的k值

in [

345]

: best_score =

0.0in [

346]

: best_k =-1

in [

347]

:for k in

range(1

,11):

...: knn_clf = kneighborsclassifier(n_neighbors=k)..

.: 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

in [

348]

:print

("best_k = "

,best_k)..

.:print

("best_score = "

,best_score)

best_k =

4best_score =

0.9916666666666667

如果找到的最好的k值在邊界,要往上稍微拓展

2、是否要考慮距離

kneighborsclassifier()函式中有乙個引數weight,控制是否考慮距離

in [

349]

: best_method =

""in [

350]

: best_score =

0.0in [

351]

: best_k =-1

in [

352]

:for method in

["uniform"

,"distance"]:

...:

for k in

range(1

,11):

...: knn_clf = kneighborsclassifier(n_neighbors=k, weights=method)..

.: 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_method = method

in [

354]

:print

("best_k = "

,best_k)..

.:print

("best_score = "

,best_score)..

.:print

("best_method = "

,best_method)

best_k =

4best_score =

0.9916666666666667

best_method = uniform

3、明可夫斯基距離

—尤拉距離:直線距離,p=2

—曼哈頓距離:每個維度的距離差的和,p=1

獲得乙個新的超引數p

kneighborsclassifier()函式中有乙個引數p

in [

357]

: best_method ="".

..: best_score =

0.0...

: best_k =-1

...: best_p =-1

in [

358]

:for k in

range(1

,11):

...:

for p in

range(1

,6):

...: knn_clf = kneighborsclassifier(n_neighbors=k, weights=

"distance"

,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

in [

359]

:print

("best_k = "

,best_k)..

.:print

("best_score = "

,best_score)..

.:print

("best_p = "

,best_p)

best_k =

3best_score =

0.9888888888888889

best_p =

2

python學習第四章

1.建立字典 每個鍵和它的值之間用冒號隔開,項之間用逗號隔開,整個字典使用一對大括號括起來。2.字典基本操作 len d 返回d中項的數量。d k 返回關聯到鍵k上的值。d k v將值v關聯到鍵k上。del d k 刪除鍵位k的項。k in d檢查d中是否有含有鍵為k的項。3.字典的格式化字串 可以...

機器學習第四章學習筆記

真的不開學了嗎,家裡蹲一學期?頂不住了 而在學習的過程中,首先的問題就是解域 這兩個引數的解究竟在哪個範圍,確定了範圍再求出最優解 也就是在解域中求得最優解 首先對於資料預處理,使兩類在超平面的同一側 並行感知機和序列感知機是以樣本的給出方式劃分的,樣本一次全部給出稱為並行,乙個乙個給出稱為序列 而...

機器學習 第四章KNN演算法

k近鄰演算法是機器學習中最簡單的分類演算法之一,這篇文章主要講解knn演算法的在scikit learn中的使用,其中不僅僅包括了演算法本身,還有測試訓練集的分離,交叉驗證的使用,資料標準化等。首先用乙個簡單的例子引入knn演算法 import numpy as np import matplotl...