Python scikit学习:值错误:没有足够的值来解包(预期值为2,实际值为1)

Python scikit学习:值错误:没有足够的值来解包(预期值为2,实际值为1),python,python-3.x,scikit-learn,sklearn-pandas,Python,Python 3.x,Scikit Learn,Sklearn Pandas,在最新版本的sklearn中,有一个check\u array函数用于计算平均绝对百分比误差(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 -

在最新版本的
sklearn
中,有一个
check\u array
函数用于计算
平均绝对百分比误差(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:没有足够的值来解包(预期为2,得到1)
。这个错误有什么解决办法吗?

看起来

check_array
返回单个对象


请参阅文档

aha,OK。在
python sklearn
@DestaHaileselassieHagos中,该函数似乎不再用于计算
平均绝对百分比误差(MAPE)
度量值。是的,这就是错误的原因。如果问题已经解决,您可以将答案标记为已接受。那么您是如何计算MAPE的?请查看下面答案中的链接。这回答了我的问题,希望它也能对你有所帮助。