machine-learning.rebalancing: Don't use a distribution for equal rebalancing.

db4
Doug Coleman 2012-11-17 12:52:55 -08:00
parent 0a9774248f
commit 44cb0106cc
1 changed files with 5 additions and 3 deletions

View File

@ -22,12 +22,14 @@ MEMO: probabilities-seq ( seq -- seq' )
: stratified-sample ( stratified-sequences probability-sequence -- elt ) : stratified-sample ( stratified-sequences probability-sequence -- elt )
probabilities-quot call swap nth random ; inline probabilities-quot call swap nth random ; inline
: equal-stratified-sample ( stratified-sequences -- elt )
random random ; inline
: balance-labels ( X y n -- X' y' ) : balance-labels ( X y n -- X' y' )
[ [
dup [ ] collect-index-by dup [ ] collect-index-by
values dup length equal-probabilities values '[
'[ _ _ _ equal-stratified-sample
_ _ _ _ stratified-sample
'[ _ swap nth ] bi@ 2array '[ _ swap nth ] bi@ 2array
] ]
] dip swap replicate [ keys ] [ values ] bi ; ] dip swap replicate [ keys ] [ values ] bi ;