与许多分类器的验证准确性相比,训练集的准确性非常低.这正常吗?



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

classifier.fit(X_train, y_train)
pred = classifier.predict(X_test)
print(accuracy_score(y_test, pred))
>>> 0.810126582278481

这很好。但是,如果我这样做:

pred = classifier.predict(X_train)
print(accuracy_score(y_train, pred))
>>> 0.6677316293929713

这不是谬论吗?还是我做错了什么...?这适用于 RandomForestClassifier、MLPClassifier 和 SVC。

这个答案很好地解释了这种行为。您有一个正则化术语(或"惩罚"参数(,C默认为值 1;这可以防止过度拟合并解释低精度。尝试通过执行以下操作来增加参数C的值:

classifier = svm.SVC(C=200000)
classifier.fit(X_train, y_train)
pred = classifier.predict(X_train)
print(accuracy_score(y_train, pred))

最新更新