我正在使用这个链接中提到的学习曲线代码路径。
https://scikit-learn.org/stable/auto_examples/model_selection/plot_learning_curve.html
我遇到了下面的错误:
---------------------------------------------------------------------------ValueError Traceback (most recent call last)<ipython-input-41-f71104873302> in <module> 132 cv = KFold(n_splits=15, random_state=42, shuffle=False) 133 plot_learning_curve(bag, title, X, y, axes=axes[:, 0], ylim=(0.7, 1.01),--> 134 cv=cv, n_jobs=4) 135 136 title = r"Learning Curves LightGBM Classifier"<ipython-input-41-f71104873302> in plot_learning_curve(estimator, title, X, y, axes, ylim, cv, n_jobs, train_sizes) 78 axes[0].set_ylabel("Score") 79 ---> 80 train_sizes, train_scores, test_scores, fit_times= learning_curve(estimator, X, y, cv=cv, n_jobs=n_jobs,train_sizes=train_sizes) 81 train_scores_mean = np.mean(train_scores, axis=1) 82 train_scores_std = np.std(train_scores, axis=1)ValueError: not enough values to unpack (expected 4, got 3)
请帮我解决这个问题。我使用完全相同的代码来绘制不同模型的图,但仍然得到相同的错误。
回答:
更改:
train_sizes, train_scores, test_scores, fit_times
为:
train_sizes, train_scores, test_scores, fit_times, _
编辑:
最初的回答是错误的,因为sklearn的例子在调用learning_curve
时使用了return_times
参数,这将返回两个额外的变量(fit_times
,score_times
)。在这种情况下,该参数未被使用,并且所使用的sklearn版本仅返回3个值。
return_times
参数从0.22.2
版本开始可用