zl程序教程

您现在的位置是:首页 >  其它

当前栏目

多标签多分类Muticlass Mutioutput的Mutilogloss(mlogloss)实现

实现 分类 标签
2023-09-14 09:12:39 时间

原理

在这里插入图片描述

实现

logloss的实现

def logloss(y_true, y_pred, eps=1e-15):
    import numpy as np

    # Prepare numpy array data
    y_true = np.array(y_true)
    y_pred = np.array(y_pred)
    assert (len(y_true) and len(y_true) == len(y_pred))

    # Clip y_pred between eps and 1-eps
    p = np.clip(y_pred, eps, 1-eps)
    loss = np.sum(- y_true * np.log(p) - (1 - y_true) * np.log(1-p))

    return loss / len(y_true)

mlogloss的实现

from sklearn.metrics import log_loss
def Mutilogloss(y_true, y_pred, eps=1e-5):
    allloss = []
    for i in range(y_true.shape[1]):
        loss = log_loss(y_true[:,i],y_pred[:,i])
        allloss.append(loss)
    return np.sum(allloss)/y_true.shape[1]