是否有可能对不同的分类模型获得相同的测试精度?

问题描述

我使用以下逻辑运行了许多带有认选项的基本分类模型:

# setup the basic models with all arguments as default
et_clf = ExtraTreesClassifier()
svc_clf = SVC()
knn_clf = KNeighborsClassifier()
log_clf = LogisticRegression()
dt_clf = DecisionTreeClassifier()
rnd_clf = RandomForestClassifier()

# import accuracy_score
from sklearn.metrics import accuracy_score

# use a for-loop to compute the test set accuracy for each classifier
for clf in (et_clf,svc_clf,knn_clf,log_clf,dt_clf,rnd_clf ):
    clf.fit(X_train,y_train)
    y_pred = clf.predict(X_test)
    print(clf.__class__.__name__,accuracy_score(y_test,y_pred))

ExtraTreesClassifier、SVC、KNeighborsClassifier 和 LogisticRegression 的测试准确率完全相同:

ExtraTreesClassifier 0.8517915309446255
SVC 0.8517915309446255
KNeighborsClassifier 0.8517915309446255
LogisticRegression 0.8517915309446255
DecisionTreeClassifier 0.46416938110749184
RandomForestClassifier 0.8078175895765473

这甚至可能吗?

解决方法

是的,有可能,这取决于您的数据集大小。要检查模型给出的准确率是否正确,请在数据集中添加不平衡数据并再次运行所有模型。