我在多类分类中使用SVC(kernel =“ linear”,概率= True)。当我将2/3的数据用于培训目的时,我得到了约72%。当我尝试预测生产时,我得到的信心分数却非常低。对整个数据集进行培训是否有助于提高置信度得分?
答案 0 :(得分:1)
对整个数据集进行培训是否有助于提高置信度得分?
可能会。通常,数据越多越好。但是,应该对模型从未见过的数据进行性能评估。一种方法是像您所做的那样,保留一部分数据(即测试集)。另一种方法是使用交叉验证,请参见下文。
当我试图预测生产时,我得到的信心分数却要低得多。
这意味着您的模型不能很好地概括。换句话说,当呈现数据时,在模型开始做出或多或少的随机预测之前就看不到了。
要更好地了解模型的一般化程度,可以使用cross-validation:
from sklearn.model_selection import cross_val_score
clf = SVC()
scores = cross_val_score(clf, X, Y)
这将使用完整数据的折叠训练并评估完整数据集上的分类器。折叠对于每个拆分,对分类器进行训练并在数据的唯一子集上进行验证。对于每个拆分,scores
结果均包含验证分数(对于SVC,则为准确性)。如果您需要更好地控制要评估的指标,请使用cross_validation
函数。
预测产量
为了提高模型的性能,可以考虑以下几种方法: