小编Swa*_*n87的帖子

如何正确交叉验证

我一直在尝试使用Python和scikit-learn工具箱训练ML分类器。

首先,我在分割数据集时应用了自己的阈值(例如int(len(X)* 0.75)),并在打印指标时得到了以下结果:

         precision    recall  f1-score   support

      1       0.63      0.96      0.76        23
      2       0.96      0.64      0.77        36

avg / total   0.83      0.76      0.76        59
Run Code Online (Sandbox Code Playgroud)

然后,我使用交叉验证,以便使用以下方法更详细地了解模型的准确性:scores = cross_validation.cross_val_score(X,y,cv = 10)并获得以下得分:

Cross_val_scores = [0.66666667 0.79166667 0.45833333 0.70833333 0.52173913
0.52173913 0.47826087 0.47826087 0.52173913 0.47826087]

准确度:0.56(标准偏差:+/- 0.22),此处的准确度等于平均值​​(分数)。

有人可以建议我如何正确解释这些分数吗?我了解使用交叉验证时如何拆分数据集,以便在整个数据集范围内观察模型的准确性,但我想了解更多。

  • 例如,有一种方法可以拆分并实现最高的精度(例如0.79166667),如果可以的话,我该怎么做?
  • 我想发生这种情况是因为我的数据集中存在一个分裂,即使用这些数据训练模型可以产生更精确的预测,对吗?
  • 有没有办法降低相对较高的标准偏差?

感谢您的时间。

python scikit-learn cross-validation

5
推荐指数
1
解决办法
829
查看次数

Scikit Learn 中的交叉验证

我一直在使用http://scikit-learn.org/stable/modules/generated/sklearn.cross_validation.cross_val_score.html

为了交叉验证逻辑回归分类器。我得到的结果是:

[ 0.78571429  0.64285714  0.85714286  0.71428571  
0.78571429  0.64285714    0.84615385  0.53846154  
0.76923077  0.66666667]
Run Code Online (Sandbox Code Playgroud)

我的主要问题是如何找到哪个集合/折叠使我的分类器得分最大化并产生 0.857。

后续问题:用这组训练我的分类器是一个好习惯吗?

先感谢您。

python scikit-learn cross-validation logistic-regression

2
推荐指数
1
解决办法
1029
查看次数