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不斷上下 學習率過小則導致模型收斂速度偏慢,需要更長的時間訓練。...