######【风控建模】
基于python的p2p运营商数据信息的特征挖掘
说明:利用平台数据和第三方数据建立基于用户通信信息的反欺诈规则,判别通信信息及通话记录对客户潜在逾期发生的预警。
一 获取数据
1)数据库: petty_loan
①用户信息
- cl_user_base_info
②运营商数据
- 账户信息
cl_operator_basic - 消费账单
cl_operator_bills - 通话记录
cl_operator_voices_1
cl_operator_voices_2
③通讯录
- cl_user_contacts_1
- cl_user_contacts_2
④紧急联系人
- cl_user_emer_contacts
⑤借贷客户逾期数据
- cl_borrow_repay
2)数据信息
- 用户
手机号
- 用户手机号
开户时间
- 用户手机号在平台
注册时间
- 用户手机号
归属地址
、拨号地址
- 用户手机号
消费账单
- 用户手机号
通话记录
- 通话日期、时间
- 通话号码
- 通话时间
- 主叫地址
- 用户
通讯录详单
- 用户
紧急联系人电话号
、身份关系
3)信息价值
表单 | 信息 | 价值 |
---|---|---|
手机号 | 手机号开户时间 | ①手机号真实性 ②判断手机号使用时长 ③用户粘性 |
通话记录 | ①通话地址(范围) ②通话群体 ③通话时长 | ①手机号价值 ②手机号粘性 ③用户活跃度 |
通讯录 | ①通讯录大小 ②判断通讯录名单联系频率 | ①客户社交范围 ②通讯录价值 |
紧急联系人 | ①是否在通讯录中 ②是否有近期通话记录 | ①联系人真实性 ②潜在欺诈风险 |
逾期账户 | ①是否逾期 | ①逾期客户通信信息情况反馈 |
二 数据预处理 + 特征分析 + 模型搭建
1)项目思路
①直接从数据库中通过python/sql语句获取测试数据,也可以保存excel、csv、pkl文件。
②数据预处理和数据分析。
③建立Logistic、随机森林算法模型,寻找变量之间的关系。
2)分步逻辑
①从数据库抓取数据,为方便代码复用,建立三个函数,分别是:
- 专门用来连接mysql数据库的DataBaseSql函数
- 专门用来存储sql语句的sql_query函数
- 专门用来调用sql语句和mysql数据库连接以生成Dataframe数据的get_data函数
②对数据进行预处理。包括数据缺失值、异常值处理等,主要分为三步:
- 合并数据。数据分别存储在不同的excel文件中,以备不同情况下的处理,合并数据以获得此次分析所需要的数据。
- 缺失值处理,对需要处理的数据字段进行缺失值填充和丢失处理。
- 生成用来作进一步分析处理的数据。
③数据分析+可视化报告:
- 爬取数据统计。主要就样本总体情况做指标,打印报告。
- 紧急联系人通话记录统计。判断紧急联系人的通讯录权限、运营商信息权限开通情况,做统计图。
- 放款客户逾期情况统计。
3)语法重点
①python编程整体思路:
- python:
函数式编程
、数据流程
、代码复用
、实例化
、debug处理
②数据库:
- mysql:
多表查询join
、多表合并union
、时间戳gettime
、筛选条件where
、 - python:
调用数据库connet
、游标cursor
、数据匹配fetchall
、事务提交commit
③数据处理:
- 常用方法:
读取文件read_excel
、计数value_counts
、重置索引reset_index
、关联匹配merge
、去除重复值drop_duplicates
、最大值max
、去除空值dropna
、替换replace
、字符串str
、矩阵形状shape
、整形int
- 特殊思路:
建立一个for循环,判断字段里是否有某个字符串
、建立循环,批量填充
③可视化+执行报告:
- 常用方法:
xlsxwriter.Workbook
、workbook.add_worksheet
、time.sleep(0)
、worksheet.insert_image
、set_column
、zip
、plt
、echart