scikit-learn.model_selection中提供了GridSerachCV,來實現網格搜索。構造網格搜索,需要指定以下元素:
在GridSearchCV中對應的參數為
此外還有壹些參數可用於性能調優,如n_jobs、pre_dispatch可以指定並行運算的作業數量。
GridSearchCV實現了 fit 和 score 方法,學習器自身的方法,也可以通過GridSeachCV直接調用。訓練後可通過best_estimator、best_score、best_params等屬性獲取最佳參數等信息。
除了遍歷搜索,還可以進行隨機搜索,sklearn.model_selection中的RandomizedSearchCV就是這樣的方法。
其參數和使用方法與GridSeachCV類似,只是不對所有可能的超參數組合進行遍歷。而是根據參數n_iter,生成指定個數的超參數組合,並在其上進行比較。
適用於超參數非常多,不支持窮舉遍歷的情況,可以結合啟發式搜索方法進行參數調優。
除了遍歷和隨機的網格搜索方法,scikit-learn也附帶提供了遍歷和隨機的超參數組合方法。只返回超參數組合的集合。
ParameterGrid方法生所有超參數的組合。並可以通過其他函數讀取。
ParameterSampler則進行隨機組合。不遍歷所有超參數組合,而是采用隨機采樣的方式組合超參數,並生成指定n_iter個組合供叠代使用。
這兩種方法只生成的超參數組合,在不用GridSeachCV或RandomizedSearchCV方法,而使用其他調優方法時可以使用。
scikit-learn中還提供了壹些模型特定的交叉驗證方法,這些方法可以提升驗證效率。
包括ElasticNetCV、LassoCV、RidgeCV、LogisticRegressionCV等等。