自動化超參數選擇
在不必為數百個模型撰寫上百行程式碼的情況下,找出你關注的最佳超參數,是能大幅提升效率的關鍵做法,對你未來的機器學習模型建置很有幫助。
對 GBM 演算法來說,一個重要的超參數是 learning rate。那麼,針對這個問題,哪個 learning rate 最合適?你可以寫一個迴圈,嘗試多種可能的數值,彙整並檢視結果,進而找出最佳解。
可嘗試的 learning rate 包括 0.001、0.01、0.05、0.1、0.2 和 0.5。
你會拿到 X_train、X_test、y_train 與 y_test 資料集,而且已經為你匯入了 GradientBoostingClassifier。
本練習屬於課程
Python 超參數調校
練習說明
- 建立一個
learning_rates清單存放各個 learning rate,並建立results_list來保存每次預測的準確率。 - 撰寫一個迴圈,為每個指定的 learning rate 建立一個 GBM 模型,並為每個模型產生預測。
- 將對應的 learning rate 與準確率存入
results_list。 - 將結果清單轉成 DataFrame,並印出。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Set the learning rates & results storage
learning_rates = ____
results_list = ____
# Create the for loop to evaluate model predictions for each learning rate
for learning_rate in ____:
model = ____(learning_rate=____)
predictions = ____.fit(____, ____).predict(____)
# Save the learning rate and accuracy score
results_list.append([____, accuracy_score(y_test, ____)])
# Gather everything into a DataFrame
results_df = pd.DataFrame(____, columns=['learning_rate', 'accuracy'])
print(results_df)