scikit-learn : ValueError: no enough values to unpack (expected 2, got 1)

Posted

技术标签:

【中文标题】scikit-learn : ValueError: no enough values to unpack (expected 2, got 1)【英文标题】:scikit-learn : ValueError: not enough values to unpack (expected 2, got 1) 【发布时间】:2017-12-23 15:54:29 【问题描述】:

在最新版本的sklearn 中有一个check_array 函数用于计算mean absolute percentage error (MAPE),但它的工作方式似乎与以前的版本不同。

import numpy as np
from sklearn.utils import check_array

def calculate_mape(y_true, y_pred): 
    y_true, y_pred = check_array(y_true, y_pred)

    return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
y_true = [3, -0.5, 2, 7]; y_pred = [2.5, -0.3, 2, 8]
calculate_mape(y_true, y_pred)

这将返回一个错误:ValueError: not enough values to unpack (expected 2, got 1)。这个错误有什么解决办法吗?

【问题讨论】:

那么你是怎么计算 MAPE 的? 检查下面答案中的链接。这回答了我的问题,希望对您也有帮助。 【参考方案1】:

看来

check_array

返回一个对象

查看文档here

【讨论】:

啊哈,好的。似乎该函数不再用于计算python sklearn 中的Mean Absolute Percentage Error (MAPE) 指标 @DestaHaileselassieHagos 是的,这就是错误的原因。如果问题已解决,您可以将答案标记为已接受。

以上是关于scikit-learn : ValueError: no enough values to unpack (expected 2, got 1)的主要内容,如果未能解决你的问题,请参考以下文章

scikit-learn : ValueError: no enough values to unpack (expected 2, got 1)

在管道中使用时带有 scikit-learn PLSRegression 的 ValueError

使用 scikit-learn 预测单个值会导致 ValueError

在 Python 中实现逻辑回归时 Scikit-learn ValueError

ValueError:使用 GaussianNB 在 scikit-learn (sklearn) 中设置具有序列的数组元素

使用 scikit-learn python 的线性 SVM 时出现 ValueError