【问题标题】:How can I resolve this error: ValueError: not enough values to unpack (expected 4, got 3)?如何解决此错误:ValueError: no enough values to unpack (expected 4, got 3)?
【发布时间】:2020-04-06 06:42:50
【问题描述】:

我正在使用此链接中提到的学习曲线代码路径。

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)

请帮我解决这个问题。我使用完全相同的代码来绘制不同的模型,但我仍然遇到相同的错误。

【问题讨论】:

  • 我从未使用过这个库,并且能够在不到 1 分钟的时间内找到问题:点击您在问题中提供给我们的链接。从那里点击链接到learning_curve,阅读有关返回值的文档。找到解决方案。
  • 没有使用完全相同的代码;请仔细看;另外,通过指向外部代码仓库,SO 不起作用 - 请在此处发布相关代码。

标签: python python-3.x matplotlib machine-learning data-science


【解决方案1】:

变化:

train_sizes, train_scores, test_scores, fit_times

收件人:

train_sizes, train_scores, test_scores, fit_times, _

编辑:

初始答案是错误的,因为 sklearn 的示例在调用 learning_curve 时使用了 return_times 参数,这将返回两个额外的变量(fit_timesscore_times)。在这种情况下,没有使用参数,使用了sklearn版本,只返回了3个值。

return_times 仅适用于 0.22.2

【讨论】:

  • 对不起,您是正确的,根据文档,如果您在 learning_curve 函数中设置参数 return_times,它将返回 3 个值,因为您没有使用该参数,它只会返回 3 .docscikit-learn.org/stable/modules/generated/…
  • 如果我使用返回时间,那么它会给我以下错误:
  • TypeError: learning_curve() got an unexpected keyword argument 'return_times'
  • 你使用的sklearn版本是什么print(sklearn.__version__)
  • 0.21.2 很抱歉,我明白了
猜你喜欢
  • 2022-11-12
  • 1970-01-01
  • 2020-12-16
  • 1970-01-01
  • 2020-10-10
  • 2020-10-26
  • 2017-12-23
  • 2022-07-22
  • 2020-11-19
相关资源
最近更新 更多