Learn R Programming

precrec (version 0.24.0)

plot: Plot performance evaluation metrics

Description

The plot function creates a plot of performance evaluation metrics.

Usage

# S3 method for sscurves
plot(x, y = NULL, ...)

# S3 method for mscurves plot(x, y = NULL, ...)

# S3 method for smcurves plot(x, y = NULL, ...)

# S3 method for mmcurves plot(x, y = NULL, ...)

# S3 method for sspoints plot(x, y = NULL, ...)

# S3 method for mspoints plot(x, y = NULL, ...)

# S3 method for smpoints plot(x, y = NULL, ...)

# S3 method for mmpoints plot(x, y = NULL, ...)

# S3 method for ssxycurves plot(x, y = NULL, ...)

# S3 method for msxycurves plot(x, y = NULL, ...)

# S3 method for smxycurves plot(x, y = NULL, ...)

# S3 method for mmxycurves plot(x, y = NULL, ...)

Value

The plot function shows a plot and returns NULL.

Arguments

x

An S3 object generated by evalmod(). The plot function accepts the following S3 objects.

  1. ROC and Precision-Recall curves (mode = "rocprc")

    S3 object# of models# of test datasets
    sscurvessinglesingle
    mscurvesmultiplesingle
    smcurvessinglemultiple
    mmcurvesmultiplemultiple
  2. Basic evaluation metrics (mode = "basic")

    S3 object# of models# of test datasets
    sspointssinglesingle
    mspointsmultiplesingle
    smpointssinglemultiple
    mmpointsmultiplemultiple

See the Value section of evalmod() for more details.

y

Equivalent with curvetype.

...

All the following arguments can be specified.

curvetype
  1. ROC and Precision-Recall curves (mode = "rocprc")

    curvetypedescription
    ROCROC curve
    PRCPrecision-Recall curve

Multiple curvetype can be combined, such as c("ROC", "PRC").

  • Basic evaluation metrics (mode = "basic")

    curvetypedescription
    errorNormalized ranks vs. error rate
    accuracyNormalized ranks vs. accuracy
    specificityNormalized ranks vs. specificity
    sensitivityNormalized ranks vs. sensitivity
    precisionNormalized ranks vs. precision
    mccNormalized ranks vs. Matthews correlation coefficient
    fscoreNormalized ranks vs. F-score
    balanced_accuracyNormalized ranks vs. balanced accuracy
    npvNormalized ranks vs. negative predictive value
    informednessNormalized ranks vs. informedness (Youden's J)
    markednessNormalized ranks vs. markedness
    kappaNormalized ranks vs. Cohen's kappa

    Multiple curvetype can be combined, such as c("precision", "sensitivity").

  • type

    A character to specify the line type as follows.

    "l"

    lines

    "p"

    points

    "b"

    both lines and points

    show_cb

    A Boolean value to specify whether point-wise confidence bounds are drawn. It is effective only when calc_avg of the evalmod() function is set to TRUE.

    raw_curves

    A Boolean value to specify whether raw curves are shown instead of the average curve. It is effective only when raw_curves of the evalmod() function is set to TRUE.

    show_legend

    A Boolean value to specify whether the legend is shown.

    See Also

    evalmod() for generating an S3 object. autoplot() for plotting the equivalent curves with ggplot2.

    Examples

    Run this code
    if (FALSE) {
    ##################################################
    ### Single model & single test dataset
    ###
    
    ## Load a dataset with 10 positives and 10 negatives
    data(P10N10)
    
    ## Generate an sscurve object that contains ROC and Precision-Recall curves
    sscurves <- evalmod(scores = P10N10$scores, labels = P10N10$labels)
    
    ## Plot both ROC and Precision-Recall curves
    plot(sscurves)
    
    ## Plot a ROC curve
    plot(sscurves, curvetype = "ROC")
    
    ## Plot a Precision-Recall curve
    plot(sscurves, curvetype = "PRC")
    
    ## Generate an sspoints object that contains basic evaluation metrics
    sspoints <- evalmod(
      mode = "basic", scores = P10N10$scores,
      labels = P10N10$labels
    )
    
    ## Plot normalized ranks vs. basic evaluation metrics
    plot(sspoints)
    
    ## Plot normalized ranks vs. precision
    plot(sspoints, curvetype = "precision")
    
    
    ##################################################
    ### Multiple models & single test dataset
    ###
    
    ## Create sample datasets with 100 positives and 100 negatives
    samps <- create_sim_samples(1, 100, 100, "all")
    mdat <- mmdata(samps[["scores"]], samps[["labels"]],
      modnames = samps[["modnames"]]
    )
    
    ## Generate an mscurve object that contains ROC and Precision-Recall curves
    mscurves <- evalmod(mdat)
    
    ## Plot both ROC and Precision-Recall curves
    plot(mscurves)
    
    ## Hide the legend
    plot(mscurves, show_legend = FALSE)
    
    ## Generate an mspoints object that contains basic evaluation metrics
    mspoints <- evalmod(mdat, mode = "basic")
    
    ## Plot normalized ranks vs. basic evaluation metrics
    plot(mspoints)
    
    ## Hide the legend
    plot(mspoints, show_legend = FALSE)
    
    
    ##################################################
    ### Single model & multiple test datasets
    ###
    
    ## Create sample datasets with 100 positives and 100 negatives
    samps <- create_sim_samples(10, 100, 100, "good_er")
    mdat <- mmdata(samps[["scores"]], samps[["labels"]],
      modnames = samps[["modnames"]],
      dsids = samps[["dsids"]]
    )
    
    ## Generate an smcurve object that contains ROC and Precision-Recall curves
    smcurves <- evalmod(mdat, raw_curves = TRUE)
    
    ## Plot average ROC and Precision-Recall curves
    plot(smcurves, raw_curves = FALSE)
    
    ## Hide confidence bounds
    plot(smcurves, raw_curves = FALSE, show_cb = FALSE)
    
    ## Plot raw ROC and Precision-Recall curves
    plot(smcurves, raw_curves = TRUE, show_cb = FALSE)
    
    ## Generate an smpoints object that contains basic evaluation metrics
    smpoints <- evalmod(mdat, mode = "basic")
    
    ## Plot normalized ranks vs. average basic evaluation metrics
    plot(smpoints)
    
    
    ##################################################
    ### Multiple models & multiple test datasets
    ###
    
    ## Create sample datasets with 100 positives and 100 negatives
    samps <- create_sim_samples(10, 100, 100, "all")
    mdat <- mmdata(samps[["scores"]], samps[["labels"]],
      modnames = samps[["modnames"]],
      dsids = samps[["dsids"]]
    )
    
    ## Generate an mscurve object that contains ROC and Precision-Recall curves
    mmcurves <- evalmod(mdat, raw_curves = TRUE)
    
    ## Plot average ROC and Precision-Recall curves
    plot(mmcurves, raw_curves = FALSE)
    
    ## Show confidence bounds
    plot(mmcurves, raw_curves = FALSE, show_cb = TRUE)
    
    ## Plot raw ROC and Precision-Recall curves
    plot(mmcurves, raw_curves = TRUE)
    
    ## Generate an mmpoints object that contains basic evaluation metrics
    mmpoints <- evalmod(mdat, mode = "basic")
    
    ## Plot normalized ranks vs. average basic evaluation metrics
    plot(mmpoints)
    
    
    ##################################################
    ### N-fold cross validation datasets
    ###
    
    ## Load test data
    data(M2N50F5)
    
    ## Speficy nessesary columns to create mdat
    cvdat <- mmdata(
      nfold_df = M2N50F5, score_cols = c(1, 2),
      lab_col = 3, fold_col = 4,
      modnames = c("m1", "m2"), dsids = 1:5
    )
    
    ## Generate an mmcurve object that contains ROC and Precision-Recall curves
    cvcurves <- evalmod(cvdat)
    
    ## Average ROC and Precision-Recall curves
    plot(cvcurves)
    
    ## Show confidence bounds
    plot(cvcurves, show_cb = TRUE)
    
    ## Generate an mmpoints object that contains basic evaluation metrics
    cvpoints <- evalmod(cvdat, mode = "basic")
    
    ## Normalized ranks vs. average basic evaluation metrics
    plot(cvpoints)
    }
    

    Run the code above in your browser using DataLab