]> gitweb.factorcode.org Git - factor.git/blob - extra/machine-learning/label-binarizer/label-binarizer.factor
Rename and add sorting words
[factor.git] / extra / machine-learning / label-binarizer / label-binarizer.factor
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
6
7 TUPLE: label-binarizer classes_ ;
8
9 : <label-binarizer> ( -- lb )
10     label-binarizer new ; inline
11
12 M: label-binarizer fit-y
13     [ members sort ] dip classes_<< ;
14
15 M: label-binarizer transform-y
16     classes_>> dup length '[
17         _ bisect-left [ 1 ] dip _ 0 <array> [ set-nth ] keep
18     ] map ;
19
20 M: label-binarizer inverse-transform-y
21     classes_>> '[ 1 swap index _ nth ] map ;