【发布时间】:2021-06-08 06:56:47
【问题描述】:
我使用以下逻辑运行了许多带有默认选项的基本分类模型:
# 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
这可能吗?
【问题讨论】:
-
肯定是这样,尤其是在您的测试集相对较小的情况下。你有多少个测试样本?
-
您可以尝试检查哪些样本被错误分类。可能所有错误分类的样本都属于同一类。此外,您可以尝试用一些噪声干扰一些样本,看看精度是否保持不变。正如@desertnaut 所建议的,这也可能是样本数量的问题。
-
有 614 个样本。添加一些噪音以查看准确性是否保持不变的好建议。谢谢
-
你可以尝试使用交叉验证
-
当你的问题有相同的证据表明确实有可能时,我觉得问“这是否可能”很奇怪。
标签: python machine-learning scikit-learn classification