本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com
model._LogitModel - 逻辑回归模型类
model._LogitModel是逻辑回归模型类
由于_LogitModel属于内置类,它由model.scoreCard函数返回
因此,我们只介绍类的属性与方法,而不介绍它的构建方法
_LogitModel类拥有如下的属性:
说明:
由于逻辑回归模型在训练时,会先对数据进行归一化再进行训练,因此训练完后模型的参数和阈值为w_norm和b_norm
但是,我们应用时需要的是面向原始数据(未归一化的数据)的权重阈值,因此将模型参数进行反归一化,得到w和b
_LogitModel类有如下的方法:
predict:预测函数
predict方法用于预测样本的概率和决策值(即wx+b)
完整调用格式如下:
p,decision = logit_model.predict(x) # 这里的logit_model指的是一个_LogitModel类
predict-入参说明:
数据类型:pandas.DataFrame
predict-出参说明:
数据类型:pandas.core.series
数据类型: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