22 lines
		
	
	
		
			623 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			623 B
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2012 Doug Coleman.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: accessors arrays fry kernel machine-learning.transformer
 | 
						|
sequences sets sorting sorting.extras ;
 | 
						|
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 '[
 | 
						|
        _ bisect-left [ 1 ] dip _ 0 <array> [ set-nth ] keep
 | 
						|
    ] map ;
 | 
						|
 | 
						|
M: label-binarizer inverse-transform-y
 | 
						|
    classes_>> '[ 1 swap index _ nth ] map ;
 |