Gini分箱
def calc_score_median(sample_set, var): ''' 计算相邻评分的中位数,以便进行决策树二元切分 param sample_set: 待切分样本 param var: 分割变量名称 ''' var_list = list(np.unique(sample_set[var])) var_median_list = [] for i in range(len(var_list)-1): var_median = (var_list[i]+var_list[i+1])/2 var_median_list.append(var_median) return var_median_list def choose_best_split(sample_set, var, min_sample): ''' 使用CART分类决策树选择最好的样本切分点 返回切分点 param sample_set: 待切分样本 param var: 分割变量名称 param min_sample: 待切分样本的最小样本量(限制条件) ''' #根据样本评分计算相邻不同分数的中间值 score_median_list = calc_score_median(sample_set, var) median_len = len(score_median_list) sample_cnt