Python 与许多分类器的验证精度相比,训练集的精度低得离奇。这正常吗?

Python 与许多分类器的验证精度相比,训练集的精度低得离奇。这正常吗?,python,machine-learning,scikit-learn,training-data,Python,Machine Learning,Scikit Learn,Training Data,我认为在拟合数据和预测训练集之后,应该会得到接近100%的准确率。我的意思是这才有意义。该算法基于该数据集进行学习。但当我这样做的时候: classifier.fit(X\u序列,y\u序列) pred=分类器。预测(X_检验) 打印(准确度评分(y检验,pred)) >>> 0.810126582278481 这很好。但是,如果我这样做: pred=分类器。预测(X_序列) 打印(准确度分数(y列,pred)) >>> 0.6677316293929713 这不是一种谬论吗?还是我做错了什

我认为在拟合数据和预测训练集之后,应该会得到接近100%的准确率。我的意思是这才有意义。该算法基于该数据集进行学习。但当我这样做的时候:

classifier.fit(X\u序列,y\u序列)
pred=分类器。预测(X_检验)
打印(准确度评分(y检验,pred))
>>> 0.810126582278481
这很好。但是,如果我这样做:

pred=分类器。预测(X_序列)
打印(准确度分数(y列,pred))
>>> 0.6677316293929713
这不是一种谬论吗?还是我做错了什么。。。?这适用于RandomForestClassifier、MLPC Classifier和SVC

答案很好地解释了这种行为。您有一个正则化项(或“惩罚”参数)
C
,默认值为1;这防止了过度装配,并解释了低精度的原因。尝试通过执行以下操作增加参数
C
的值:

classifier=svm.SVC(C=200000)
分类器。配合(X_系列,y_系列)
pred=分类器。预测(X_序列)
打印(准确度分数(y列,pred))

@Snusifer考虑接受这一正确答案,如果这有帮助:)