

def multiclass_logloss(actual, predicted, eps=1e-15):
    'Multi class version of Logarithmic Loss metric.\n\n    :param actual: Array containing the actual target classes\n    :param predicted: Matrix with class predictions, one probability per class\n    '
    if (len(actual.shape) == 1):
        actual2 = np.zeros((actual.shape[0], predicted.shape[1]))
        for (i, val) in enumerate(actual):
            actual2[(i, val)] = 1
        actual = actual2
    clip = np.clip(predicted, eps, (1 - eps))
    rows = actual.shape[0]
    vsota = np.sum((actual * np.log(clip)))
    return (((- 1.0) / rows) * vsota)

dataset/ETHPy150Open dnouri/nolearn/nolearn/metrics.py multiclass_logloss/original