更多的训练数据是否会相对改变模型之间的准确率?



在建模阶段处理我的ml项目时,我想首先尝试所有可能的模型,然后选择最好的模型并对该模型进行微调。最后,我想我会得到最好的数据库模型,但在此过程中,我发现了一个有趣的结果。

对于多模型训练阶段,为了节省时间,我想使用大约3500行,在我的整个70692中,这只是大约4.9%的数据。当训练最终完成时,这是我得到的所有模型的结果:

=================================== Accuracy ===================================
name  accuracy
3  Support Vector Machines  0.752571
0      Logistic Regression  0.751429
9       Bagging Classifier  0.746857
1            Random Forest  0.742857
2                 LightGBM  0.742857
6    Bernoulli Naive Bayes  0.726857
4                  XGBoost  0.724571
5     Gaussian Naive Bayes  0.721143
7                      KNN  0.674857
8            Decision Tree  0.661143
================================== Precision ===================================
name precision
0      Logistic Regression  0.761427
9       Bagging Classifier  0.747583
3  Support Vector Machines  0.745568
6    Bernoulli Naive Bayes  0.743151
1            Random Forest  0.743041
2                 LightGBM  0.739451
5     Gaussian Naive Bayes  0.737986
4                  XGBoost  0.728355
7                      KNN   0.69409
8            Decision Tree  0.677714
============================== True Positive Rate ==============================
name true_positive_rate
3  Support Vector Machines           0.790929
2                 LightGBM           0.775442
9       Bagging Classifier           0.769912
1            Random Forest           0.767699
0      Logistic Regression           0.755531
4                  XGBoost           0.744469
6    Bernoulli Naive Bayes           0.720133
5     Gaussian Naive Bayes           0.713496
7                      KNN           0.662611
8            Decision Tree           0.655973
================================= Specificity ==================================
name specificity
3  Support Vector Machines    0.790929
2                 LightGBM    0.775442
9       Bagging Classifier    0.769912
1            Random Forest    0.767699
0      Logistic Regression    0.755531
4                  XGBoost    0.744469
6    Bernoulli Naive Bayes    0.720133
5     Gaussian Naive Bayes    0.713496
7                      KNN    0.662611
8            Decision Tree    0.655973
=================================== F1 Score ===================================
name     score
3  Support Vector Machines  0.767579
9       Bagging Classifier  0.758583
0      Logistic Regression  0.758468
2                 LightGBM  0.757019
1            Random Forest  0.755169
4                  XGBoost  0.736324
6    Bernoulli Naive Bayes  0.731461
5     Gaussian Naive Bayes  0.725534
7                      KNN  0.677985
8            Decision Tree  0.666667

现在,我不知道该使用什么模型,所以我决定尝试7000行几乎翻倍。起初,我教的结果将保持不变,只有准确性会增加,但你瞧,顺序发生了变化,这是我的结果与7000行:

=================================== Accuracy ===================================
name  accuracy
9       Bagging Classifier  0.736571
2                 LightGBM  0.735429
3  Support Vector Machines     0.734
0      Logistic Regression  0.732857
1            Random Forest  0.730571
4                  XGBoost  0.721714
6    Bernoulli Naive Bayes      0.72
5     Gaussian Naive Bayes  0.711429
7                      KNN     0.674
8            Decision Tree  0.625429
================================== Precision ===================================
name precision
0      Logistic Regression  0.727174
6    Bernoulli Naive Bayes  0.726908
5     Gaussian Naive Bayes  0.725281
9       Bagging Classifier  0.719153
1            Random Forest  0.717895
3  Support Vector Machines  0.716049
2                 LightGBM  0.714576
4                  XGBoost  0.712533
7                      KNN  0.674612
8            Decision Tree   0.63009
============================== True Positive Rate ==============================
name true_positive_rate
2                 LightGBM           0.794466
9       Bagging Classifier           0.786561
3  Support Vector Machines           0.785997
1            Random Forest           0.770186
0      Logistic Regression           0.755505
4                  XGBoost           0.754376
6    Bernoulli Naive Bayes           0.715415
5     Gaussian Naive Bayes             0.6917
7                      KNN           0.687182
8            Decision Tree           0.629023
================================= Specificity ==================================
name specificity
2                 LightGBM    0.794466
9       Bagging Classifier    0.786561
3  Support Vector Machines    0.785997
1            Random Forest    0.770186
0      Logistic Regression    0.755505
4                  XGBoost    0.754376
6    Bernoulli Naive Bayes    0.715415
5     Gaussian Naive Bayes      0.6917
7                      KNN    0.687182
8            Decision Tree    0.629023
=================================== F1 Score ===================================
name     score
2                 LightGBM  0.752406
9       Bagging Classifier  0.751348
3  Support Vector Machines  0.749394
1            Random Forest  0.743122
0      Logistic Regression  0.741069
4                  XGBoost  0.732858
6    Bernoulli Naive Bayes  0.721116
5     Gaussian Naive Bayes  0.708092
7                      KNN  0.680839
8            Decision Tree  0.629556

顺序发生了变化,这令人惊讶,所以我的问题是,更多的训练数据是否会改变模型与其他模型的相对准确性?或者在我自己的理解中,为什么会发生上述模型排名的变化?

我还有一个问题是。有没有一种方法可以把所有这些数据都画出来,从而更容易找到一个全面的最佳模型?现在我把所有这些数据放在3个不同的panda Dataframe中进行绘图,我只是不知道该做什么/制作哪个绘图,甚至不知道如何制作绘图。

否则,就这样了,提前谢谢你。:)

请注意,当我说3500和7000时,我的意思是我使用的行总数,其中包括培训和测试。我将整体分成75%和25%的部分,其中75%用于培训,25%用于测试

数据的变化会导致模型相对于其他模型的准确性吗?
。有时候是,有时候不是
yes的可能性

  1. 如果数据变化很大,那么在模型性能指标顺序中改组的可能性更高,除非添加的数据没有随机性。
  2. 增加更多的数据意味着增加更多的异常值,包括具有更多随机独立值的样本,增加出现在第3和第4个标准差中的样本数量,以及数据分布的变化。
  3. 在此场景中,您已经将100%的数据添加到先前的数据中(3500是3500的100%),让我们假设它有100个异常值,并且还像您提到的那样将数据集加倍。并且模型还执行了额外的100%的数据。

  4. 前50%的数据可能适合支持向量机,逻辑回归,由于数据随机性的增加和数据分布变化的更高机会,数据可能最适合Bagging Classifier, LightGBM。

的可能性

  1. 如果数据变化很小,则模型性能指标顺序变换的可能性较低,除非添加的数据有很大的随机性。
  2. 添加更少的数据意味着添加更少的异常值(100的5%(如上所述)是5),向现有数据添加更少的未知特征值。
  3. 如果您在之前的数据(3500个样本175个)中添加了5%的数据,可能包含(5个异常值)。并且只对5%的数据执行额外的模型。
  4. 前95%的数据可能适合支持向量机,逻辑回归,后5%可能适合任何其他模型,但平均而言,由于95%的数据最适合SVM, LR有更多的机会100%的数据也适合SVM和LR。

注意同样在你的情况下,在前50%的SVM, LR, BC和LightGBM的准确性没有太大差异,因此通过添加另外50%的数据,在排行榜上洗牌的机会更多。

相关内容

  • 没有找到相关文章

最新更新