所属package:‘MLmetrics’
作用:计算一系列分类结果的度量标准(metric,比如总体精度和kappa系数)和one vs. all的几个统计平均值。这个one vs. all 并不是多分类分类器所用的策略。也就是说一个经过one vs one的SVM的结果也可以用这个函数计算。根据源代码,我们可以知道他的计算方法是,根据结果中类的类别进行度量。比如如果有三个类,指责确定三组灵敏度,并以名称(“Mean_sensitivity”)报告平均值。用混淆矩阵生成的许多统计数据也是这样的计算方法,对每一类计算相应的模型度量,最后将结果进行平均
应用场景:
作为caret中trainControl中的summaryFunction的input。
fitControl = trainControl(method = "LOOCV",
classProbs = TRUE,
summaryFunction = multiClassSummary)
源代码:
function (data, lev = NULL, model = NULL)
{
if (!all(levels(data[, "pred"]) == levels(data[, "obs"])))
stop("levels of observed and predicted data do not match") # 如果预测的类别数量与truth的类别数量不同,报错。
has_class_probs <- all(lev %in% colnames(data)) #
if (has_class_probs) {
lloss <- mnLogLoss(data = data, lev = lev, model =