随机逻辑回归,特征筛选

发布于 2019-08-27  91 次阅读


python代码实现

链接可参考:https://blog.csdn.net/w_weiying/article/details/81411257
https://blog.csdn.net/jk123vip/article/details/80591619

#回归
import pandas as pd #提供结构化数据 dataframe :行索引,列索引,
from sklearn.linear_model import LogisticRegression as LR
from sklearn.linear_model import RandomizedLogisticRegression as RLR
import matplotlib.pyplot as plt
filename = r"D:\workspace\python\AiTrainingCamp\static\xls\ts.xls"
#初始化参数
data = pd.read_excel(filename)

x = data.iloc[:,:8].as_matrix()  # [:,:8]的意思是,切片所有的行和1-8列的数据 as_matrix()函数是转化为矩阵

y = data.iloc[:, 8].as_matrix()  # [:,8]的意思是,切片所有的行和第9列的数据

#建立随机逻辑回归模型,筛选变量
#使用参数设置阈值
selection_threshold = 1
rlr = RLR(selection_threshold)
rlr.fit(x,y) #训练模型
rlr.get_support() #获取特征筛选结果,也可以通过 .scoress_方法获取各个特征的分数
data2 = data.drop(u'违约',1)



print(u'特征:%s'%' '.join(data2.columns[:8]))
print(u'对应特征分数:%s'%rlr.scores_)
print("随机逻辑回归模型结束")
print(u'有效特征为:%s '% ','.join(data2.columns[rlr.get_support()]))


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

lr = LR()  #建立逻辑回归模型
lr.fit(x,y) #用筛选好的特征训练模型
print(u'逻辑回归')
print(lr.score(x,y)) #获取平均正确率
特征:年龄 教育 工龄 地址 收入 负债率 信用卡负债 其他负债
对应特征分数:[0.08  0.065 0.975 0.46  0.    0.995 0.5   0.06 ]
随机逻辑回归模型结束
有效特征为:工龄,地址,负债率,信用卡负债 

逻辑回归
0.8140200286123033

像烟花也是过一生,像樱花也是一生,只要亮过和盛开不就好了么?