决策树分箱

背景:

风控领域的特征需要进行分箱,在每个箱内计算好客率、坏客率等指标。

生成数据集:

 

 

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
dic = {
       '姓名':['小王','小王','小王','小明','小明'],
       '科目':['语文','数学','英语','语文','数学']
        ,'成绩':[np.nan,np.nan,3,5,6],'y':[0,1,0,1,1]
      }
df = pd.DataFrame(dic,index=['a','b','c','d','e'])

clf = DecisionTreeClassifier(min_weight_fraction_leaf = 0.1)
clf.fit(df[['成绩']].fillna(0),df['y'].values)

sps = list(set(sorted(clf.tree_.threshold)))
sps = [-float('inf')] +sps +[float('inf')]
df['copy_成绩'] = pd.cut(df['成绩'], sorted(list(set(sps))))

posted @ 2022-05-12 16:00  ttttttian  阅读(154)  评论(0)    收藏  举报