关于分箱时类别型变量和连续型变量

1、在卡方分箱时候比如男女用1和0表示,小额贷次数用1、2、3、4表示那是类别型变量还是连续型变量?
2、做模型的时候男女的话一般会做个onehotencoder,小额贷次数是labelencoder,用老师的代码做卡方分箱也不用先做个独热编码或者标签编码吗?
3、卡方分箱里面对连续型变量进行处理我没看到有对(ii)中类别型变量超过超过5的进行处理的代码在哪?
 
# (iii)对连续型变量进行分箱,包括(ii)中的变量
continous_merged_dict = {}
for col in num_features:
    print "{} is in processing".format(col)
    if -1 not in set(trainData[col]):   #-1会当成特殊值处理。如果没有-1,则所有取值都参与分箱
        max_interval = 5   #分箱后的最多的箱数
        cutOff = ChiMerge(trainData, col, 'y', max_interval=max_interval,special_attribute=[],minBinPcnt=0)
        trainData[col+'_Bin'] = trainData[col].map(lambda x: AssignBin(x, cutOff,special_attribute=[]))
        monotone = BadRateMonotone(trainData, col+'_Bin', 'y')   # 检验分箱后的单调性是否满足

田野

赞同来自: fish

1、在卡方分箱时候比如男女用1和0表示,小额贷次数用1、2、3、4表示那是类别型变量还是连续型变量? 答:性别是类别型变量,小额贷次数是连续型变量   2,做模型的时候男女的话一般会做个onehotencoder,小额贷次数是labelencoder,用老师的代码做卡方分箱也不用先做个独热编码或者标签编码吗? 答:在逻辑回归评分卡模型中,我们用的是WOE编码,不需要用其他的编码。当然,对于取值很多的类别型变量,需要先用bad rate编码以便排序   3,卡方分箱里面对连续型变量进行处理我没看到有对(ii)中类别型变量超过超过5的进行处理的代码在哪? 答:有的,在程序scorecard.py中,
# (ii)当取值>5时:用bad rate进行编码,放入连续型变量里
br_encoding_dict = {}   #记录按照bad rate进行编码的变量,及编码方式
for col in more_value_features:
    br_encoding = BadRateEncoding(trainData, col, 'y')
    trainData[col+'_br_encoding'] = br_encoding['encoding']
    br_encoding_dict[col] = br_encoding['bad_rate']
    num_features.append(col+'_br_encoding')
 

要回复问题请先登录注册