gpt4 book ai didi

Python sklearn : why must I set up a new estimator to plot a learning curve?

转载 作者:行者123 更新时间:2023-11-30 09:11:15 25 4
gpt4 key购买 nike

我正在使用 GridSearchCV 来调整 SVM 分类器,然后绘制学习曲线。然而,除非我在绘制学习曲线之前设置一个新的分类器,否则我会遇到 IndexError 并且我不太确定为什么。

我的简历/分类器设置如下:

# 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”行收到以下错误:

# Plot learning curve for best params -- yields IndexError
plot_learning_curve(clf_tuned, title, x_train, y_train, ylim=(0.6, 1.05), cv=cv)

IndexError: index 663 is out of bounds for size 70

但是,如果我启动一个新的分类器,那么一切正常:

# 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)

这是为什么呢?非常感谢,欢迎对我的可疑实现提出其他意见。

最佳答案

通过将网格搜索获得的最佳估计器传递为 clf_tuned.best_estimator_ 解决了该问题

关于Python sklearn : why must I set up a new estimator to plot a learning curve?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37149979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com