任务

预测贷款客户是否会逾期,status为响应变量,有0和1两种值,0表示未逾期,1表示逾期。

代码:

# -*- coding: utf-8 -*-
"""
Created on Thu Nov 15 13:02:11 2018

@author: keepi
"""

import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import f1_score
pd.set_option('display.max_row',1000)

#导入数据
data = pd.read_csv('data.csv',encoding='gb18030')
data = pd.DataFrame(data.fillna(10))

#特征工程
'''
n = set(data['reg_preference_for_trad'])
dic = {}
for i,j in enumerate(n):
    dic[j] = i
data['reg_preference_for_trad'] = data['reg_preference_for_trad'].map(dic)
'''
x_dummy = pd.get_dummies(data['reg_preference_for_trad'])
data = pd.concat([data.drop('reg_preference_for_trad',axis=1),x_dummy],axis=1,sort=False)
data.drop('source',axis=1,inplace=True)
data.drop('bank_card_no',axis=1,inplace=True)
data.drop('latest_query_time',axis=1,inplace=True)
data.drop('loans_latest_time',axis=1,inplace=True)
data.drop('id_name',axis=1,inplace=True)

#划分测试集、训练集
train,test = train_test_split(data,test_size=0.3,random_state=25)
y_train = train.loc[:,'status']
train_2 = train.drop('status',axis=1)
y_test = test.loc[:,'status']
test_2 = test.drop('status',axis=1)

#模型训练与预测
lr = LogisticRegression(C=190,dual=True,random_state=535)
lr.fit(train_2,y_train)

y_test_pre = lr.predict(test_2)

#评分
score = f1_score(y_test,y_test_pre,average='macro')
print('验证集分数',score)

验证集分数:0.43838

遇到的问题

1.SettingWithCopyWarning:A value is trying to be set on a copy of a slice from a DataFrame

原因是我在处理数据时对原始数据进行了修改

train.drop('status',axis=1,inplace=True)
#警告:SettingWithCopyWarning
#修改为下面代码即可
train_2 = train.drop('status',axis=1)

2.固定了划分测试集和训练集的随机数种子,每次训练的分数都不同

因为逻辑回归的随机数种子没有设置

lr = LogisticRegression(C=100,dual=True,random_state=535)   #这样即可

3.在用svm预测后计算f1值的时候出现警告:

UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.
  'precision', 'predicted', average, warn_for)

这个是说f1值因为某些项为0所以无法计算,因为我训练出来的结果全为1,而测试集中的标签含有0,1两种值。那么为什么用LinearSVC训练后会只预测出一种值呢?

参考

哑变量与one-hot编码

客户贷款逾期预测[1]-逻辑回归模型相关推荐

  1. 银行搜集了用户贷款、收入和信用卡是否逾期的数据。请使用这些数据建立一个能预测信用卡逾期情况的逻辑回归模型。

    素材文件见"credit-overdue.csv". 要求(1)绘制数据的散点图,查看数据分布情况: import numpy as np import pandas as pd ...

  2. 逻辑回归模型及案例(Python)

    1 简介 逻辑回归也被称为广义线性回归模型,它与线性回归模型的形式基本上相同,最大的区别就在于它们的因变量不同,如果是连续的,就是多重线性回归:如果是二项分布,就是Logistic回归. Logist ...

  3. 用通俗易懂的方式讲解:逻辑回归模型及案例(Python 代码)

    目录 1 简介 2 优缺点 3 适用场景 加入方式 4 案例:客户流失预警模型 4.1 读取数据 4.2 划分特征变量和目标变量 4.3 模型搭建与使用 4.3.1 划分训练集与测试集 4.3.2 模 ...

  4. R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型、分类预测器(分类变量)被自动替换为一组虚拟编码变量、summary函数查看检查模型、使用table函数计算混淆矩阵评估分类模型性能

    R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型(Logistic regression).分类预测器(分类变量)被自动替换为一组虚拟编码变量.summary函数查看检查模型.使用t ...

  5. R语言glm拟合logistic回归模型实战:基于glm构建逻辑回归模型及模型系数统计显著性分析、每个预测因子对响应变量的贡献

    R语言glm拟合logistic回归模型实战:基于glm构建逻辑回归模型及模型系数统计显著性分析.每个预测因子对响应变量的贡献 目录

  6. python自动测试优惠券过期_python逻辑回归模型-使用优惠券预测

    最近疫情严重,宅在家里给自己充电,修改简历,心里还是有点担忧的,疫情肯定会对招聘产生影响,今年春招的竞争肯定要比以往几年都要大. 于是打算在我的知乎专栏里也囤点"货". #希望大家 ...

  7. 使用python逻辑回归模型来进行nba竞赛数据预测球队胜率

    好的,我来为你介绍一下使用 Python 进行逻辑回归模型预测 NBA 竞赛数据中球队胜率的步骤. 首先,你需要准备训练数据.这些数据可能包含球队的历史胜率,球员数据,比赛场地等信息.你可以使用这些信 ...

  8. 逻辑回归模型预测股票涨跌

    http://www.cnblogs.com/lafengdatascientist/p/5567038.html 逻辑回归模型预测股票涨跌 逻辑回归是一个分类器,其基本思想可以概括为:对于一个二分类 ...

  9. ML之yellowbrick:基于titanic泰坦尼克是否获救二分类预测数据集利用yellowbrick对LoR逻辑回归模型实现可解释性(阈值图)案例

    ML之yellowbrick:基于titanic泰坦尼克是否获救二分类预测数据集利用yellowbrick对LoR逻辑回归模型实现可解释性(阈值图)案例 目录 基于titanic泰坦尼克是否获救二分类 ...

  10. 用逻辑回归模型解决互联网金融信用风险问题

    逻辑回归(Logistic Regression) 针对因变量为分类变量而进行回归分析的一种统计方法,属于概率型非线性回归. 优点:算法易于实现和部署,执行效率和准确度高: 缺点:离散型的自变量数据需 ...

最新文章

  1. Ruby Fiber指南(三)过滤器
  2. 致远协同软件手机版让移动办公不再是梦想
  3. sudu在linux的命令,Linux的sudo命令
  4. discuz修改用户uid_haproxy实现discuz论坛的动静分离和负载均衡
  5. GNU make manual 翻译( 一百六十)
  6. Iview的Tabs定时切换
  7. 系统下装软件_DCS系统的日常保养工作怎么做
  8. sql 一次性批量插入_考虑使用SQL批量插入的安全性
  9. 【编辑器】Vim学习笔记
  10. 使用Mave构建多模块项目
  11. php 正则忽略空白,(PHP)正则表达式-忽略空白
  12. 网页游戏怎么修改数据_2014一周网页游戏数据报告(8.18—8.24)
  13. python 身份证识别器_python 识别身份证号码
  14. a级纳税人数据问题记录
  15. 收藏!立体库设备维修保养计划
  16. 解决”error: info is different in .repo/manifests/.git vs .repo/manifests.git报错
  17. 认证的政府与媒体类订阅号可取得网页授权接口了
  18. 【DOSBox调整窗口大小】
  19. fitbit aria体脂秤二次开发遇到的问题
  20. SystemUi概述

热门文章

  1. 语音处理工具:sox
  2. 个人域名快速备案需要哪些资料
  3. 霜降配1种水果, 冬天不会流鼻涕, 嘴唇不会裂, 还能解酒、预防大脖子病
  4. Knative-serving资源详解
  5. python transforms_Python transforms.Compose方法代码示例
  6. [Scala的协变和逆变]
  7. 苹果IOS9为加强个人隐私信息保护强制HTTPS,APP开发者需申请SSL证书
  8. 轻松升级各路硬件,简约时尚的大容量机箱,TT挑战者H6上手
  9. 各行业的英语术语(绝对精华 2)
  10. Electron入门宝典(三)菜单快捷键