bbbrisk-api说明

【说明】model._LogitModel类

作者 : 老饼 发表日期 : 2022-06-09 04:41:52 更新日期 : 2025-03-05 16:24:59
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com



model._LogitModel - 逻辑回归模型类

model._LogitModel是逻辑回归模型类

由于_LogitModel属于内置类,它由model.scoreCard函数返回

因此,我们只介绍类的属性与方法,而不介绍它的构建方法


一、类的属性


_LogitModel类拥有如下的属性:

  • var          : 入模变量名称
  • w            : 模型权重
  • b             : 模型阈值
  • w_norm  : 模型归一化训练时的权重
  • b_norm  : 模型归一化训练时的阈值
  • param_dict  : 模型参数,字典格式,包含了w和b
  • train_auc   : 训练样本的AUC
  • train_ks     : 训练样本的KS
  • test_auc    : 测试样本的AUC
  • test_ks      :  测试样本的KS


说明:

由于逻辑回归模型在训练时,会先对数据进行归一化再进行训练,因此训练完后模型的参数和阈值为w_norm和b_norm

但是,我们应用时需要的是面向原始数据(未归一化的数据)的权重阈值,因此将模型参数进行反归一化,得到w和b








二、类的方法


_LogitModel类有如下的方法:

predict:预测函数

predict方法用于预测样本的概率和决策值(即wx+b)

完整调用格式如下:

p,decision = logit_model.predict(x)  # 这里的logit_model指的是一个_LogitModel类


predict-入参说明:

  • x:样本的变量数据

         数据类型:pandas.DataFrame

predict-出参说明:

  • p:样本属于1类(即坏客户)的概率

     数据类型:pandas.core.series

  • decision:样本的决策值(即wx+b)

     数据类型:pandas.core.series







三、使用示例


model._LogitModel类使用示例如下:

import bbbrisk as br
data       = br.datasets.load_bloan()                                                # 加载数据
x,y        = data.iloc[:,:-1],data['is_bad']                                         # 样本变量与标签
bin_sets   = br.bins.batch.autoBins(x, y,enum_var=['city','marital'])                # 自动分箱,如果有枚举变量,必须指出哪些是枚举变量
logit_model,card = br.model.scoreCard(x,y,bin_sets,train_param={'random_state':0})   # 构建评分卡,为了使结果能重现,笔者设置了固定的随机种子

# 打印模型的属性  
print('* 入模变量var: '          ,logit_model.var        )                           # 入模变量
print('* 模型权重w: '            ,logit_model.w          )                           # 模型权重
print('* 模型阈值b: '            ,logit_model.b          )                           # 模型阈值
print('* 模型归一化权重w_norm: ' ,logit_model.w_norm     )                           # 模型归一化训练时的权重
print('* 模型归一化阈值b_norm: ' ,logit_model.b_norm     )                           # 模型归一化训练时的阈值
print('* 模型参数param_dict: '   ,logit_model.param_dict )                           # 模型参数,字典格式
print('* 训练样本的AUC: '        ,logit_model.train_auc  )                           # 训练样本的AUC
print('* 训练样本的KS:  '        ,logit_model.train_ks   )                           # 训练样本的KS
print('* 测试样本的AUC: '        ,logit_model.test_auc   )                           # 测试样本的AUC
print('* 测试样本的KS:  '        ,logit_model.test_ks    )                           # 测试样本的KS

# 用模型进行预测
p,decision = logit_model.predict(x[logit_model.var])                                 # 用模型进行预测	    
print('\n* 模型对样本的预测概率:\n'  ,p)                                            # 模型对样本的预测概率
print('\n* 模型对样本的预测决策值:\n',decision)                                     # 模型对样本的预测决策值


运行结果如下:









好了,以上就是model._LogitModel类的使用方法了~










 End 





联系老饼