機器學習 調整kNN的超引數

2022-03-22 01:36:59 字數 1039 閱讀 2146

1)問題

# 以knn演算法為例

平票:如果k個點中,不同型別的樣本數相等,怎麼選取?

如果選取的k個點中,數量多的一類樣本點距離測試樣本較遠,數量少的一類樣本點距離測試樣本較近,此時選取數量較多的型別作為輸出結果,不具說服力;

2)knn演算法中,除了k值外的另乙個超引數:距離的權重(1/距離)

scikit-learn庫中的kneighborsclassifier類中,還有乙個weights()函式;

在__init__()中預設兩個引數值:__init__(n_neighbors = 5, weights = 'uniform');

weights = 'uniform',表示不考慮距離權重這個超引數;

weights= 'distance',表示考慮距離權重這個超引數;

3)knn演算法的第三個超引數:p,距離引數

4)調參的方法

1、通過領域知識得到

# 不同領域內,遇到不同的問題,產引數一般不同;

# 領域:如自然語言處理、視覺搜尋等;

2、經驗數值

# 一般機器學習演算法庫中,會封裝一些預設的超引數,這些預設的超引數一般都是經驗數值;

# knn演算法這scikit-learn庫中,k值預設為5,5就是在經驗上比較好的數值;

3、通過試驗搜尋得到

5)其它

** 一般不同的超引數決定了不同的分類的準確率,它們之間呈連續變化;如果最終找到的最優的超引數為範圍的邊界值,意味著可能有更優的取值在邊界的外面,所以要拓展搜尋範圍重新查詢最優的超引數;

以上**包含了呼叫scikit-learn庫內的演算法:匯入模組、例項化、fit、調參(選取最優超引數)、**

# 模型引數:演算法過程中學習的引數;

# knn演算法中沒有模型引數,因為它沒有模型;

# 線性回歸演算法和邏輯回歸演算法,包含有大量的模型引數;

# 什麼是模型選擇?

當p = 1,明科夫斯基距離 == 曼哈頓距離;

當p = 2,明科夫斯基距離 == 尤拉距離;

當p >= 3,對應的明科夫斯基距離為其它距離;

深度學習(四) knn 超引數

best score 0.0 設定當前我們已經找到的準確率最好的值,初始化為0 bestk k 1 我們找到的最好的k,初始化為 1 for k in range 1,11 我們傳入10個k,看哪個k最適合鳶尾花 knn clf kneighborsclassifier n neighbors k ...

引數學習 深度學習超引數調整

1 batchsize 每批資料量的大小。dl通常用sgd的優化演算法進行訓練,也就是一次 1 個iteration 一起訓練batchsize個樣本,計算它們的平均損失函式值,來更新引數。2 iteration 1個iteration即迭代一次,也就是用batchsize個樣本訓練一次。3 epo...

深度學習 超引數調整總結

1 學習率 學習率 learning rate或作lr 是指在優化演算法中更新網路權重的幅度大小。學習率可以是恆定的 逐漸降低的,基於動量的或者是自適應的。不同的優化演算法決定不同的學習率。當學習率過大則可能導致模型不收斂,損失loss不斷上下 學習率過小則導致模型收斂速度偏慢,需要更長的時間訓練。...