3
3
import numpy as np
4
4
5
5
import mock
6
- import modAL .models
6
+ import modAL .models .base
7
+ import modAL .models .learners
7
8
import modAL .uncertainty
8
9
import modAL .disagreement
9
10
import modAL .density
@@ -124,7 +125,7 @@ def test_make_query_strategy(self):
124
125
proba = proba / np .sum (proba , axis = 1 ).reshape (n_samples , 1 )
125
126
X = np .random .rand (n_samples , 3 )
126
127
127
- learner = modAL .models .ActiveLearner (
128
+ learner = modAL .models .learners . ActiveLearner (
128
129
estimator = mock .MockEstimator (predict_proba_return = proba )
129
130
)
130
131
@@ -174,7 +175,7 @@ def test_optimizer_PI(self):
174
175
175
176
# 1. fitted estimator
176
177
mock_estimator = mock .MockEstimator (predict_return = (mean , std ))
177
- optimizer = modAL .models .BayesianOptimizer (estimator = mock_estimator )
178
+ optimizer = modAL .models .learners . BayesianOptimizer (estimator = mock_estimator )
178
179
optimizer ._set_max ([0 ], [max_val ])
179
180
true_PI = ndtr ((mean - max_val - tradeoff )/ std )
180
181
@@ -185,7 +186,7 @@ def test_optimizer_PI(self):
185
186
186
187
# 2. unfitted estimator
187
188
mock_estimator = mock .MockEstimator (fitted = False )
188
- optimizer = modAL .models .BayesianOptimizer (estimator = mock_estimator )
189
+ optimizer = modAL .models .learners . BayesianOptimizer (estimator = mock_estimator )
189
190
optimizer ._set_max ([0 ], [max_val ])
190
191
true_PI = ndtr ((np .zeros (shape = (len (mean ), 1 )) - max_val - tradeoff ) / np .ones (shape = (len (mean ), 1 )))
191
192
@@ -205,7 +206,7 @@ def test_optimizer_EI(self):
205
206
mock_estimator = mock .MockEstimator (
206
207
predict_return = (mean , std )
207
208
)
208
- optimizer = modAL .models .BayesianOptimizer (estimator = mock_estimator )
209
+ optimizer = modAL .models .learners . BayesianOptimizer (estimator = mock_estimator )
209
210
optimizer ._set_max ([0 ], [max_val ])
210
211
true_EI = (mean - optimizer .y_max - tradeoff ) * ndtr ((mean - optimizer .y_max - tradeoff ) / std ) \
211
212
+ std * norm .pdf ((mean - optimizer .y_max - tradeoff ) / std )
@@ -217,7 +218,7 @@ def test_optimizer_EI(self):
217
218
218
219
# 2. unfitted estimator
219
220
mock_estimator = mock .MockEstimator (fitted = False )
220
- optimizer = modAL .models .BayesianOptimizer (estimator = mock_estimator )
221
+ optimizer = modAL .models .learners . BayesianOptimizer (estimator = mock_estimator )
221
222
optimizer ._set_max ([0 ], [max_val ])
222
223
true_EI = (np .zeros (shape = (len (mean ), 1 )) - optimizer .y_max - tradeoff ) * ndtr ((np .zeros (shape = (len (mean ), 1 )) - optimizer .y_max - tradeoff ) / np .ones (shape = (len (mean ), 1 ))) \
223
224
+ np .ones (shape = (len (mean ), 1 )) * norm .pdf ((np .zeros (shape = (len (mean ), 1 )) - optimizer .y_max - tradeoff ) / np .ones (shape = (len (mean ), 1 )))
@@ -237,7 +238,7 @@ def test_optimizer_UCB(self):
237
238
mock_estimator = mock .MockEstimator (
238
239
predict_return = (mean , std )
239
240
)
240
- optimizer = modAL .models .BayesianOptimizer (estimator = mock_estimator )
241
+ optimizer = modAL .models .learners . BayesianOptimizer (estimator = mock_estimator )
241
242
true_UCB = mean + beta * std
242
243
243
244
np .testing .assert_almost_equal (
@@ -247,7 +248,7 @@ def test_optimizer_UCB(self):
247
248
248
249
# 2. unfitted estimator
249
250
mock_estimator = mock .MockEstimator (fitted = False )
250
- optimizer = modAL .models .BayesianOptimizer (estimator = mock_estimator )
251
+ optimizer = modAL .models .learners . BayesianOptimizer (estimator = mock_estimator )
251
252
true_UCB = np .zeros (shape = (len (mean ), 1 )) + beta * np .ones (shape = (len (mean ), 1 ))
252
253
253
254
np .testing .assert_almost_equal (
@@ -267,7 +268,7 @@ def test_selection(self):
267
268
predict_return = (mean , std )
268
269
)
269
270
270
- optimizer = modAL .models .BayesianOptimizer (estimator = mock_estimator )
271
+ optimizer = modAL .models .learners . BayesianOptimizer (estimator = mock_estimator )
271
272
optimizer ._set_max ([0 ], [max_val ])
272
273
273
274
modAL .acquisition .max_PI (optimizer , X , tradeoff = np .random .rand (), n_instances = n_instances )
@@ -515,7 +516,7 @@ def test_add_training_data(self):
515
516
y_initial = np .random .randint (0 , 2 , size = (n_samples ,))
516
517
X_new = np .random .rand (n_new_samples , n_features )
517
518
y_new = np .random .randint (0 , 2 , size = (n_new_samples ,))
518
- learner = modAL .models .ActiveLearner (
519
+ learner = modAL .models .learners . ActiveLearner (
519
520
estimator = mock .MockEstimator (),
520
521
X_training = X_initial , y_training = y_initial
521
522
)
@@ -531,7 +532,7 @@ def test_add_training_data(self):
531
532
# 2. vector class labels
532
533
y_initial = np .random .randint (0 , 2 , size = (n_samples , n_features + 1 ))
533
534
y_new = np .random .randint (0 , 2 , size = (n_new_samples , n_features + 1 ))
534
- learner = modAL .models .ActiveLearner (
535
+ learner = modAL .models .learners . ActiveLearner (
535
536
estimator = mock .MockEstimator (),
536
537
X_training = X_initial , y_training = y_initial
537
538
)
@@ -543,7 +544,7 @@ def test_add_training_data(self):
543
544
# 3. data with shape (n, )
544
545
X_initial = np .random .rand (n_samples , )
545
546
y_initial = np .random .randint (0 , 2 , size = (n_samples ,))
546
- learner = modAL .models .ActiveLearner (
547
+ learner = modAL .models .learners . ActiveLearner (
547
548
estimator = mock .MockEstimator (),
548
549
X_training = X_initial , y_training = y_initial
549
550
)
@@ -569,7 +570,7 @@ def test_predict(self):
569
570
X = np .random .rand (n_samples , n_features )
570
571
predict_return = np .random .randint (0 , 2 , size = (n_samples , ))
571
572
mock_classifier = mock .MockEstimator (predict_return = predict_return )
572
- learner = modAL .models .ActiveLearner (
573
+ learner = modAL .models .learners . ActiveLearner (
573
574
estimator = mock_classifier
574
575
)
575
576
np .testing .assert_equal (
@@ -583,7 +584,7 @@ def test_predict_proba(self):
583
584
X = np .random .rand (n_samples , n_features )
584
585
predict_proba_return = np .random .randint (0 , 2 , size = (n_samples ,))
585
586
mock_classifier = mock .MockEstimator (predict_proba_return = predict_proba_return )
586
- learner = modAL .models .ActiveLearner (
587
+ learner = modAL .models .learners . ActiveLearner (
587
588
estimator = mock_classifier
588
589
)
589
590
np .testing .assert_equal (
@@ -597,7 +598,7 @@ def test_query(self):
597
598
X = np .random .rand (n_samples , n_features )
598
599
query_idx = np .random .randint (0 , n_samples )
599
600
mock_query = mock .MockFunction (return_val = (query_idx , X [query_idx ]))
600
- learner = modAL .models .ActiveLearner (
601
+ learner = modAL .models .learners . ActiveLearner (
601
602
estimator = None ,
602
603
query_strategy = mock_query
603
604
)
@@ -610,7 +611,7 @@ def test_score(self):
610
611
test_cases = (np .random .rand () for _ in range (10 ))
611
612
for score_return in test_cases :
612
613
mock_classifier = mock .MockEstimator (score_return = score_return )
613
- learner = modAL .models .ActiveLearner (mock_classifier , mock .MockFunction (None ))
614
+ learner = modAL .models .learners . ActiveLearner (mock_classifier , mock .MockFunction (None ))
614
615
np .testing .assert_almost_equal (
615
616
learner .score (np .random .rand (5 , 2 ), np .random .rand (5 , )),
616
617
score_return
@@ -625,7 +626,7 @@ def test_teach(self):
625
626
X = np .random .rand (n_samples , 2 )
626
627
y = np .random .randint (0 , 2 , size = n_samples )
627
628
628
- learner = modAL .models .ActiveLearner (
629
+ learner = modAL .models .learners . ActiveLearner (
629
630
X_training = X_training , y_training = y_training ,
630
631
estimator = mock .MockEstimator ()
631
632
)
@@ -636,7 +637,7 @@ def test_keras(self):
636
637
pass
637
638
638
639
def test_sklearn (self ):
639
- learner = modAL .models .ActiveLearner (
640
+ learner = modAL .models .learners . ActiveLearner (
640
641
estimator = RandomForestClassifier (),
641
642
X_training = np .random .rand (10 , 10 ),
642
643
y_training = np .random .randint (0 , 2 , size = (10 ,))
@@ -661,7 +662,7 @@ def test_sparse_matrices(self):
661
662
y_pool = np .random .randint (0 , 2 , size = (n_samples , ))
662
663
initial_idx = np .random .choice (range (n_samples ), size = 5 , replace = False )
663
664
664
- learner = modAL .models .ActiveLearner (
665
+ learner = modAL .models .learners . ActiveLearner (
665
666
estimator = RandomForestClassifier (), query_strategy = query_strategy ,
666
667
X_training = X_pool [initial_idx ], y_training = y_pool [initial_idx ]
667
668
)
@@ -673,7 +674,7 @@ class TestBayesianOptimizer(unittest.TestCase):
673
674
def test_set_max (self ):
674
675
# case 1: the estimator is not fitted yet
675
676
regressor = mock .MockEstimator ()
676
- learner = modAL .models .BayesianOptimizer (estimator = regressor )
677
+ learner = modAL .models .learners . BayesianOptimizer (estimator = regressor )
677
678
self .assertEqual (- np .inf , learner .y_max )
678
679
679
680
# case 2: the estimator is fitted already
@@ -683,7 +684,7 @@ def test_set_max(self):
683
684
max_val = np .max (y )
684
685
685
686
regressor = mock .MockEstimator ()
686
- learner = modAL .models .BayesianOptimizer (
687
+ learner = modAL .models .learners . BayesianOptimizer (
687
688
estimator = regressor ,
688
689
X_training = X , y_training = y
689
690
)
@@ -697,7 +698,7 @@ def test_set_new_max(self):
697
698
y = np .random .rand (n_samples )
698
699
max_idx = np .argmax (y )
699
700
regressor = mock .MockEstimator ()
700
- learner = modAL .models .BayesianOptimizer (estimator = regressor )
701
+ learner = modAL .models .learners . BayesianOptimizer (estimator = regressor )
701
702
learner ._set_max (X , y )
702
703
np .testing .assert_equal (learner .X_max , X [max_idx ])
703
704
np .testing .assert_equal (learner .y_max , y [max_idx ])
@@ -708,7 +709,7 @@ def test_set_new_max(self):
708
709
y = np .random .rand (n_samples )
709
710
710
711
regressor = mock .MockEstimator ()
711
- learner = modAL .models .BayesianOptimizer (
712
+ learner = modAL .models .learners . BayesianOptimizer (
712
713
estimator = regressor ,
713
714
X_training = X , y_training = y
714
715
)
@@ -727,7 +728,7 @@ def test_set_new_max(self):
727
728
y = np .random .rand (n_samples )
728
729
729
730
regressor = mock .MockEstimator ()
730
- learner = modAL .models .BayesianOptimizer (
731
+ learner = modAL .models .learners . BayesianOptimizer (
731
732
estimator = regressor ,
732
733
X_training = X , y_training = y
733
734
)
@@ -747,7 +748,7 @@ def test_get_max(self):
747
748
y [max_idx ] = 10
748
749
749
750
regressor = mock .MockEstimator ()
750
- optimizer = modAL .models .BayesianOptimizer (regressor , X_training = X , y_training = y )
751
+ optimizer = modAL .models .learners . BayesianOptimizer (regressor , X_training = X , y_training = y )
751
752
X_max , y_max = optimizer .get_max ()
752
753
np .testing .assert_equal (X_max , X [max_idx ])
753
754
np .testing .assert_equal (y_max , y [max_idx ])
@@ -758,7 +759,7 @@ def test_teach(self):
758
759
for n_samples in range (1 , 100 ):
759
760
for n_features in range (1 , 100 ):
760
761
regressor = mock .MockEstimator ()
761
- learner = modAL .models .BayesianOptimizer (estimator = regressor )
762
+ learner = modAL .models .learners . BayesianOptimizer (estimator = regressor )
762
763
763
764
X = np .random .rand (n_samples , 2 )
764
765
y = np .random .rand (n_samples )
@@ -771,7 +772,7 @@ def test_teach(self):
771
772
y = np .random .rand (n_samples )
772
773
773
774
regressor = mock .MockEstimator ()
774
- learner = modAL .models .BayesianOptimizer (
775
+ learner = modAL .models .learners . BayesianOptimizer (
775
776
estimator = regressor ,
776
777
X_training = X , y_training = y
777
778
)
@@ -783,17 +784,17 @@ class TestCommittee(unittest.TestCase):
783
784
def test_set_classes (self ):
784
785
# 1. test unfitted learners
785
786
for n_learners in range (1 , 10 ):
786
- learner_list = [modAL .models .ActiveLearner (estimator = mock .MockEstimator (fitted = False ))
787
+ learner_list = [modAL .models .learners . ActiveLearner (estimator = mock .MockEstimator (fitted = False ))
787
788
for idx in range (n_learners )]
788
- committee = modAL .models .Committee (learner_list = learner_list )
789
+ committee = modAL .models .learners . Committee (learner_list = learner_list )
789
790
self .assertEqual (committee .classes_ , None )
790
791
self .assertEqual (committee .n_classes_ , 0 )
791
792
792
793
# 2. test fitted learners
793
794
for n_classes in range (1 , 10 ):
794
- learner_list = [modAL .models .ActiveLearner (estimator = mock .MockEstimator (classes_ = np .asarray ([idx ])))
795
+ learner_list = [modAL .models .learners . ActiveLearner (estimator = mock .MockEstimator (classes_ = np .asarray ([idx ])))
795
796
for idx in range (n_classes )]
796
- committee = modAL .models .Committee (learner_list = learner_list )
797
+ committee = modAL .models .learners . Committee (learner_list = learner_list )
797
798
np .testing .assert_equal (
798
799
committee .classes_ ,
799
800
np .unique (range (n_classes ))
@@ -803,7 +804,7 @@ def test_predict(self):
803
804
for n_learners in range (1 , 10 ):
804
805
for n_instances in range (1 , 10 ):
805
806
prediction = np .random .randint (10 , size = (n_instances , n_learners ))
806
- committee = modAL .models .Committee (
807
+ committee = modAL .models .learners . Committee (
807
808
learner_list = [mock .MockActiveLearner (
808
809
mock .MockEstimator (classes_ = np .asarray ([0 ])),
809
810
predict_return = prediction [:, learner_idx ]
@@ -825,7 +826,7 @@ def test_predict_proba(self):
825
826
predict_proba_return = vote_proba_output [:, learner_idx , :],
826
827
predictor = mock .MockEstimator (classes_ = list (range (n_classes )))
827
828
) for learner_idx in range (n_learners )]
828
- committee = modAL .models .Committee (learner_list = learner_list )
829
+ committee = modAL .models .learners . Committee (learner_list = learner_list )
829
830
np .testing .assert_almost_equal (
830
831
committee .predict_proba (np .random .rand (n_samples , 1 )),
831
832
np .mean (vote_proba_output , axis = 1 )
@@ -841,7 +842,7 @@ def test_vote(self):
841
842
predictor = mock .MockEstimator (classes_ = [0 ])
842
843
)
843
844
for member_idx in range (n_members )]
844
- committee = modAL .models .Committee (learner_list = learner_list )
845
+ committee = modAL .models .learners . Committee (learner_list = learner_list )
845
846
np .testing .assert_array_almost_equal (
846
847
committee .vote (np .random .rand (n_instances ).reshape (- 1 , 1 )),
847
848
vote_output
@@ -857,7 +858,7 @@ def test_vote_proba(self):
857
858
predict_proba_return = vote_proba_output [:, learner_idx , :],
858
859
predictor = mock .MockEstimator (classes_ = list (range (n_classes )))
859
860
) for learner_idx in range (n_learners )]
860
- committee = modAL .models .Committee (learner_list = learner_list )
861
+ committee = modAL .models .learners . Committee (learner_list = learner_list )
861
862
np .testing .assert_almost_equal (
862
863
committee .vote_proba (np .random .rand (n_samples , 1 )),
863
864
vote_proba_output
@@ -872,16 +873,16 @@ def test_teach(self):
872
873
X = np .random .rand (n_samples , 2 )
873
874
y = np .random .randint (0 , 2 , size = n_samples )
874
875
875
- learner_1 = modAL .models .ActiveLearner (
876
+ learner_1 = modAL .models .learners . ActiveLearner (
876
877
X_training = X_training , y_training = y_training ,
877
878
estimator = mock .MockEstimator (classes_ = [0 , 1 ])
878
879
)
879
- learner_2 = modAL .models .ActiveLearner (
880
+ learner_2 = modAL .models .learners . ActiveLearner (
880
881
X_training = X_training , y_training = y_training ,
881
882
estimator = mock .MockEstimator (classes_ = [0 , 1 ])
882
883
)
883
884
884
- committee = modAL .models .Committee (
885
+ committee = modAL .models .learners . Committee (
885
886
learner_list = [learner_1 , learner_2 ]
886
887
)
887
888
@@ -897,7 +898,7 @@ def test_predict(self):
897
898
# assembling the Committee
898
899
learner_list = [mock .MockActiveLearner (predict_return = vote [:, member_idx ])
899
900
for member_idx in range (n_members )]
900
- committee = modAL .models .CommitteeRegressor (learner_list = learner_list )
901
+ committee = modAL .models .learners . CommitteeRegressor (learner_list = learner_list )
901
902
np .testing .assert_array_almost_equal (
902
903
committee .predict (np .random .rand (n_instances ).reshape (- 1 , 1 ), return_std = False ),
903
904
np .mean (vote , axis = 1 )
@@ -914,7 +915,7 @@ def test_vote(self):
914
915
# assembling the Committee
915
916
learner_list = [mock .MockActiveLearner (predict_return = vote_output [:, member_idx ])
916
917
for member_idx in range (n_members )]
917
- committee = modAL .models .CommitteeRegressor (learner_list = learner_list )
918
+ committee = modAL .models .learners . CommitteeRegressor (learner_list = learner_list )
918
919
np .testing .assert_array_almost_equal (
919
920
committee .vote (np .random .rand (n_instances ).reshape (- 1 , 1 )),
920
921
vote_output
0 commit comments