转:逻辑回归-判断用户是否拖欠银行贷款
2017-12-18 13:31
246 查看
数据源:bankloan.xls 模型结果: 模型准确率: [code] # 逻辑回归本质上还是一种线性模型,模型有效性检验本质上还是做线性相关检验 # 因此筛选出来的变量,说明和结果具有比较强的线性相关性 # 而被筛选的变量并不一定就跟结果没有关系,因为它们之间有可能是非线性关系 # 使用了稳定性选择方法中的随机逻辑回归进行特征,然后利用筛选后的特征建立逻辑回归模型,输出平均平均正确率 # 递归特征消除的主要思想是反复的构建模型然后选出最好的或者最差的特征,把选出来的特征放到一边,然后在剩余的特征 # 上重复这个过程,知道遍历所有特征,这过程中特征被消除的次序就是特征的排序。 # 因此,这是一种寻找最优特征子集的贪心算法 # Scikit-Learn 提供RFE包,可以用户特征消除,还提供了RFECV,可以通过交叉验证来对特征进行排序 # 稳定特征是一种基于二次抽样和选择算法相结合较新的方法 # 选择算法可以使回归、SVM或者其他类似的方法 # 主要思想是在不同的数据子集和特征子集上运行特征算法,不断重复源代码
filename = 'F:/python 数据挖掘分析实战/Data/bankloan.xls' data = pd.read_excel(filename) x = data.iloc[:,:8].as_matrix() y = data.iloc[:,8].as_matrix() from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR rlr = RLR() # 建立随机逻辑回归模型,筛选变量 rlr.fit(x, y) # 训练模型 rlr.get_support() # 获取特征筛选结果,也可以通过.scores_方法获取各个特征的分数 ''' 利用Scikit-Learn 对这个数据进行逻辑回归分析,首先进行特征筛选,特征筛选的方法有很,主要包含在Scikit_Learn 的feature_selection 库中 比较简单的有通过F检验来给出各个特征的F值和P值,从而可以筛选变量(选择F值打的或者P值小的特征)。其次有递归特征消除和稳定性选择等比较新的方法 ''' 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数据分析与挖掘实战》
作者:dataheart
链接:http://www.jianshu.com/p/5e1be116afd8
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章推荐
- 判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)
- 判断用户输入的银行卡号是否正确--基于Luhn算法的格式校验
- 怎样让DataGrid根据不同的用户权限判断是否显示:编辑列,删除列?
- 用PHP判断用户是否在线的方法
- C++判断用户输入路径是否正确(判断盘符是否存在以及“\”与"/")
- js如何判断用户是否是用微信浏览器
- javascript 判断用户输入文本框是否为空
- MS SQL 中判断 数据库, 存储过程,表,临时表,视图,函数,用户,用户创建对象 等是否存在 SQL脚本
- 如何接收用户发送的短信验证码,判断是否合法-短信验证码开发10
- JS判断用户是否在线的方法
- 如何彻底判断用户输入的字符串是否为空
- 20判断用户是否绑定了sim卡
- js如何判断用户是否是用微信浏览器
- 原创Ajax实现无刷新判断用户是否可以注册
- 判断程序执行用户和活动用户是否一致
- 用过滤器判断用户是否已经登录
- php 用户访问菜单页面,必须登录,判断用户是否登录
- linux的shell脚本判断当前是否为root用户
- PHP CodeBase: 判断用户是否手机访问