예제 #1
0
 def test_too_many_components(self):
     # do not change n_components
     d = table(5, 5, 1)
     model = PLSRegressionLearner(n_components=4)(d)
     self.assertEqual(model.skl_model.n_components, 4)
     # need to use fewer components; column limited
     d = table(6, 5, 1)
     model = PLSRegressionLearner(n_components=6)(d)
     self.assertEqual(model.skl_model.n_components, 4)
     # need to use fewer components; row limited
     d = table(5, 6, 1)
     model = PLSRegressionLearner(n_components=6)(d)
     self.assertEqual(model.skl_model.n_components, 4)
 def test_too_many_components(self):
     # do not change
     d = table(5, 5, 1)
     model = PLSRegressionLearner(n_components=5)(d)
     self.assertEqual(model.skl_model.n_components, 5)
     # need to use less components
     d = table(6, 5, 1)
     model = PLSRegressionLearner(n_components=6)(d)
     self.assertEqual(model.skl_model.n_components, 5)
     # number of components only depends on the number of columns
     d = table(5, 6, 1)
     model = PLSRegressionLearner(n_components=6)(d)
     self.assertEqual(model.skl_model.n_components, 6)
예제 #3
0
 def test_allow_y_dim(self):
     """ The current PLS version allows only a single Y dimension. """
     d = table(10, 5, 1)
     learner = PLSRegressionLearner(n_components=2)
     learner(d)
     for n_class_vars in [0, 2]:
         d = table(10, 5, n_class_vars)
         with self.assertRaises(ValueError):
             learner(d)
예제 #4
0
 def test_compare_to_sklearn(self):
     d = table(10, 5, 1)
     d.X = np.random.RandomState(0).rand(*d.X.shape)
     d.Y = np.random.RandomState(0).rand(*d.Y.shape)
     orange_model = PLSRegressionLearner()(d)
     scikit_model = PLSRegression().fit(d.X, d.Y)
     np.testing.assert_almost_equal(
         scikit_model.predict(d.X).ravel(), orange_model(d))
     np.testing.assert_almost_equal(scikit_model.coef_,
                                    orange_model.coefficients)
예제 #5
0
 def create_learner(self):
     common_args = {'preprocessors': self.preprocessors}
     return PLSRegressionLearner(n_components=self.n_components,
                                 max_iter=self.max_iter,
                                 **common_args)