目录
老饼讲解:一步一步上手学习

【说明】函数说明-model._Card类

作者 : 老饼 发表日期 : 2026-03-21 01:26:55 更新日期 : 2026-05-13 00:56:36
老饼讲解-简单易懂,干货满满,爽过嗦螺!


类对象说明:model._Card- 评分卡表类

model._Card是评分卡表类,它用来记录一个评分卡表的信息以及相关方法,由于_Card属于内置类,它由model.scoreCard函数返回,因此,我们只介绍类的属性与方法,而不介绍它的构建方法。

1. 类的属性

_Card类拥有如下的属性:

var      :评分卡所用的变量名称

d         :模型odds为d时

B         :评分为B

k         :odds每降k倍

S         :分数提升S分

factor :模型转评分时使用的factor

offset :模型转评分时使用的offset

baseScore            :基础分

featureScore        :特征得分

featureScore_dict:特征得分(字典格式)

2. 类的方法

_Card类拥有如下的方法:

  • build :用指定参数来重新构建评分卡表

build的完整调用方式如下:

card.build(d=50,B=600,k=2,S=20)

d,B,k,S的意义参见类的属性说明

  • build_with_range:用指定范围来重新构建评分卡表

build_with_range的完整调用方式如下:

card.build_with_range(score_min,score_maxe,d=50,k=2)

其中,score_min和score_max是评分的最大最小值,d和k是默认参数(它们的意义参见类的属性说明)

  • predict:用评分卡表进行评分

predict的完整调用方式如下:

score= card.predict(x)                             # 只进行评分
score,score_item = card.predict(x,with_item=True)  # 评分,并返回每项得分

3. 特别说明

在使用model.scoreCard构建评分卡时,它会默认使用d=50,B=600,k=2,S=20来构建_Card类。

如果希望修改评分参数,则可以通过build方build_with_range来重新生成,这里的生成指的是生成卡表,而不会重新训练模型。

二、使用示例

model._LogitModel类使用示例如下

  • 示例一:_Card类的属性
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'])          # 自动分箱
model,card = br.model.scoreCard(x,y,bin_sets,train_param={'random_state':0})   # 构建评分卡

# 打印模型的属性  
print('* 入模变量var: '       ,card.var    )                                   # 评分卡所用的变量
print('* 转评分参数d: '       ,card.d      )                                   # 模型odds为d时
print('* 转评分参数B: '       ,card.B      )                                   # 评分为B
print('* 转评分参数k: '       ,card.k      )                                   # odds每降k倍
print('* 转评分参数S: '       ,card.S      )                                   # 分数提升S分
print('* 转评分系数factor: '  ,card.factor )                                   # 模型转评分时使用的factor
print('* 转评分系数offset: '  ,card.offset )                                   # 模型转评分时使用的offset
print('\n* 基础得分baseScore:        ' ,card.baseScore         )               # 基础分
print('\n* 特征得分featureScore:   \n' ,card.featureScore      )               # 特征得分
print('\n* 测特征得分字典格式   :  \n' ,card.featureScore_dict )               # 特征得分(字典格式)

运行结果如下:

model._Card类的属性


  • 示例二:_Card类的方法-使用示例
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'])          # 自动分箱
model,card = br.model.scoreCard(x,y,bin_sets,train_param={'random_state':0})   # 构建评分卡

# card的使用-用评分卡预测
test_x     = x[card.var][:2]                                                   # 用于预测的数据
score      = card.predict(test_x)                                              # 用评分卡进行评分  
print('\n* ---评分卡的评分(默认)---:\n',score)                                 # 打印评分

# card的使用-指定参数生成评分卡
card.build(d=50,B=200,k=2,S=20)                                                # 用指定参数重新生成评分卡
score      = card.predict(test_x)                                              # 用评分卡进行评分 
print('\n* ---评分卡的评分(指定参数)---:\n',score)                             # 打印评分


# card的使用-指定参数生成评分卡
card.build_with_range(60,99,d=50,k=2)                                          # 指定范围重新生成评分卡
score      = card.predict(test_x)                                              # 用评分卡进行评分 
print('\n* ---评分卡的评分(指定范围)---:\n',score)                             # 打印评分

运行结果如下:

model._Card类的方法得到的结果



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



图标 评论
添加评论