<s> import numpy as np <EOL> from gplearn . skutils . class_weight import compute_class_weight <EOL> from gplearn . skutils . class_weight import compute_sample_weight <EOL> from gplearn . skutils . testing import assert_array_almost_equal <EOL> from gplearn . skutils . testing import assert_almost_equal <EOL> from gplearn . skutils . testing import assert_raises <EOL> from gplearn . skutils . testing import assert_true <EOL> from gplearn . skutils . testing import assert_equal <EOL> def test_compute_class_weight ( ) : <EOL> y = np . asarray ( [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:4> ] ) <EOL> classes = np . unique ( y ) <EOL> cw = compute_class_weight ( "<STR_LIT>" , classes , y ) <EOL> assert_almost_equal ( cw . sum ( ) , classes . shape ) <EOL> assert_true ( cw [ <NUM_LIT:0> ] < cw [ <NUM_LIT:1> ] < cw [ <NUM_LIT:2> ] ) <EOL> def test_compute_class_weight_not_present ( ) : <EOL> classes = np . arange ( <NUM_LIT:4> ) <EOL> y = np . asarray ( [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:2> ] ) <EOL> assert_raises ( ValueError , compute_class_weight , "<STR_LIT>" , classes , y ) <EOL> def test_compute_class_weight_auto_negative ( ) : <EOL> classes = np . array ( [ - <NUM_LIT:2> , - <NUM_LIT:1> , <NUM_LIT:0> ] ) <EOL> y = np . asarray ( [ - <NUM_LIT:1> , - <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:2> , - <NUM_LIT:2> ] ) <EOL> cw = compute_class_weight ( "<STR_LIT>" , classes , y ) <EOL> assert_almost_equal ( cw . sum ( ) , classes . shape ) <EOL> assert_equal ( len ( cw ) , len ( classes ) ) <EOL> assert_array_almost_equal ( cw , np . array ( [ <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> ] ) ) <EOL> y = np . asarray ( [ - <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:2> , - <NUM_LIT:2> , - <NUM_LIT:2> ] ) <EOL> cw = compute_class_weight ( "<STR_LIT>" , classes , y ) <EOL> assert_almost_equal ( cw . sum ( ) , classes . shape ) <EOL> assert_equal ( len ( cw ) , len ( classes ) ) <EOL> assert_array_almost_equal ( cw , np . array ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) , decimal = <NUM_LIT:3> ) <EOL> def test_compute_class_weight_auto_unordered ( ) : <EOL> classes = np . array ( [ <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:3> ] ) <EOL> y = np . asarray ( [ <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> ] ) <EOL> cw = compute_class_weight ( "<STR_LIT>" , classes , y ) <EOL> assert_almost_equal ( cw . sum ( ) , classes . shape ) <EOL> assert_equal ( len ( cw ) , len ( classes ) ) <EOL> assert_array_almost_equal ( cw , np . array ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) , decimal = <NUM_LIT:3> ) <EOL> def test_compute_sample_weight ( ) : <EOL> y = np . asarray ( [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ] ) <EOL> sample_weight = compute_sample_weight ( "<STR_LIT>" , y ) <EOL> assert_array_almost_equal ( sample_weight , [ <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> ] ) <EOL> sample_weight = compute_sample_weight ( { <NUM_LIT:1> : <NUM_LIT:2> , <NUM_LIT:2> : <NUM_LIT:1> } , y ) <EOL> assert_array_almost_equal ( sample_weight , [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> ] ) <EOL> y = np . asarray ( [ [ <NUM_LIT:1> ] , [ <NUM_LIT:1> ] , [ <NUM_LIT:1> ] , [ <NUM_LIT:2> ] , [ <NUM_LIT:2> ] , [ <NUM_LIT:2> ] ] ) <EOL> sample_weight = compute_sample_weight ( "<STR_LIT>" , y ) <EOL> assert_array_almost_equal ( sample_weight , [ <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> ] ) <EOL> y = np . asarray ( [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> sample_weight = compute_sample_weight ( "<STR_LIT>" , y ) <EOL> expected = np . asarray ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) <EOL> assert_array_almost_equal ( sample_weight , expected ) <EOL> sample_weight = compute_sample_weight ( None , y ) <EOL> assert_array_almost_equal ( sample_weight , [ <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> ] ) <EOL> y = np . asarray ( [ [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] ] ) <EOL> sample_weight = compute_sample_weight ( "<STR_LIT>" , y ) <EOL> assert_array_almost_equal ( sample_weight , [ <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> ] ) <EOL> y = np . asarray ( [ [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] ] ) <EOL> sample_weight = compute_sample_weight ( [ { <NUM_LIT:1> : <NUM_LIT:2> , <NUM_LIT:2> : <NUM_LIT:1> } , { <NUM_LIT:0> : <NUM_LIT:1> , <NUM_LIT:1> : <NUM_LIT:2> } ] , y ) <EOL> assert_array_almost_equal ( sample_weight , [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) <EOL> y = np . asarray ( [ [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:3> , - <NUM_LIT:1> ] ] ) <EOL> sample_weight = compute_sample_weight ( "<STR_LIT>" , y ) <EOL> assert_array_almost_equal ( sample_weight , expected ** <NUM_LIT:2> ) <EOL> def test_compute_sample_weight_with_subsample ( ) : <EOL> y = np . asarray ( [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ] ) <EOL> sample_weight = compute_sample_weight ( "<STR_LIT>" , y , range ( <NUM_LIT:6> ) ) <EOL> assert_array_almost_equal ( sample_weight , [ <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> ] ) <EOL> y = np . asarray ( [ [ <NUM_LIT:1> ] , [ <NUM_LIT:1> ] , [ <NUM_LIT:1> ] , [ <NUM_LIT:2> ] , [ <NUM_LIT:2> ] , [ <NUM_LIT:2> ] ] ) <EOL> sample_weight = compute_sample_weight ( "<STR_LIT>" , y , range ( <NUM_LIT:6> ) ) <EOL> assert_array_almost_equal ( sample_weight , [ <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> ] ) <EOL> y = np . asarray ( [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ] ) <EOL> sample_weight = compute_sample_weight ( "<STR_LIT>" , y , range ( <NUM_LIT:4> ) ) <EOL> assert_array_almost_equal ( sample_weight , [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) <EOL> y = np . asarray ( [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ] ) <EOL> sample_weight = compute_sample_weight ( "<STR_LIT>" , y , [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> expected = np . asarray ( [ <NUM_LIT:1> / <NUM_LIT> , <NUM_LIT:1> / <NUM_LIT> , <NUM_LIT:1> / <NUM_LIT> , <NUM_LIT:5> / <NUM_LIT> , <NUM_LIT:5> / <NUM_LIT> , <NUM_LIT:5> / <NUM_LIT> ] ) <EOL> assert_array_almost_equal ( sample_weight , expected ) <EOL> y = np . asarray ( [ [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] ] ) <EOL> sample_weight = compute_sample_weight ( "<STR_LIT>" , y , [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> assert_array_almost_equal ( sample_weight , expected ** <NUM_LIT:2> ) <EOL> y = np . asarray ( [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:3> ] ) <EOL> sample_weight = compute_sample_weight ( "<STR_LIT>" , y , range ( <NUM_LIT:6> ) ) <EOL> assert_array_almost_equal ( sample_weight , [ <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:0.> ] ) <EOL> y = np . asarray ( [ [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:2> ] ] ) <EOL> sample_weight = compute_sample_weight ( "<STR_LIT>" , y , range ( <NUM_LIT:6> ) ) <EOL> assert_array_almost_equal ( sample_weight , [ <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:1.> , <NUM_LIT:0.> ] ) <EOL> def test_compute_sample_weight_errors ( ) : <EOL> y = np . asarray ( [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> ] ) <EOL> y_ = np . asarray ( [ [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:1> , <NUM_LIT:0> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] , [ <NUM_LIT:2> , <NUM_LIT:1> ] ] ) <EOL> assert_raises ( ValueError , compute_sample_weight , "<STR_LIT>" , y ) <EOL> assert_raises ( ValueError , compute_sample_weight , "<STR_LIT>" , y , range ( <NUM_LIT:4> ) ) <EOL> assert_raises ( ValueError , compute_sample_weight , "<STR_LIT>" , y_ ) <EOL> assert_raises ( ValueError , compute_sample_weight , "<STR_LIT>" , y_ , range ( <NUM_LIT:4> ) ) <EOL> assert_raises ( ValueError , <EOL> compute_sample_weight , { <NUM_LIT:1> : <NUM_LIT:2> , <NUM_LIT:2> : <NUM_LIT:1> } , y , range ( <NUM_LIT:4> ) ) <EOL> assert_raises ( ValueError , compute_sample_weight , { <NUM_LIT:1> : <NUM_LIT:2> , <NUM_LIT:2> : <NUM_LIT:1> } , y_ ) <EOL> assert_raises ( ValueError , compute_sample_weight , [ { <NUM_LIT:1> : <NUM_LIT:2> , <NUM_LIT:2> : <NUM_LIT:1> } ] , y_ ) </s>
