我正在训练一个LinearSVC模型,我想知道它的训练误差。有没有办法在不手动评估的情况下获取这个误差?
谢谢
回答:
sklearn 使用 liblinear 来执行此任务。
你可以在这里快速查看源代码 这里:
self.coef_, self.intercept_, self.n_iter_ = _fit_liblinear( X, y, self.C, self.fit_intercept, self.intercept_scaling, self.class_weight, self.penalty, self.dual, self.verbose, self.max_iter, self.tol, self.random_state, self.multi_class, self.loss, sample_weight=sample_weight)
这表明只有系数、截距和迭代次数被sklearn的Python-API处理。liblinear输出中可用的其他任何信息都没有被获取。你无法在不更改内部代码的情况下直接读取训练误差。
可能有一个变通方法,即开启详细模式,重定向输出并解析其中可用的额外信息。但这假设你所寻找的信息在那里可用,而且这也是一个临时解决方案,我不推荐这样做。
直接使用score方法。与拟合相比,这不会太耗费资源。