小编ana*_*hbv的帖子

python sklearn:accuracy_score和learning_curve得分有什么区别?

我正在使用Python sklearn(版本0.17)来选择数据集上的理想模型.为此,我按照以下步骤操作:

  1. 使用cross_validation.train_test_splitwith 拆分数据集test_size = 0.2.
  2. 用于GridSearchCV在训练集上选择理想的k近邻分类器.
  3. 通过返回的分类GridSearchCVplot_learning_curve.plot_learning_curve给出了如下所示的情节.
  4. 运行在GridSearchCV获得的测试集上返回的分类器.

从情节来看,我们可以看到最高分数.训练规模约为0.43.该分数是sklearn.learning_curve.learning_curve函数返回的分数.

但是当我在测试集上运行最佳分类器时,我得到的准确度分数为0.61,如sklearn.metrics.accuracy_score(正确预测的标签/标签数量)所返回

链接到图像: KNN分类器的图表

这是我正在使用的代码.我没有包含该plot_learning_curve功能,因为它需要占用大量空间.我plot_learning_curve这里拿走了

import pandas as pd
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report
from matplotlib import pyplot as plt
import sys
from sklearn import cross_validation
from sklearn.learning_curve import learning_curve
from sklearn.grid_search import GridSearchCV
from sklearn.cross_validation import …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn

9
推荐指数
1
解决办法
1988
查看次数

Python pandas:如何根据 id 列有效地获取数据帧的多个子集

我有一个这样的数据框:

df = pd.DataFrame({'id': [1, 1, 1, 2, 2], 'C1': ['1A', '1B', '1C', '2A', '2B'], 'C2': [100, 200, 300, 400, 500]})
print(df)

   id  C1   C2
0   1  1A  100
1   1  1B  200
2   1  1C  300
3   2  2A  400
4   2  2B  500
Run Code Online (Sandbox Code Playgroud)

从这个数据框中,我如何为“id”的每个值获取多个子集,像这样?

   id  C1   C2
0   1  1A  100
Run Code Online (Sandbox Code Playgroud)
   id  C1   C2
0   1  1A  100
1   1  1B  200
Run Code Online (Sandbox Code Playgroud)
   id  C1   C2
0   1  1A  100
1   1  1B  200
2   1  1C  300
Run Code Online (Sandbox Code Playgroud)
   id …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

标签 统计

python ×2

pandas ×1

scikit-learn ×1