python建立逻辑回归模型

利用Scikit-Learn对数据进行逻辑回归分析
1.特征选择(1)给出各个特征的F值和p值,选出F值大的或者p值小的(2)递归特征消除 Scikit-Learn提供了RFE包,还有RFECV,利用交叉验证对特征进行排序
(3)稳定性选择
表现在随机逻辑回归模型上(书上程序中使用的)
对训练数据进行多次采样拟合回归模型,即在不同的数据子集和特征子集上运行特征算法,不断重复,最终选择得分高的重要特征。这是稳定性选择方法。得分高的重要特征可能是由于被认为是重要特征的频率高(被选为重要特征的次数除以它所在的子集被测试的次数)
2.筛选出的特征建立逻辑回归模型,输出平均正确率
filename = ‘E:/python数据挖掘程序/chapter5/demo/data/bankloan.xls’
data = pd.read_excel(filename)
data
数据集
x = data.iloc[:,:8].as_matrix()#所有的行以及1到7列,后边的as_matrix()把它变量列表的形式
在这里插入图片描述
y = data.iloc[:,8].as_matrix()#第8列
在这里插入图片描述
from sklearn.linear_model import LogisticRegression as LR
from sklearn.linear_model import RandomizedLogisticRegression as RLR
rlr = RLR() #建立随机逻辑回归模型,筛选变量
rlr.fit(x, y) #训练模型
print(rlr.get_support())#对八个特征筛选结果,
结果如下:[False False True True False True True False]
print(rlr.scores_)#获得特征筛选得分
结果如下:[0.055 0.055 0.99 0.43 0. 0.995 0.56 0.025]
print(u’通过随机逻辑回归模型筛选特征结束’)
data2=data.drop(u’违约’,1)
print(u’有效特征为:%s’ % ‘,’.join(data2.columns[rlr.get_support()]))#书上错误,应该为data2
x = data[data2.columns[rlr.get_support()]].as_matrix()

lr = LR() #建立逻辑回归模型
lr.fit(x, y) #用选出来的特征数据来训练模型
print(u’逻辑回归模型训练结束’)
print(u’模型的平均正确率为:%s’ % lr.score(x, y))

猜你喜欢

转载自blog.csdn.net/qq_41106162/article/details/84205577