我用网格搜索CV为KNN估计器找到了一组最佳超参数:
>>> knn_gridsearch_model.best_params_
{'algorithm': 'auto', 'metric': 'manhattan', 'n_neighbors': 3}
到目前为止,还不错。我想用这些新发现的参数训练我的最终估计器。有没有办法把上面的超参数dict直接输入它?我试过这个:
>>> new_knn_model = KNeighborsClassifier(knn_gridsearch_model.best_params_)
但是,希望的结果new_knn_model
只是将整个dict作为模型的第一个参数,而将其余的作为默认值:
>>> knn_model
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
metric_params=None, n_jobs=1,
n_neighbors={'n_neighbors': 3, 'metric': 'manhattan', 'algorithm': 'auto'},
p=2, weights='uniform')
确实令人失望。
我只想指出,使用
grid.best_parameters
并通过unpacking
将它们传递到一个新模型,比如:很好,而且我个人经常使用它。
但是,正如您在文档here中所看到的,如果您的目标是使用这些最佳参数来预测某个东西,则可以直接使用
grid.predict
方法,该方法将在默认情况下为您使用这些最佳参数。示例:
希望这有帮助。
你可以这样做:
或者直接按照@taras的建议打开包装:
顺便说一下,在运行完网格搜索之后,网格搜索对象实际上保留了(默认情况下)最好的参数,因此您可以使用对象本身。或者,您也可以通过
相关问题 更多 >
编程相关推荐