numpy 如何在Python中计算平均偏倚误差(MBE)?

rbl8hiat  于 2022-11-24  发布在  Python
关注(0)|答案(3)|浏览(215)

我试图用Python计算一组实际和测试预测的平均偏差误差MBE)。我在sklearn.metrics库或NumPy中查找,但没有列出计算它的方法。
有谁能提出一个库或一种计算方法吗?
谢谢你,Debayan

dkqlctbz

dkqlctbz1#

MBE定义为预测值与真实值之间差异的平均值,因此您可以使用两个数据源之间的简单平均差异来计算MBE:

import numpy as np
data_true = np.random.randint(0,100,size=100)
data_predicted = np.random.randint(0,100,size=100) - 50
MBE = np.mean(data_predicted - data_true) #here we calculate MBE

请注意,我从预测值中减去了50,只是为了能够观察到预测实际上与真实值存在偏差。

gstyhher

gstyhher2#

我也没有找到一个计算它的库,但是你可以试试这个:

def MBE(y_true, y_pred):
    '''
    Parameters:
        y_true (array): Array of observed values
        y_pred (array): Array of prediction values

    Returns:
        mbe (float): Biais score
    '''
    y_true = np.array(y_true)
    y_pred = np.array(y_pred)
    y_true = y_true.reshape(len(y_true),1)
    y_pred = y_pred.reshape(len(y_pred),1)   
    diff = (y_true-y_pred)
    mbe = diff.mean()
    print('MBE = ', mbe)
z9ju0rcb

z9ju0rcb3#

由于平均偏差误差公式为:Mean Bias Error
你可以这样处理:

import numpy as np

def mean_bias_error(true, pred):
    mbe_loss = np.sum(true - pred)/true.size
    return mbe_loss

def mean_bias_error(true, pred):
    mbe_loss = np.mean(true - pred)
    return mbe_loss

相关问题