機器學習算法中有兩類參數:從訓練集中學習到的參數,比如邏輯斯蒂回歸中的權重參數,另一類是模型的超參數,也就是需要人工設定的參數,比如正則項系數或者決策樹的深度。
前一節,我們使用驗證曲線來提高模型的性能,實際上就是找最優參數。這一節我們學習另一種常用的超參數尋優算法:網格搜索(grid search)。
網格搜索聽起來高大上,實際上簡單的一筆,就是暴力搜索而已,我們事先為每個參數設定一組值,然后窮舉各種參數組合,找到最好的那一組。
GridSearchCV中param_grid參數是字典構成的列表。對於線性SVM,我們只評估參數C;對於RBF核SVM,我們評估C和gamma。
最后, 我們通過best_parmas_得到最優參數組合。
sklearn人性化的一點是,我們可以直接利用最優參數建模(best_estimator_):
Note 網格搜索雖然不錯,但是窮舉過於耗時,sklearn中還實現了隨機搜索,使用 RandomizedSearchCV類,隨機采樣出不同的參數組合。
Python機器學習中文版目錄(http://www.aibbt.com/a/20787.html)
轉載請注明出處,Python機器學習(http://www.aibbt.com/a/pythonmachinelearning/)