開始使用免費開始

隨機搜尋

# Call GridSearchCV
grid_search = GridSearchCV(clf, param_grid)

# Fit the model
grid_search.fit(X, y)

在上面這段前一個練習的程式碼中,你或許注意到第一行幾乎不花時間執行,但呼叫 .fit() 則需要數秒。

這是因為 .fit() 其實才是在執行網格搜尋,而我們的網格包含許多不同的組合。當超參數網格變大時,網格搜尋就會變慢。為了改善這個問題,我們可以不要嘗試每一個可能的組合,而是「隨機」在網格中跳著抽樣不同的組合。雖然有小機率會錯過「最佳」組合,但能節省大量時間,或在相同時間內調更多超參數。

在 scikit-learn 中,你可以使用 RandomizedSearchCV 來做到這點。它的 API 和 GridSearchCV 相同,不同之處在於你需要指定可供抽樣的參數「分佈」,而不是一組固定的超參數值。現在就來試試看吧!參數分佈已經幫你設定好,並且提供了一個名為 clf 的隨機森林分類器。

本練習屬於課程

行銷分析:用 Python 預測客戶流失

檢視課程

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Import RandomizedSearchCV
編輯並執行程式碼