Esempio n. 1
0
    def __init__(self, n_estimators, learning_rate, min_samples_split,
                 min_impurity, max_depth, regression):
        self.n_estimators = n_estimators
        self.learning_rate = learning_rate
        self.min_samples_split = min_samples_split
        self.min_impurity = min_impurity
        self.max_depth = max_depth
        self.regression = regression

        self.bar = progressbar.ProgressBar(widgets=bar_widgets)

        self.loss = SquareLoss()  #回归树残差 -(y - y_pred)
        if not self.regression:  #分类树残差 y - p
            self.loss = SotfMaxLoss()

        #分类问题也使用回归树,利用残差去学习概率
        self.trees = []
        for i in range(self.n_estimators):
            self.trees.append(
                RegressionTree(min_samples_split=self.min_samples_split,
                               min_impurity=self.min_impurity,
                               max_depth=self.max_depth))
Esempio n. 2
0
    def __init__(self, n_estimators, learning_rate, min_samples_split,
                 min_impurity, max_depth, regression):
        self.n_estimators = n_estimators
        self.learning_rate = learning_rate
        self.min_samples_split = min_samples_split
        self.min_impurity = min_impurity
        self.max_depth = max_depth
        self.regression = regression
        self.bar = progressbar.ProgressBar(widgets=bar_widgets)

        # Square loss for regression
        # Log loss for classification
        self.loss = SquareLoss()
        if not self.regression:
            self.loss = CrossEntropy()

        # Initialize regression trees
        self.trees = []
        for _ in range(n_estimators):
            tree = RegressionTree(min_samples_split=self.min_samples_split,
                                  min_impurity=min_impurity,
                                  max_depth=self.max_depth)
            self.trees.append(tree)
Esempio n. 3
0
    def __init__(self, n_estimators, learning_rate, min_samples_split,
                 min_impurity, max_depth, regression):
        self.n_estimators = n_estimators
        self.learning_rate = learning_rate
        self.min_samples_split = min_samples_split
        self.min_impurity = min_impurity
        self.max_depth = max_depth
        self.regression = regression

        self.bar = progressbar.ProgressBar(widgets=bar_widgets)

        if self.regression:
            self.loss = SquareLoss()
        else:
            self.loss = SotfMaxLoss()

        # also use RegressionTree for classification problems, we study the probability
        self.trees = [
            RegressionTree(min_samples_split=self.min_samples_split,
                           min_impurity=self.min_impurity,
                           max_depth=self.max_depth)
            for _ in range(self.n_estimators)
        ]