我正在使用Python sklearn(版本0.17)来选择数据集上的理想模型.为此,我按照以下步骤操作:
cross_validation.train_test_splitwith 拆分数据集test_size = 0.2.GridSearchCV在训练集上选择理想的k近邻分类器.GridSearchCV来plot_learning_curve.plot_learning_curve给出了如下所示的情节.GridSearchCV获得的测试集上返回的分类器.从情节来看,我们可以看到最高分数.训练规模约为0.43.该分数是sklearn.learning_curve.learning_curve函数返回的分数.
但是当我在测试集上运行最佳分类器时,我得到的准确度分数为0.61,如sklearn.metrics.accuracy_score(正确预测的标签/标签数量)所返回
链接到图像: 
这是我正在使用的代码.我没有包含该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) 我有一个这样的数据框:
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)