Logistic回归,即Logistic回归分析,是一种广义的线性回归模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。
Logistic回归分析的因变量是:0、1,或者是否(二分类);自变量可以是连续的也可以是分类的,通过Logistic回归分析得到自变量的权重
Logistic回归属于概率型非线性回归,分为二分类和多分类的回归模型(二分类就是因变量只有2种取值,多分类就是因变量有多种取值)
Logistic回归建模步骤
1)根据分析目的设置指标变量(因变量和自变量),然后收集数据,根据收集到的数据对特征再次进行筛选
2)y取1的概率是,取0的概率是,用和自变量列出线性回归方程,估计出模型中的回归系数
3)进行模型检验。模型的有效性的检验指标有很多,最基本的有正确率,其次有混淆矩阵、ROC曲线、KS值等
4)模型应用:输入自变量的值,就可以得到预测变量的值
小栗子
这里使用书中提供的数据集,银行拖欠贷款的数据为例
大概是这一个样子
df = pd.read_excel(data_path)
df.head()
首先,我们得识别下这个数据,从数据看上来,“违约”是因变量,0、1表示是否,而其他的变量:年龄、教育等就是自变量,所以,我们就是要通过这些自变量来预测用户是否会违约
后面,我们要做一个特征筛选,就是选取哪些自变量来进行回归分析
上面,我们已经识别出自变量和因变量(也就是X和Y)
x = df.iloc[:,:8].values
y = df.iloc[:,8].values
from sklearn.linear_model import LogisticRegression as LR
from sklearn.linear_model import RandomizedLogisticRegression as RLR
书中使用的是sklearn的包
这里引入了逻辑回归模型LogisticRegression
然后,还有一个问题,就是RandomizedLogisticRegression
,这个我在文档上找不到
貌似是随机逻辑回归模型,用来筛选变量的,使用的时候,会提示说不推荐使用了,等我再研究一下看看怎样
rlr = RLR()
rlr.fit(x , y)
rlr.get_support()
df.iloc[:,:8].columns[rlr.get_support()]
这里获取的就是我们最终的特征,特征筛选完成之后,就可以调用逻辑回归模型了
x = df[df.iloc[:,:8].columns[rlr.get_support()]].values
lr = LR()
lr.fit(x,y)
lr.score(x,y)
最后的这个分数就是模型的准确率
小栗子到这里是结束了,但是其中使用的几个模型思想,参数啥的,还没有准确的理解,还要再摸索学习一下