Function to select the best hierarchical F-score by choosing an appropriate threshold in the scores
find.best.f(target, pred, n.round = 3, f.criterion = "F", verbose = TRUE,
b.per.example = FALSE)
matrix with the target multilabels: rows correspond to examples and columns to classes. \(target[i,j]=1\) if example \(i\) belongs to class \(j\), \(target[i,j]=0\) otherwise
a numeric matrix with continuous predicted values (scores): rows correspond to examples and columns to classes
number of rounding digits to be applied to pred (default=3
)
character. Type of F-measure to be used to select the best F-score. There are two possibilities:
F
(def.) corresponds to the harmonic mean between the average precision and recall;
avF
corresponds to the per-example F-score averaged across all the examples.
boolean. If TRUE
(def.) the number of iterations are printed on stdout
boolean.
TRUE
: results are returned for each example;
FALSE
: only the average results are returned
Two different outputs respect to the input parameter b.per.example
:
b.per.example==FALSE
: a list with a single element average. A named vector with 7 elements relative to the best result in terms
of the F.measure: Precision (P), Recall (R), Specificity (S), F.measure (F), av.F.measure (av.F), Accuracy (A) and the best selected Threshold (T).
F is the F-measure computed as the harmonic mean between the average precision and recall; av.F is the F-measure computed as the average across
examples and T is the best selected threshold;
b.per.example==FALSE
: a list with two elements:
average: a named vector with with 7 elements relative to the best result in terms of the F.measure: Precision (P), Recall (R), Specificity (S), F.measure (F), av.F.measure (av.F), Accuracy (A) and the best selected Threshold (T).
per.example: a named matrix with the Precision (P), Recall (R), Specificity (S), Accuracy (A), F-measure (F), av.F-measure (av.F) and the best selected Threshold (T) for each example. Row names correspond to examples, column names correspond respectively to Precision (P), Recall (R), Specificity (S), Accuracy (A), F-measure (F), av.F-measure (av.F) and the best selected Threshold (T).
All the examples having no positive annotations are discarded. The predicted scores matrix (pred
) is rounded
according to parameter n.round
and all the values of pred
are divided by max(pred)
.
Then all the thresholds corresponding to all the different values included in pred
are attempted, and the threshold
leading to the maximum F-measure is selected.
Names of rows and columns of target
and pred
matrix must be provided in the same order, otherwise a stop message is returned
# NOT RUN {
data(graph);
data(labels);
data(scores);
root <- root.node(g);
L <- L[,-which(colnames(L)==root)];
S <- S[,-which(colnames(S)==root)];
FMM <- find.best.f(L, S, n.round=3, f.criterion="F", verbose=TRUE, b.per.example=TRUE);
# }
Run the code above in your browser using DataLab