(self, datas, labels, attrs)
return gini_min, split_attr, split_value, left_data, left_label, right_data, right_label
得到datas数据中最好的分割属性
            params:
                datas               训练数据 eg,[[1 , 3, ,4]]
                labels              根据训练数据对应的label
                attrs               训练属性列表
            return
                
            raise:
                None
得到datas数据中最好的分割属性
            params:
                datas               训练数据 eg,[[1 , 3, ,4]]
                labels              根据训练数据对应的label
                attrs               训练属性列表
            return
                
            raise:
                None
得到datas数据中最好的分割属性 params : datas 训练数据 eg [[ 1 3 4 ]] labels 根据训练数据对应的label attrs 训练属性列表 return raise : None
def get_best_feature(self, datas, labels, attrs):
        """得到datas数据中最好的分割属性
            params:
                datas               训练数据 eg,[[1 , 3, ,4]]
                labels              根据训练数据对应的label
                attrs               训练属性列表
            return
                
            raise:
                None
        """
        gini_min = float('inf')
        left_data = None
        left_label = None
        right_data = None
        right_label = None
        split_attr = None
        split_value = None
        for split_index in range(len(attrs)):
            _split_value = self.get_split_value(datas, split_index)
            gini, _left_data, _left_label, _right_data, _right_label = self.calc_gini(
                datas, labels, split_index, _split_value)
            if gini < gini_min:
                gini_min = gini
                split_attr = attrs[split_index]
                left_data = _left_data
                left_label = _left_label
                right_data = _right_data
                right_label = _right_label
                split_value = _split_value
        return gini_min, split_attr, split_value, left_data, left_label, right_data, right_label
def get_best_feature ( self , datas , labels , attrs ) : gini_min = float ( 'inf' ) left_data = None left_label = None right_data = None right_label = None split_attr = None split_value = None for split_index in range ( len ( attrs ) ) : _split_value = self . get_split_value ( datas , split_index ) gini , _left_data , _left_label , _right_data , _right_label = self . calc_gini ( datas , labels , split_index , _split_value ) if gini < gini_min : gini_min = gini split_attr = attrs [ split_index ] left_data = _left_data left_label = _left_label right_data = _right_data right_label = _right_label split_value = _split_value return gini_min , split_attr , split_value , left_data , left_label , right_data , right_label