(self, datas, weights, classifiers, diff=0.2)
datas
        weights , 每个数据需要拟合的数值
        F0(x) = 0
        F1(x) = F0(x) + 树的分值
        FN(x) = FN(x) + 树(N-1)
        r(x) = sum ( yi - F
datas
        weights , 每个数据需要拟合的数值
        F0(x) = 0
        F1(x) = F0(x) + 树的分值
        FN(x) = FN(x) + 树(N-1)
        r(x) = sum ( yi - F
datas weights 每个数据需要拟合的数值 F0 ( x ) = 0 F1 ( x ) = F0 ( x ) + 树的分值 FN ( x ) = FN ( x ) + 树 ( N - 1 ) r ( x ) = sum ( yi - F
def train(self, datas, weights, classifiers, diff=0.2):
        '''
        datas
        weights , 每个数据需要拟合的数值
        F0(x) = 0
        F1(x) = F0(x) + 树的分值
        FN(x) = FN(x) + 树(N-1)
        r(x) = sum ( yi - F
        '''
        r = deepcopy(weights)

        for _ in range(len(classifiers)):
            _classifiers = [Classifier(classifier) for classifier in classifiers]
            # 更新每个分类器 ， 与上轮的
            # 残差 ， 计算需要拟合的weight
            for _classifier in _classifiers:
                _classifier.updates_fit_values(datas, r)
                _classifier.sync()
            #计算损失函数值 ， 分类器的标记
            loss, ci = self.find_min_loss(datas, r, _classifiers)
            self.classifiers.append(deepcopy(_classifiers[ci]))
            #更新下一轮残差是当前一轮分类器拟合上一轮残差剩余的残差
            #所以更新残差的时候是分类器，而不是所有分类器都参加更正
            r = self.update_residual(datas, r , _classifiers[ci])
            #损失数值小于要求值之后 ， 会跳出方程
            if loss < diff:
                break
def train ( self , datas , weights , classifiers , diff = 0.2 ) : r = deepcopy ( weights ) for _ in range ( len ( classifiers ) ) : _classifiers = [ Classifier ( classifier ) for classifier in classifiers ] # 更新每个分类器 ， 与上轮的 # 残差 ， 计算需要拟合的weight for _classifier in _classifiers : _classifier . updates_fit_values ( datas , r ) _classifier . sync ( ) #计算损失函数值 ， 分类器的标记 loss , ci = self . find_min_loss ( datas , r , _classifiers ) self . classifiers . append ( deepcopy ( _classifiers [ ci ] ) ) #更新下一轮残差是当前一轮分类器拟合上一轮残差剩余的残差 #所以更新残差的时候是分类器，而不是所有分类器都参加更正 r = self . update_residual ( datas , r , _classifiers [ ci ] ) #损失数值小于要求值之后 ， 会跳出方程 if loss < diff : break