@@ -588,24 +588,28 @@ def test_logistic_regression_sample_weights():
588
588
# Test that passing sample_weight as ones is the same as
589
589
# not passing them at all (default None)
590
590
for solver in ['lbfgs' , 'liblinear' ]:
591
- clf_sw_none = LR (solver = solver , fit_intercept = False )
591
+ clf_sw_none = LR (solver = solver , fit_intercept = False ,
592
+ random_state = 42 )
592
593
clf_sw_none .fit (X , y )
593
- clf_sw_ones = LR (solver = solver , fit_intercept = False )
594
+ clf_sw_ones = LR (solver = solver , fit_intercept = False ,
595
+ random_state = 42 )
594
596
clf_sw_ones .fit (X , y , sample_weight = np .ones (y .shape [0 ]))
595
597
assert_array_almost_equal (
596
598
clf_sw_none .coef_ , clf_sw_ones .coef_ , decimal = 4 )
597
599
598
600
# Test that sample weights work the same with the lbfgs,
599
601
# newton-cg, and 'sag' solvers
600
- clf_sw_lbfgs = LR (solver = 'lbfgs' , fit_intercept = False )
602
+ clf_sw_lbfgs = LR (solver = 'lbfgs' , fit_intercept = False , random_state = 42 )
601
603
clf_sw_lbfgs .fit (X , y , sample_weight = sample_weight )
602
- clf_sw_n = LR (solver = 'newton-cg' , fit_intercept = False )
604
+ clf_sw_n = LR (solver = 'newton-cg' , fit_intercept = False , random_state = 42 )
603
605
clf_sw_n .fit (X , y , sample_weight = sample_weight )
604
- clf_sw_sag = LR (solver = 'sag' , fit_intercept = False , tol = 1e-10 )
606
+ clf_sw_sag = LR (solver = 'sag' , fit_intercept = False , tol = 1e-10 ,
607
+ random_state = 42 )
605
608
# ignore convergence warning due to small dataset
606
609
with ignore_warnings ():
607
610
clf_sw_sag .fit (X , y , sample_weight = sample_weight )
608
- clf_sw_liblinear = LR (solver = 'liblinear' , fit_intercept = False )
611
+ clf_sw_liblinear = LR (solver = 'liblinear' , fit_intercept = False ,
612
+ random_state = 42 )
609
613
clf_sw_liblinear .fit (X , y , sample_weight = sample_weight )
610
614
assert_array_almost_equal (
611
615
clf_sw_lbfgs .coef_ , clf_sw_n .coef_ , decimal = 4 )
@@ -619,9 +623,9 @@ def test_logistic_regression_sample_weights():
619
623
# to be 2 for all instances of class 2
620
624
for solver in ['lbfgs' , 'liblinear' ]:
621
625
clf_cw_12 = LR (solver = solver , fit_intercept = False ,
622
- class_weight = {0 : 1 , 1 : 2 })
626
+ class_weight = {0 : 1 , 1 : 2 }, random_state = 42 )
623
627
clf_cw_12 .fit (X , y )
624
- clf_sw_12 = LR (solver = solver , fit_intercept = False )
628
+ clf_sw_12 = LR (solver = solver , fit_intercept = False , random_state = 42 )
625
629
clf_sw_12 .fit (X , y , sample_weight = sample_weight )
626
630
assert_array_almost_equal (
627
631
clf_cw_12 .coef_ , clf_sw_12 .coef_ , decimal = 4 )
@@ -630,19 +634,21 @@ def test_logistic_regression_sample_weights():
630
634
# since the patched liblinear code is different.
631
635
clf_cw = LogisticRegression (
632
636
solver = "liblinear" , fit_intercept = False , class_weight = {0 : 1 , 1 : 2 },
633
- penalty = "l1" , tol = 1e-5 )
637
+ penalty = "l1" , tol = 1e-5 , random_state = 42 )
634
638
clf_cw .fit (X , y )
635
639
clf_sw = LogisticRegression (
636
- solver = "liblinear" , fit_intercept = False , penalty = "l1" , tol = 1e-5 )
640
+ solver = "liblinear" , fit_intercept = False , penalty = "l1" , tol = 1e-5 ,
641
+ random_state = 42 )
637
642
clf_sw .fit (X , y , sample_weight )
638
643
assert_array_almost_equal (clf_cw .coef_ , clf_sw .coef_ , decimal = 4 )
639
644
640
645
clf_cw = LogisticRegression (
641
646
solver = "liblinear" , fit_intercept = False , class_weight = {0 : 1 , 1 : 2 },
642
- penalty = "l2" , dual = True )
647
+ penalty = "l2" , dual = True , random_state = 42 )
643
648
clf_cw .fit (X , y )
644
649
clf_sw = LogisticRegression (
645
- solver = "liblinear" , fit_intercept = False , penalty = "l2" , dual = True )
650
+ solver = "liblinear" , fit_intercept = False , penalty = "l2" , dual = True ,
651
+ random_state = 42 )
646
652
clf_sw .fit (X , y , sample_weight )
647
653
assert_array_almost_equal (clf_cw .coef_ , clf_sw .coef_ , decimal = 4 )
648
654
0 commit comments