从逻辑回归系数中推导出新的连续变量
Posted
技术标签:
【中文标题】从逻辑回归系数中推导出新的连续变量【英文标题】:Deriving new continuous variable out of logistic regression coefficients 【发布时间】:2019-07-28 02:27:00 【问题描述】:我有一组自变量 X 和一组因变量 Y 的值。手头的任务是二项式分类,即预测债务人是否会拖欠债务 (1) 或不 (0)。 在过滤掉统计上不显着的变量和导致多重共线性的变量后,我得到以下逻辑回归模型的总结:
Accuracy ~0.87
Confusion matrix [[1038 254]
[72 1182]]
Parameters Coefficients
intercept -4.210
A 5.119
B 0.873
C -1.414
D 3.757
现在,我通过 logodds_ratio 将这些系数转换为新的连续变量“default_probability”,即
import math
e = math.e
power = (-4.210*1) + (A*5.119) + (B*0.873) + (C*-1.414) + (D*3.757)
default_probability = (e**power)/(1+(e**power))
当我根据这个新的连续变量“default_probability”将我的原始数据集分成四分位数时,那么:
1st quartile contains 65% of defaulted debts (577 out of 884 incidents)
2nd quartile contains 23% of defaulted debts (206 out of 884 incidents)
3rd quartile contains 9% of defaulted debts (77 out of 884 incidents)
4th quartile contains 3% of defaulted debts (24 out of 884 incidents)
同时:
overall quantity of debtors in 1st quartile - 1145
overall quantity of debtors in 1st quartile - 516
overall quantity of debtors in 1st quartile - 255
overall quantity of debtors in 1st quartile - 3043
我想使用“默认概率”通过强加业务规则“第一个四分位数不计分”来外科手术去除最有问题的计分,但现在我想知道它是否完全是“外科手术”(根据这条规则,我将失去(1145 - 577 = 568 个“好”客户),总体而言,通过上述推理线从逻辑回归系数中为数据集推导出新的连续变量在数学/逻辑上是否正确?
【问题讨论】:
我不确定这个问题是否更适合Data Science 感谢您的建议,我把我的问题移到那里 【参考方案1】:您在计算power
时忘记了截距。但是假设这只是你在 cmets 中所说的一个错字,那么你的方法是有效的。但是,您可能想使用scikit-learn
的predict_proba
函数,这将为您省去麻烦。示例:
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_breast_cancer
import numpy as np
data = load_breast_cancer()
X = data.data
y = data.target
lr = LogisticRegression()
lr.fit(X,y)
假设我想计算给定观察(比如观察 i)属于第 1 类的概率,我可以做你所做的,基本上像你所做的那样使用回归系数和截距:
i = 0
1/(1+np.exp(-X[i].dot(lr.coef_[0])-lr.intercept_[0]))
或者干脆做:
lr.predict_proba(X)[i][1]
哪个更快
【讨论】:
对不起,这是一个拼写错误,我只是忘了包括拦截 编辑了我的答案! :)以上是关于从逻辑回归系数中推导出新的连续变量的主要内容,如果未能解决你的问题,请参考以下文章