machine-learning: Add transform protocol. Add label-encoder, label-binarizer.
parent
abddeb4368
commit
5dee39c221
|
|
@ -0,0 +1 @@
|
||||||
|
Doug Coleman
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
! 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
|
||||||
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
! 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 ;
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Doug Coleman
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
! 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
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
! 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 ;
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Doug Coleman
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
! 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' )
|
||||||
|
|
||||||
Loading…
Reference in New Issue