检查是否安装了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
的结果,但是如果您只想知道是否适合该模型,那么就足够了。更新:
一些评论者建议使用check_is_fitted。我认为
check_is_fitted
是internal method。大多数算法会在其预测方法中调用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()
并让特定算法处理检查其是否适合的最佳方法。关于python - 测试是否安装了sklearn模型的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39884009/