使用 scikit-learn 从 GridSearchCV 获取进度更新

Getting progress updates from GridSearchCV with scikit-learn

我目前正在 Python 中实施支持向量回归,我正在通过 GridSearchCV 估计参数 C 和 gamma。我最初从大约 400 种 C 和伽马的组合中进行搜索。这是一个非常详尽的搜索,现在已经 运行 在我的计算机上搜索了一个多小时。

我想要的是接收状态更新,例如有多少组合要测试或类似,因为目前很难判断程序是否正在运行,或者它是否刚刚冻结或发生了什么。

根据我在 sci-kit 学习文档中阅读的内容,我似乎找不到任何帮助。有环绕式吗?

GridSearchCV 有一个 verbose= 关键字。尝试将其设置为例如100.

如果您使用 sklearn.cross_validation.cross_val_score 来评估您的模型,您还可以将其 verbose= 设置为高水平。

如果您需要更多详细信息,还可以 "hack" 您要使用的评分对象,使其在每次调用时将分数打印到屏幕或文件中,例如:

from sklearn.metrics.scorer import accuracy_scorer

def my_accuracy_scorer(*args):
    score = accuracy_scorer(*args)
    print('score is {}'.format(score))
    return score

将此函数用作 cross_val_scoreGridSearchCV 中的 scoring 关键字,方法是放置 scoring=my_accuracy_scorer