1. 需求
在做项目时,源代码可能无法满足我们的业务需求,因此我们需要改变已有包中的某些函数,然后用自己的函数去覆盖它
,从而得到符合项目需求的结果.
在逻辑回归的风险模型
中,主要用到的是GLMResultsWrapper
进行覆盖。其中wrapper:包装器
,从名字上可以理解为GLM结果的包装器
,也就是GLM中的那些需要输出结果的函数。
在包的方法解析顺序
(Method resolution order)中,GLMResultsWrapper排在第一位
,也就是说包会首先解析GLMResultsWrapper中的即我们自己覆盖的函数。
2.用法
-
先定义自己的函数,但是函数的功能要与GLM模型中的某个函数功能相对应
!!!注意
在函数定义中加入self
,表示纳入GLM这个类里面,便于覆盖(应与被覆盖的定义函数的写法相同) -
进行覆盖
def auc(self,data,y_col):
'''
通过输入数据集和列名输出auc值
'''
p=self.predict(data)
fpr,tpr,_=metrics.roc_curve(data[y_col],p,drop_intermediate=False,pos_label=1)
return metrics.auc(fpr,tpr)
#覆盖
GLMResultsWrapper.auc=auc