检查 sklearn 模型是否已安装的最优雅的方法是什么?即是否是fit()
函数在实例化后是否被调用。
你可以这样做:
from sklearn.exceptions import NotFittedError
for model in models:
try:
model.predict(some_test_data)
except NotFittedError as e:
print(repr(e))
理想情况下,您会检查以下结果model.predict
与预期结果相反,但如果您想知道模型是否拟合,那应该足够了。
Update:
一些评论者建议使用检查是否安装 http://scikit-learn.org/stable/modules/generated/sklearn.utils.validation.check_is_fitted.html。我认为check_is_fitted
an 内部方法 http://scikit-learn.org/dev/glossary.html#term-fitted。大多数算法都会调用check_is_fitted
在他们的预测方法中,这反过来可能会引发NotFittedError
如果需要的话。使用时出现的问题check_is_fitted
直接的原因是它是特定于模型的,即您需要知道根据您的算法检查哪些成员。例如:
╔════════════════╦════════════════════════════════════════════╗
║ Tree models ║ check_is_fitted(self, 'tree_') ║
║ Linear models ║ check_is_fitted(self, 'coefs_') ║
║ KMeans ║ check_is_fitted(self, 'cluster_centers_') ║
║ SVM ║ check_is_fitted(self, 'support_') ║
╚════════════════╩════════════════════════════════════════════╝
等等。所以一般来说我建议打电话model.predict()
并让特定的算法处理最好的方法来检查它是否已经安装。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)