Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Francois BERENGER <berenger@bioreg.kyushu-u.ac.jp>
To: caml-list@inria.fr
Subject: [Caml-list] [ANN] first release of cpm: the Classification Performance Metrics library
Date: Mon, 10 Jul 2017 17:00:21 +0900	[thread overview]
Message-ID: <7844295a-dd6f-9398-ce7b-a21f920146c2@bioreg.kyushu-u.ac.jp> (raw)
In-Reply-To: <978f88e8-6e9c-9f54-5988-0933a4cac833@bioreg.kyushu-u.ac.jp>

O Caml riders,

It is my pleasure to announce the first release of cpm.

cpm allows to compute various classification performance metrics, like:
- area under the ROC curve (AUC)
- BEDROC (Bolzmann Enhanced Discrimination of the ROC curve)
- Power Metric (PM) at given threshold
- Enrichment Factor (EF) at given percentage

Here is an example use:
---
(* first, define your score_label module *)
module SL = struct
   type t = string * float * int * bool
   let get_score (_, s, _, _) = s
   let get_label (_, _, _, l) = l
end

(* second, instantiate the ROC functor for your score_label module *)
module ROC = MakeROC.Make (SL)

(* third, call any classification performance metric you need *)
[...]
let auc = ROC.auc scores in
[...]
---

The score is the output of your predictor.
For a true positive, the label must be 1.
For a true negative, the label must be 0.
Your predictor is supposed to give high scores to true positives
and low scores to true negatives.

The code is here:
https://github.com/UnixJunkie/cpmlib

The library should be available shortly in opam under the name cpm.

For those who like to read, here are some interesting reads on related 
subjects:
- https://jcheminf.springeropen.com/articles/10.1186/s13321-016-0189-4
- 
https://academic.oup.com/bioinformatics/article-lookup/doi/10.1093/bioinformatics/btq140
- http://pubs.acs.org/doi/abs/10.1021/ci600426e

Have fun classifying,
F.

  reply	other threads:[~2017-07-10  8:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-03 14:04 [Caml-list] GCAI 2017 in Miami - Deadline extension Geoff Sutcliffe
2017-07-04  8:55 ` [Caml-list] parany: a minimalistic library to parallelize any kind of computation Francois BERENGER
2017-07-10  8:00   ` Francois BERENGER [this message]
2017-07-27  1:07   ` [Caml-list] new release of parany (1.0.2): a minimalistic OCaml " Francois BERENGER

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7844295a-dd6f-9398-ce7b-a21f920146c2@bioreg.kyushu-u.ac.jp \
    --to=berenger@bioreg.kyushu-u.ac.jp \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox