一、【 目标】

构建逻辑回归模型进行预测用户是否逾期

二、【 任务分析】

  1. 首先,由于数据中存在缺失值,因此需要对缺失值数据进行预处理。
  2. 其次,对明显与模型无关的特征进行删除
  3. 最后,采用逻辑回归模型进行模型训练。

三、【 原始数据】

数据:金融数据
任务:我们要做的是预测贷款用户是否会逾期,
标签说明:表格中,status是标签:0表示未逾期,1表示逾期。

四、【 数据预处理】

一共4754行,89列(除去首行、首列)

  1. 直接删除,对模型影响不大的数据及特征,比如固定的个人信息
    列:custid、trade_no、bank_card_no、id_name
    行:删除很多项特征缺失的用户信息
    缺失特征数据的用户数据:apply_score等到最后一个特征全为缺失项的用户数据
  2. 特征转换:特征student_feature列的NA转为0,2转为0(2只有2个)
  3. 几个需考虑的因素
    城市:境外0,一线1,二线2,三线3,四线4,NA及其他(共4组数据,删除)
  4. 现阶段不进行处理而直接删除的列:比如 first_transaction_time,latest_query_time,loans_latest_time

五、【代码实现】

代码部分由yezuolin完成

1、调包、导入数据以及数据替换

# coding=utf-8"""1. 导包"""
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import f1_score,r2_score"""2. 读取数据"""
dataset = pd.read_csv('./data/data.csv',encoding='gbk')"""3. 数据处理"""
# 删除固定信息列
dataset = dataset.drop(["custid","trade_no","bank_card_no","id_name","first_transaction_time","latest_query_time","loans_latest_time","source"],axis=1)
# 对于sstudent_feature列,我们进行NAN转成0,2转为0
# 缺失值填充
dataset["student_feature"] = dataset["student_feature"].fillna(0)
# 2替换为0
dataset["student_feature"] = dataset["student_feature"].replace([2],[0])# 针对城市列'reg_preference_for_trad',进行数据替换
dataset["reg_preference_for_trad"] = dataset["reg_preference_for_trad"].replace("一线城市", "1")
dataset["reg_preference_for_trad"] = dataset["reg_preference_for_trad"].replace("二线城市", "2")
dataset["reg_preference_for_trad"] = dataset["reg_preference_for_trad"].replace("三线城市", "3")
dataset["reg_preference_for_trad"] = dataset["reg_preference_for_trad"].replace("其他城市", "4")
dataset["reg_preference_for_trad"] = dataset["reg_preference_for_trad"].replace("境外", "0")

2、填充缺失值

# 填充其他空值
# 使用均值进行填充
# dataset.fillna(dataset.mean(), inplace=True)
# 使用众数进行填充
dataset = dataset.fillna(0) # 使用 0 替换所有 NaN 的值
col = dataset.columns.tolist()[1:]def missing(df, columns):"""使用众数填充缺失值df[i].mode()[0] 获取众数第一个值"""col = columnsfor i in col:df[i].fillna(df[i].mode()[0], inplace=True)df[i] = df[i].astype('float')missing(dataset, col)# 将object类型转成folat
dataset = dataset.convert_objects(convert_numeric=True)

3、数据划分

X = dataset.drop(["status"],axis=1)
Y = dataset["status"]# 数据按正常的2、8划分
X_train, X_test, y_train, y_test = train_test_split(X, Y,test_size=0.2, random_state=666)
# not enough values to unpack (expected 4, got 2)from sklearn.preprocessing import minmax_scale # minmax_scale归一化,缩放到0-1
X_train = minmax_scale(X_train)
X_test =  minmax_scale(X_test)
# Input contains NaN, infinity or a value too large for dtype('float64').

4、数据归一化

from sklearn.preprocessing import minmax_scale
# 归一化,缩放到0-1
X_train = minmax_scale(X_train)
X_test =  minmax_scale(X_test)

5、模型训练

log_reg = LogisticRegression()
log_reg.fit(X_train, y_train)
y_predict = log_reg.predict(X_test)

6、输出结果

print("predict:",log_reg.score(X_test, y_test))
print("f1_score:",f1_score(y_test, y_predict))
print("r2_score:",r2_score(y_test, y_predict))

最后我们得到的结果如下:

六、【遇到的问题】

1、对特征工程的分析不够深入,在特征选择上还可以更详细更优化
2、在用均值填充NAN时,进行归一化出现了 Input contains NaN, infinity or a value too large for dtype(‘float64’),在使用众数填充后避免了这个问题。
3、划分训练集和测试集时可以选择不同的比例和次数重复进行几次,这样得到的结果更具有统计意义。

逻辑回归实现客户逾期分析相关推荐

  1. python回归预测例子_案例实战 | 逻辑回归实现客户流失预测(附Python代码与源数据)...

    关注一下~,更多商业数据分析案例等你来撩 前言 利用逻辑回归进行客户流失预警建模中涵盖了许多比较细的知识点,思维导图只展示了极小的一部分,相关知识点链接将穿插在文中.(源数据源代码空降文末获取) 数据 ...

  2. 数据挖掘—逻辑回归分类—信用卡欺诈分析

    文章目录 1.分析目的: 2.掌握要点: 3.构建逻辑回归分类器 4.模型评估指标 5.精确度和召回率(不平衡数据衡量指标) 6.案例分析: 1.分析目的: 信用卡欺诈的危害性大,如何通过遗忘的交易数 ...

  3. 【Python】逻辑回归变量的显著性分析

    模型结果的解释 coef:回归系数(Regression coefficient),即模型参数 β0.β1.-的估计值. std err :标准差( Standard deviation),也称标准偏 ...

  4. [深度学习]Python/Theano实现逻辑回归网络的代码分析

    2014-07-21 10:28:34 首先PO上主要Python代码(2.7), 这个代码在Deep Learning上可以找到. 1 # allocate symbolic variables f ...

  5. 逻辑回归对信用卡欺诈进行分析

    文章目录 逻辑回归分类器 模型评估指标 混淆矩阵 使用逻辑回归对信用卡欺诈分析进行预测 逻辑回归分类器  逻辑回归,也叫作 logistic 回归.虽然名字中带有"回归",但它实际 ...

  6. 银行定期存款产品目标客户的确定——基于逻辑回归

    本篇文章将会介绍用Python分析银行定期存款产品目标客户的确定详细建模细节,业务框架分析以及模型的选择与评估分析参见上一篇文章: 银行定期存款产品目标客户的确定--基于逻辑回归(建模前分析) 1.导 ...

  7. Coursera吴恩达《神经网络与深度学习》课程笔记(2)-- 神经网络基础之逻辑回归...

    转至:https://blog.csdn.net/red_stone1/article/details/77851177 上节课我们主要对深度学习(Deep Learning)的概念做了简要的概述.我 ...

  8. 逻辑回归实例--乳腺癌肿瘤预测

    文章目录 0.前言 1.导入数据 2.数据预处理 3.准备训练测试数据 4. 标准化数据 5.逻辑回归模型 6.性能分析 7.十折交叉验证 0.前言 环境:Python3.6.5 编译器:jupyte ...

  9. Coursera吴恩达《神经网络与深度学习》课程笔记(2)-- 神经网络基础之逻辑回归

    红色石头的个人网站:redstonewill.com 上节课我们主要对深度学习(Deep Learning)的概念做了简要的概述.我们先从房价预测的例子出发,建立了标准的神经网络(Neural Net ...

最新文章

  1. python使用input函数时、必须添加提示文字-Python中使用 input 函数来获取输入
  2. 国家计算机科学进展,高等学校计算机一级学科教学改革与科学办学最新进展.pdf...
  3. python创建多个文件_Python创建文件夹与文件的快捷方法
  4. PicoDet论文译读笔记
  5. ofo 辟谣滴滴收购;美团饿了么回应数据泄露;金立转战海外 | CSDN 极客头条
  6. torch 默认参数初始化_Detection学习之九-torch中如何定义优化器及调整学习率
  7. MCSA/MCSE Windows Server 2016认证的学习目录
  8. C语言rs485编程,- 第六讲 单片机之c语言RS485通信
  9. 禁用hiberfil.sys文件
  10. UART串口传图LCD显示----图像处理
  11. css 三角角标样式
  12. 低功耗设计及其UPF实现第四节(最后一节)
  13. 公司内网成功实现WSUS在不连外网的条件下更新补丁包!
  14. Android 音视频开发实践系列-04-Android WebRTC推流到SRS服务器实现直播功能
  15. 千万不要死于无知—几条健康忠告(三)
  16. git branch常用分支操作
  17. 从YouTube删除不合适的评论
  18. 易基因:m6A mRNA甲基化修饰调控CTNNB1促进肝母细胞瘤增殖的机制研究|Mol Cancer
  19. samsung magician下载中文网址
  20. 入行必看:游戏行业发展概况

热门文章

  1. stress 压力测试工具
  2. laravel5.2 生成缩略图
  3. 理科博士 自学计算机,他是物理学博士,因为爱情改学计算机,荣获图灵奖,毅然回国教书...
  4. 清华大学文件服务器,清华大学云存储Corsair应用实践
  5. 机器人学习Robot Learning之模仿学习Imitation Learning的发展
  6. iOS 相册或者照相时标题是英文的问题
  7. 【SMS】SMS协议介绍之MSC
  8. 意外断电confluence和jira的数据库挂了
  9. (干货分享)PCB板和集成电路解析
  10. Tableau-高阶可视化(六)