数据挖掘建模之python进行Logistic回归分析

回归分析是通过建立模型来研究变量之间相互关系的密切程度、结构状态及进行模型预测的一种有效工具。按照研究方法划分,回归分析研究的范围大致如下:




本文简述几个主要的回归模型:

线性回归:

适用于因变量和自变量是线性关系,对自变量和因变量之间的线性关系进行建模,可以用最小二乘法求解模型系数

非线性回归:

适用于因变量和自变量不是线性关系,如果非线性关系可以通过简单的函数变换转化成线性关系,用线性回归的思想求解,如果不能转化,用非线性最小二乘法求解

Logistic回归:

因变量一般有1、0(是、否)两种求值,是广义线性回归模型的特例,利用Logistic函数将因变量的取值范围控制在0和1之间,表示取之为1的概率。

岭回归:

适用于参与建模的自变量之间具有多重共线性,是一种改进最小二乘法估计的方法。

主成分回归:

适用于参与建模的自变量之间具有多重共线性,主成分回归是根据主成分分析的思想提出来的,是对最小二乘法的一种改进,它是参数估计的一种有偏估计。可以消除自变量之间的多重共线性。



本文主要针对二分类Logistic回归进行代码展示:

利用Scikit-Learn对数据进行逻辑回归分析。

首先进行特征筛选,特征筛选方法有很多主要包含在Scikit-Learn的feature_selection库中,比较简单的有通过F检验来给出各个特征的F值和p值,从而可以筛选变量。

其次有递归特征消除和稳定性选择等比较新的方法。这里使用了稳定性选择方法中的随机逻辑回归进行特征筛选,然后利用筛选后的特征建立逻辑回归模型,输出平均正确率。

其代码如下:

#-*- coding: utf-8 -*-

import pandasas pd

filename ='path'

data = pd.read_excel(filename)

x = data.iloc[:,:8].as_matrix()

y = data.iloc[:,8].as_matrix()

from sklearn.linear_modelimport LogisticRegressionas LR

from sklearn.linear_modelimport RandomizedLogisticRegressionas RLR

rlr = RLR()#建立随机逻辑回归模型,筛选变量

rlr.fit(x, y) #训练模型

rlr.get_support()#获取特征筛选结果,也可以通过.scores_方法获取各个特征的分数

print(u'')

print(u'%s' %','.join(data.columns[rlr.get_support()]))

x = data[data.columns[rlr.get_support()]].as_matrix()#筛选好特征

lr = LR()#建立逻辑货柜模型

lr.fit(x, y)#用筛选后的特征数据来训练模型

print(u'逻辑回归模型训练结束')

print(u'模型的平均正确率为:%s' % lr.score(x, y))#给出模型的平均正确率。

逻辑回归本质上还是一种线性模型,因此这里的 模型有效性检验本质上还是在做线性相关检验,因此筛选出来的变量,说明和结果具有比较强的线性相关性。对于非线性关系的变量筛选方法还有决策树、神经网络等,接下来的文章会继续介绍。

你可能感兴趣的:(数据挖掘建模之python进行Logistic回归分析)