開始使用免費開始

設定 GridSearch 參數

超參數(hyperparameter)是函式內部用來控制行為的參數。例如,max_depthmin_samples_leafDecisionTreeClassifier() 的超參數。調整超參數(hyperparameter tuning)就是測試不同的超參數取值,以找出最佳組合:也就是最符合你的目標、能帶來最佳預測的設定。在 sklearn 中,你可以用 GridSearch 來測試不同的超參數組合。更進一步,你可以用 GridSearchCV() 在同一個函式裡同時測試各種組合並執行交叉驗證!

在這個練習中,你要先準備想要測試的 max_depthmin_samples_leaf 的各種取值。接著把它們放進一個字典,因為 GridSearchCV() 需要的輸入就是:

  • 字典的鍵為超參數名稱
  • 字典的值為你想要測試的屬性(也就是超參數的各種取值)

你不需要手動逐一列出所有數值,而是使用 range() 函式來按步進產生。例如,range(1, 10, 2) 會產生從 1(含)到 10(不含),每次遞增 2 的數列。最後結果為 [1, 3, 5, 7, 9]

本練習屬於課程

HR 分析:用 Python 預測員工流失

檢視課程

練習說明

  • 依照上面範例的格式,產生最大深度從 5 到 20、每次遞增 1 的數值
  • 以相同方式,為最小葉節點樣本數產生從 50 到 450、每次遞增 50 的數值
  • 使用你剛建立的變數,建立字典並指定要嘗試的 max_depthmin_samples_leaf 的取值

動手互動練習

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

# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]

# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]

# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)
編輯並執行程式碼