对总数据集进行培训是否会提高置信度得分

时间:2018-10-26 13:38:46

标签: python-3.x machine-learning scikit-learn

我在多类分类中使用SVC(kernel =“ linear”,概率= True)。当我将2/3的数据用于培训目的时,我得到了约72%。当我尝试预测生产时,我得到的信心分数却非常低。对整个数据集进行培训是否有助于提高置信度得分?

1 个答案:

答案 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函数。

  

预测产量

为了提高模型的性能,可以考虑以下几种方法:

  • 使用更多训练数据
  • 使用ensemble model来减少预测差异
  • 使用其他模型(算法)