Exemple #1
0
 def test_adaboost_reg_base_estimator(self):
     np.random.seed(0)
     stump_estimator = SklTreeRegressionLearner(max_depth=1)
     tree_estimator = SklTreeRegressionLearner()
     stump = SklAdaBoostRegressionLearner(base_estimator=stump_estimator)
     tree = SklAdaBoostRegressionLearner(base_estimator=tree_estimator)
     results = CrossValidation(self.housing, [stump, tree], k=3)
     rmse = RMSE(results)
     self.assertGreaterEqual(rmse[0], rmse[1])
Exemple #2
0
 def test_input_learner(self):
     """Check if base learner properly changes with learner on the input"""
     max_depth = 2
     default_base_est = self.widget.base_estimator
     self.assertIsInstance(default_base_est, SklTreeRegressionLearner)
     self.assertIsNone(default_base_est.params.get("max_depth"))
     self.send_signal("Learner",
                      SklTreeRegressionLearner(max_depth=max_depth))
     self.assertEqual(self.widget.base_estimator.params.get("max_depth"),
                      max_depth)
     self.widget.apply_button.button.click()
     output_base_est = self.get_output("Learner").params.get(
         "base_estimator")
     self.assertEqual(output_base_est.max_depth, max_depth)
Exemple #3
0
class OWAdaBoostRegression(owadaboost.OWAdaBoostClassification):
    name = "AdaBoost"
    description = "An ensemble meta-algorithm that combines weak learners " \
                  "and adapts to the 'hardness' of each training sample. "
    icon = "icons/AdaBoost.svg"
    priority = 80

    LEARNER = SklAdaBoostRegressionLearner

    inputs = [("Learner", LearnerRegression, "set_base_learner")]

    losses = ["Linear", "Square", "Exponential"]
    loss = Setting(0)

    DEFAULT_BASE_ESTIMATOR = SklTreeRegressionLearner()

    def add_specific_parameters(self, box):
        self.loss_combo = gui.comboBox(box,
                                       self,
                                       "loss",
                                       label="Loss:",
                                       orientation=Qt.Horizontal,
                                       items=self.losses,
                                       callback=self.settings_changed)

    def create_learner(self):
        return self.LEARNER(base_estimator=self.base_estimator,
                            n_estimators=self.n_estimators,
                            learning_rate=self.learning_rate,
                            preprocessors=self.preprocessors,
                            loss=self.losses[self.loss].lower())

    def get_learner_parameters(self):
        return (("Base estimator", self.base_estimator),
                ("Number of estimators", self.n_estimators),
                ("Loss", self.losses[self.loss].capitalize()))
 def test_regression(self):
     table = Table('housing')
     learn = SklTreeRegressionLearner()
     model = learn(table)
     pred = model(table)
     self.assertTrue(np.all(table.Y.flatten() == pred))