1 ! Copyright (C) 2012 Doug Coleman.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: accessors arrays kernel machine-learning.transformer
4 sequences sets sorting sorting.extras ;
5 IN: machine-learning.label-binarizer
7 TUPLE: label-binarizer classes_ ;
9 : <label-binarizer> ( -- lb )
10 label-binarizer new ; inline
12 M: label-binarizer fit-y
13 [ members natural-sort ] dip classes_<< ;
15 M: label-binarizer transform-y
16 classes_>> dup length '[
17 _ bisect-left [ 1 ] dip _ 0 <array> [ set-nth ] keep
20 M: label-binarizer inverse-transform-y
21 classes_>> '[ 1 swap index _ nth ] map ;