【问题标题】:Different results from different scoring methods with python使用python不同的评分方法得出不同的结果
【发布时间】:2021-08-25 16:21:43
【问题描述】:

我正在从事一个 NLP 项目,使用不同的评分方法,我得到了不同的结果。比如

这个给了我 90% +/- 0.6% 的准确度:

clf=MLPClassifier()
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
print (mean(cross_val_score(clf, X, y, cv=cv,n_jobs=ncore)))

这个给了我 80% +/- 0.5% 的准确度:

clf=MLPClassifier()
clf.fit(X_train, y_train)
pred_values = clf.predict(X_test)
print( accuracy_score(pred_values, y_test))

这个给我 75% +/- 0.5% 的准确度:

clf=MLPClassifier()
print (mean(cross_val_score(clf, X, y, cv=10,n_jobs=ncore)))

我知道 MLP 可以在不同的运行中产生不同的结果,但它不应该那么多,我使用哪个分类器并不重要,即使使用 KNN 我也有这些差异

这是怎么回事,哪一个是正确的?

【问题讨论】:

    标签: python machine-learning scikit-learn cross-validation k-fold


    【解决方案1】:

    首先,让我们分别检查每个方法:

    1. accuracy_score 使用用户创建的训练和测试数据的默认拆分。

    2. Normal cross_val_score 只是将数据集分成 n 份,拟合模型 n 次。

    根据描述,很明显RepeatedStratifiedKFold 是最佳选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-14
      • 2015-08-21
      • 1970-01-01
      • 2021-06-15
      相关资源
      最近更新 更多