逻辑回归
2021-08-05 09:52:11 0 举报
AI智能生成
介绍逻辑回归的原理、使用方法、以及制作评分卡过程。
作者其他创作
大纲/内容
drop_duplicates(inplace=True).reset_index()
业务收集数据的时候重复录入
1、去重
df.isnull().sum()/df.shape[0]
df.isnull().mean()
一定要和业务对接,缺失值产生的原因:可能是漏填、故意填等
2、查看缺失值占比
df[\"收入\"]=df[\"收入\"].fillna(df[\"收入\"].mean())
fillna()填充
随机森林填充
3、填充缺失值
有的时候异常值是重点分析的,比如:视频播放量超高,分析原因
年龄、收入为负
违约次数超高(一年违约98个月)
如果业务不确定数据产生的原因,删掉
但是,有些数据很离谱
为什么不同意量纲、标准化数据分析?
业务要求,为了让业务理解起来更方便
偏态数据
4、异常值
0占比99%1占比1%
y.value_coutns()
实际违约的人不多,或者违约的人在后期会把钱还上
上采样后的数据
5、样本不均衡
1、数据预处理
将划分好的数据保存为csv数据
2、划分训练集和测试集
4到5个最佳,不能超过10个
n:分箱的个数good占比:该分箱中好客户占整体的比值bad占比:该分箱中坏客户占整体的比值
IV<0.03 特征几乎不带有效信息,可以删除
IV并非越大越好,平衡IV值和分箱个数
IV值用来衡量特征值的信息量
组内差异小,组间差异大
使用卡方检验来对比两个分箱之间的相似性,P值很大,说明他们非常相似,可以合并为一个分箱
达到的效果
df[\"age_cut\"] = pd.qcut(df[\"age\
3、分箱
测试集直接用训练集的区间划分映射
4、WOE映射到数据中
from sklearn.linear_model import LogisticRegression as LRlr = LR().fit()
召回率
纵坐标:TPR
1-召回率
横坐标:FPR
验证模型预测效果以及模型捕捉到少数类的水平高不高,随着模型捕捉少数类的水平越来越高,判断错误类的概率就越大
斜线表示:多判对一个1就要多判错一个0
AUC:曲线构成的面积,面积越大,效果越好
ROC曲线
模型评估
5、建模
A、B为常数
某个特定违约概率下的预期分数
指定违约概率翻倍的分数(PDO)
两个假设
例如,假设对数几率为1/60的时候,对应的特定分数为600,PDO=20,当对数几率为1/30的时候,对应的分数为620。带入公式就可以计算A、B的值
base_score = A-B*lr.intercept_
基础分
年龄的每个分箱对应的分数
age_score = woe['age']*(-B*lr.coef_[0][0])
base_score+age_score
特征对应的分数
6、制作评分卡
评分卡
微信公众号回复《逻辑回归》免费领取
由线性回归变化而来的,一种用于分类问题的回归算法
名为回归的分类器
著名的最小二乘法就是用来求解线性回归参数的
线性回归
图像及性质:形状为“S”型曲线;当x趋近于负无穷大时,y趋近于0;x趋近于正无穷大时,y趋近于1;x为0时,y为0.5;他能够将任意实数映射到0和1之间,使得他可以将任意值函数转为二分类函数
sigmod函数
缺点:1、对非线性数据效果不好2、类别较多,特征共线性高的数据拟合效果差
逻辑回归
模型
随机梯度下降求解参数
参数求解
概述
linear_model.LogisticRegression
混淆矩阵
metrics.confusion_matrix
AUC_ROC曲线
metrics.auc_roc_score
精确度
metrics.accuracy_score
评估指标
sklearn
若选择L1,则solver只能使用 liblinear 和 saga
可选参数:L1、L2,默认使用L2
不求解参数的模型是没有损失函数的,比如:决策树,KNN。大多数机器学习算法是没有损失函数的
为了防止模型过拟合,使用正则化
=1)\"
L1正则化
L2正则化
L1会将参数压缩到0,L2会将参数尽量小,但不会为0
C越小,损失函数会越小,模型对损失函数的惩罚项越重,正则化的效果越强,参数会被压缩的越小
penalty、C(损失函数)
随机一个初始点,前进的方向就是该点的梯度方向
span class=\"equation-text\" contenteditable=\"false\" data-index=\"0\" data-equation=\
梯度:对其自变量求偏导构成的向量
如果没有达到最佳的次数,sklearn会报警告
lr.n_iter_ 查看最佳次数
如果超过最佳参数,迭代会停止
max_iter(随机梯度最大的迭代次数)
ovr(二分类或者一对多)、multinormal(多对多分类)、auto(自动),默认为auto
multi_class(分类)
不支持多分类问题
liblinear(坐标下降法)默认值
libfgs、newton-cg、sag、
solver(参数求解器)
标签中的某一类占有很大比例,比如:违约与不违约,犯罪与未犯罪
给少量的标签添加更高的权重,默认为None
balanced,对标签进行均衡
主流使用采样法:重复样本采样,将样本标签比例一致(上采样)
class_weight(样本不平衡)
参数
0 条评论
回复 删除
下一页