--- /dev/null
+Doug Coleman
--- /dev/null
+! Copyright (C) 2012 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: kernel machine-learning.label-binarizer
+machine-learning.transformer tools.test ;
+IN: machine-learning.label-binarizer.tests
+
+{ { { 1 0 0 0 } { 0 0 0 1 } } } [
+ <label-binarizer> { 1 2 6 4 2 } over fit-y
+ { 1 6 } swap transform-y
+] unit-test
+
+{ { 1 6 } } [
+ <label-binarizer> { 1 2 6 4 2 } over fit-y
+ { 1 6 } over transform-y swap inverse-transform-y
+] unit-test
+
--- /dev/null
+! Copyright (C) 2012 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors arrays fry kernel machine-learning.transformer
+math.extras sequences sets sorting ;
+IN: machine-learning.label-binarizer
+
+TUPLE: label-binarizer classes_ ;
+
+: <label-binarizer> ( -- lb )
+ label-binarizer new ; inline
+
+M: label-binarizer fit-y
+ [ members natural-sort ] dip classes_<< ;
+
+M: label-binarizer transform-y
+ classes_>> dup length '[
+ _ search-sorted [ 1 ] dip _ 0 <array> [ set-nth ] keep
+ ] map ;
+
+M: label-binarizer inverse-transform-y
+ classes_>> '[
+ [ 1 = ] find drop _ nth
+ ] map ;
--- /dev/null
+Doug Coleman
--- /dev/null
+! Copyright (C) 2012 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: kernel machine-learning.label-encoder
+machine-learning.transformer tools.test ;
+IN: machine-learning.label-encoder.tests
+
+{ { 1 3 2 4 } } [
+ <label-encoder> { 1 2 3 4 3 2 3 2 2 3 2 } over fit-y
+ { 1 3 2 4 } over transform-y swap inverse-transform-y
+] unit-test
--- /dev/null
+! Copyright (C) 2012 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors fry kernel locals machine-learning.transformer
+math.extras sequences sets sorting ;
+IN: machine-learning.label-encoder
+
+TUPLE: label-encoder classes_ ;
+
+: <label-encoder> ( -- le ) label-encoder new ; inline
+
+M: label-encoder fit-y ( y transformer -- )
+ [ members natural-sort ] dip classes_<< ;
+
+M: label-encoder transform-y ( y transformer -- y' )
+ classes_>> '[ _ search-sorted ] map ;
+
+M: label-encoder inverse-transform-y ( y' transformer -- y )
+ classes_>> '[ _ nth ] map ;
--- /dev/null
+Doug Coleman
--- /dev/null
+! Copyright (C) 2012 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: ;
+IN: machine-learning.transformer
+
+GENERIC: fit-y ( y transformer -- )
+GENERIC: transform-y ( y transformer -- y' )
+GENERIC: inverse-transform-y ( y transformer -- y' )
+