决策树分箱
背景:
风控领域的特征需要进行分箱,在每个箱内计算好客率、坏客率等指标。
生成数据集:
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))))


浙公网安备 33010602011771号