視覺化 Coarse to Fine
你將進行 Coarse to Fine 搜尋的第一步。這包含先分析在大型搜尋空間上進行的初始隨機搜尋結果,接著決定下一步該如何把超參數搜尋縮小得更精細。
你手邊有:
combinations_list— 隨機搜尋所使用的所有可能超參數組合的清單。results_df— 一個 DataFrame,包含每個超參數組合與 500 次試驗得到的準確率。每個超參數是一個欄位,欄名為超參數名稱。visualize_hyperparameter()— 一個函式,輸入 DataFrame 的某個欄位名稱(字串),會產生該欄位數值相對於準確率的散佈圖。例如可呼叫visualize_hyperparameter('accuracy')。
如果你想查看 visualize_hyperparameter() 的函式定義,可以執行以下程式碼:
import inspect
print(inspect.getsource(visualize_hyperparameter))
本練習屬於課程
Python 超參數調校
練習說明
- 先列印
combinations_list的大小,確認為何需要先從隨機搜尋開始。 - 依照準確率排序
results_df,並列印前 10 列。是否有明顯洞見?注意樣本數偏小! - 列印此次搜尋用到的超參數,這些就是
results_df的欄位名稱。 - 依序以每個超參數呼叫
visualize_hyperparameter()(max_depth、min_samples_leaf、learn_rate)。是否出現任何趨勢?
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Confirm the size of the combinations_list
print(____(____))
# Sort the results_df by accuracy and print the top 10 rows
print(results_df.____(by=____, ascending=False).head(____))
# Confirm which hyperparameters were used in this search
print(results_df.____)
# Call visualize_hyperparameter() with each hyperparameter in turn
visualize_hyperparameter(____)
visualize_hyperparameter(____)
visualize_hyperparameter(____)