MyNixOS website logo
Description

Multi-Class Area Under the Minimum in Torch.

Torch code for computing multi-class Area Under The Minimum, <https://www.jmlr.org/papers/v24/21-0751.html>, Generalization. Useful for optimizing Area under the curve.

torchMAUM

This R package provides a torch efficient extension of the AUM for multi-class classification, which was created to be used as a surrogate loss for optimizing Area Under the ROC Curve (AUC) in supervised binary classification and changepoint detection problems.

Installation

if(!requireNamespace("remotes"))install.packages("remotes")
  remotes::install_github("tdhock/aum")

Usage

To extend AUM for multi-class classification , the OvR(One-Versus-Rest) approach was used , to average results , both macro and micro averages were used and there is one funtion for each averaging method( see Scikit-learn for more details and equations) Given a labels tensor:

four_labels = torch::torch_tensor(c(1,3,2,2),dtype=torch::torch_long())

and a prediction tensor:

four_pred = torch::torch_tensor(matrix(c(0.4, 0.3, 0.3,
                          0.2, 0.1, 0.7,
                          0.5,0.2,0.3,
                          0.3,0.4,0.3),
                          ncol=3,byrow=TRUE))

We could :

  • Plot ROC curves using either macro or micro averaging
  • Compute AUC either macro or micro
  • Compute the AUM either macro or micro, micro AUM supports weighting .

ROC curves

ROC macro:

(torchMAUM::Draw_ROC_curve_macro(four_pred,four_labels))

ROC micro:

(torchMAUM::Draw_ROC_curve_micro(four_pred,four_labels))

AUC value

AUC macro:

(torchMAUM::ROC_AUC_macro(four_pred,four_labels))
torch_tensor
0.805556
[ CPUFloatType{} ]

AUC micro:

(torchMAUM::ROC_AUC_micro(four_pred,four_labels))
torch_tensor
0.734375
[ CPUFloatType{} ]

AUM values

AUM macro:

(torchMAUM::ROC_AUM_macro(four_pred,four_labels))
torch_tensor
0.0277778
[ CPUFloatType{} ]

AUM micro: The AUM micro has two variants: either weighted or unweighted . To use the weighted version we need to pass the counts of each class in the dataset to the function :

unweighted:

(torchMAUM::ROC_AUM_micro(four_pred,four_labels,counts=NULL))
torch_tensor
0.05
[ CPUFloatType{} ]

weighted:

counts=torch::torch_tensor(c(1,2,1))
(torchMAUM::ROC_AUM_micro(four_pred,four_labels,counts=counts))
torch_tensor
0.0388889
[ CPUFloatType{} ]
Metadata

Version

2025.7.30

License

Unknown

Platforms (76)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows