20191203 機器學習複習 模型選擇與調優

2021-10-01 05:24:50 字數 1843 閱讀 9794

模型選擇與調優

在knn演算法中,k的選擇是乙個重要的問題

那麼有沒有一種辦法能選擇準確的k值

模型選擇與調優可以實現

什麼是交叉驗證

交叉驗證:我們拿到的訓練資料,分為訓練集和驗證集。將資料分為4份,其中乙份作為驗證集,然後經過4組的測試,每次都更換不同的驗證集,即得到4組的結果,取平均值作為最終結果,又稱4折驗證。

讓結果更加準確

超引數,網格搜尋

如果選擇最好的k值,讓k有乙個集合,從集合中遍歷看哪個k最好

通常情況下,有很多引數需要手動指定的(如k近鄰演算法中的k值),這種叫做超引數。但是手動過程繁雜,所以需要對模型預設幾種超引數組合。每組超引數都採用交叉驗證來進行評估,最後選出最優引數組合建立模型。

模型選擇與調優api

sklearn.model_selection.gridsearchcv(estimator,param_grid=none,cv=none)

estimator 預估器物件

param_gird 將如knn中的k以字典的形式傳入 n_neighbors:[1,3,5]

cv 指定幾折驗證

結果分析:

best_params_ 最佳引數

best_score_ 最佳結果

best_estimator_ 最佳預估器

cv_results_ 交叉驗證結果

鳶尾花增加網格搜尋k值調優

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

from sklearn.preprocessing import standardscaler

from sklearn.neighbors import kneighborsclassifier

from sklearn.model_selection import gridsearchcv

iris = load_iris()

x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state=22)

transfer = standardscaler()

x_train = transfer.fit_transform(x_train)

x_test = transfer.transform(x_test)

estimator1 = kneighborsclassifier()

estimator = gridsearchcv(estimator1,

)estimator.fit

(x_train,y_train)

score = estimator.score

(x_train,y_train)

print

(score)

print

("最佳引數",estimator.best_params_)

print

("最佳結果",estimator.best_score_)

print

("最佳預估器",estimator.best_estimator_)

print

("交叉驗證結果", estimator.cv_results_)

機器學習複習

1.判斷與名稱解釋題 a1.1 資料探勘 在較大資料集上通過某些方式發現模型的乙個過程 1.2 機器學習 研究如何通過計算手段,利用經驗提公升系統的效能 1.3 假設空間 對於資料集a,其data對應的特徵為乙個向量,此向量所在的空間稱為假設空間 1.4 奧卡姆剃刀 若有多個假設與觀測一致,則選擇最...

機器學習複習 Apriori

apriori apriori 是關聯分析中比較早的一種方法,主要用來挖掘那些頻繁項集合。其思想是 1.如果乙個專案集合不是頻繁集合,那麼任何包含它的專案集合也一定不是頻繁集合 2.如果乙個專案集合是頻繁集合,那麼它的任何非空子集也是頻繁集合 aprioir 需要掃瞄專案表多遍,從乙個專案開始掃瞄,...

機器學習lr複習點

lr主要推導 損失函式 為何不用最小二乘法 是否要用最小二乘法取決於在所有未知數中的殘差是否為線性 最大似然 將概率密度估計問題轉化為引數估計問題,極大似然估計就是一種引數估計方法 隨機梯度下降 批量梯度下降是所有的 是在權值更新前對所有樣例彙總誤差,而隨機梯度下降的權值是通過考查某個訓練樣例來更新...