使用 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_score
或 GridSearchCV
中的 scoring
关键字,方法是放置 scoring=my_accuracy_scorer
我目前正在 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_score
或 GridSearchCV
中的 scoring
关键字,方法是放置 scoring=my_accuracy_scorer