GridSearchCV 和 RandomizedSearchCV 的差異

GridSearchCV&RandomizedSearchCV

GridSearchCV 是將你列出的所有條件參數都跑過一次,再給予最佳的參數;而 RandomizedSearchCV 則是依據 n_iter 設定的數字,隨機抽取來跑 model

從程式碼來看

可以看到 GridSearchCV 和 RandomizedSearchCV 都是繼承了 BaseSearchCV,然後覆寫了_run_search 的方法,差別在於處理 param_distributions 是使用 ParameterSampler 或 ParameterGrid

接下來我們再細看 ParameterSampler 和 ParameterGrid 的差異,可以看到 ParameterSampler 裡面還是使用 ParameterGrid 來處理傳入的參數,只是多了 n_iter 來隨機抽取 n 組參數

最後我們來看 ParameterGrid,在 __getitem__ 裡面將我們傳入的 param_grid 打散,組成接下來要訓練模型的參數

動手試試看

1. 安裝 scikit-learn

首先需要安裝 scikit-learn 套件,以下是 Windows、macOS 和 Linux 安裝方式:

2. GridSearchCV

3. RandomizedSearchCV

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *