python画学习曲线_pythonsklearn:为什么我必须设置一个新的估计器来绘制学习曲线?...

我使用GridSearchCV来调整SVM分类器,然后绘制一条学习曲线。然而,除非我在绘制学习曲线之前设置一个新的分类器,否则我会遇到一个索引器,而且我不太清楚原因。在

我的简历/分类器设置如下:# Set up classifier

clf_untuned = OneVsRestClassifier(SVC(kernel='rbf', random_state=0, max_iter=1000))

cv = cross_validation.ShuffleSplit(data_image.shape[1], n_iter=10,

test_size=0.1, random_state=0)

# Use cross validation / grid search to find optimal hyperparameters

if TRAINING_CROSS_VALIDATION == 1:

params = {

...

}

clf_tuned = GridSearchCV(clf_untuned, cv=cv, param_grid=params)

clf_tuned.fit(x_train, y_train)

print('Best parameters: %s' % clf_tuned.best_params_)

else:

clf_tuned = OneVsRestClassifier(SVC(kernel='rbf',

C=100, gamma=0.00001, random_state=0, verbose=0))

clf_tuned.fit(x_train, y_train)

然后我继续绘制学习曲线,其中plot_learning_curve复制了sklearn示例(http://scikit-learn.org/stable/auto_examples/model_selection/plot_learning_curve.html)。如果我使用以下代码,那么在plot_learning_curve中的“learning_curve”线处会出现以下错误:

^{pr2}$

IndexError: index 663 is out of bounds for size 70

但是,如果我换了一个新的Classifier,那么一切正常:# Plot learning curve for best params -- functions correctly

estimator = OneVsRestClassifier(SVC(kernel='rbf',

C=100, gamma=0.00001, random_state=0, verbose=0))

plot_learning_curve(estimator, title, x_train, y_train, ylim=(0.6, 1.05), cv=cv)

为什么会这样?在此之前,我非常感谢您,并欢迎您对我有问题的执行情况发表其他意见。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值