##菜鸟一枚,datacastle比赛题目,用的是Logistic,做出的结果不好,目前只排在100名左右。先放在博客上面,项目比较紧张,就怕以后没时间做了。。。。
后续思路:
(1)特征工程(特征筛选,融合等)
(2)堆模型,考虑RF,GBDT等,也可以使用堆叠神经网络
(3)还是要对特征做一些研究

# -*- coding: utf-8 -*-
"""
Created on Tue Jan 10 09:54:12 2017
###Datacastle的‘用户贷款风险预测’竞赛题目###
#初步想法是利用逻辑斯蒂回归,特征的选择对结果影响很大,有时间的话多看看特征选择方面的东西
"""
import pandas as pd
from sklearn import preprocessing
from sklearn.cross_validation import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_reportclass DataCastle(object):def __init__(self):self.name = "<<- User loan forecast match ->>"self.result = "result.csv"#读取用户信息表 并返回def readUserInfo(self):user_info_train = readData("train/user_info_train.txt")user_info_test = readData("test/user_info_test.txt")col_names = ['userid', 'sex', 'occupation', 'education', 'marriage', 'household']user_info_train.columns = col_namesuser_info_test.columns = col_namesuser_info = pd.concat([user_info_train, user_info_test])user_info.index = user_info['userid']user_info.drop('userid',axis=1,inplace=True)return user_info#读取用户银行账单表 对账单数据求和并返回def readBankDetail(self):bank_detail_train = readData("train/bank_detail_train.txt")bank_detail_test = readData("test/bank_detail_test.txt")col_names = ['userid', 'time_bank', 'tradeType', 'tradeMoney', 'incomeTag']bank_detail_train.columns = col_namesbank_detail_test.columns = col_namesbank_detail_pre = pd.concat([bank_detail_train,bank_detail_test])bank_detail = (bank_detail_pre.loc[:,['userid','tradeType', 'tradeMoney']]).groupby(['userid','tradeType']).sum()bank_detail = bank_detail.unstack()bank_detail.columns = ['income','outcome']return bank_detail#读取用户的浏览历史 对浏览数据求和并返回def readBrowseHistory(self):browse_history_train = readData("train/browse_history_train.txt")browse_history_test = readData("test/browse_history_test.txt")col_names = ['userid', 'time_browse', 'browseData', 'browseTag']browse_history_train.columns = col_namesbrowse_history_test.columns = col_namesbrowse_history_pre = pd.concat([browse_history_train, browse_history_test])browse_history = (browse_history_pre.loc[:,['userid','browseData']]).groupby(['userid']).sum()return browse_history#读取信用卡账单记录 取均值并返回def readBillDetail(self):bill_detail_train = readData("train/bill_detail_train.txt")bill_detail_test = readData("test/bill_detail_test.txt")col_names = ['userid', 'time_bill', 'bank_id', 'prior_account', 'prior_repay','credit_limit', 'account_balance', 'minimun_repay', 'consume_count','account', 'adjust_account', 'circulated_interest', 'avaliable_balance','cash_limit', 'repay_state']bill_detail_train.columns = col_namesbill_detail_test.columns = col_namesbill_detail_pre = pd.concat([bill_detail_train,bill_detail_test])bill_detail_pre.drop('bank_id',axis=1,inplace=True)bill_detail = bill_detail_pre.groupby(['userid']).mean()return bill_detail#读取用户发放贷款时间 并返回def readLoanTime(self):loan_time_train = readData("train/loan_time_train.txt")loan_time_test = readData("test/loan_time_test.txt")col_names = ['userid','loanTime']loan_time_train.columns = col_namesloan_time_test.columns = col_namesloan_time = pd.concat([loan_time_train,loan_time_test])loan_time.index = loan_time['userid']loan_time.drop('userid',axis=1,inplace=True)return loan_time#读取类别信息def readTarget(self):target = readData("train/overdue_train.txt")target.columns = ['userid', 'label']target.index = target['userid']target.drop('userid',axis = 1,inplace = True)return target#利用逻辑斯蒂回归def logisticMethod(self):user_info = self.readUserInfo()bank_detail = self.readBankDetail()bill_detail = self.readBillDetail()loan_time = self.readLoanTime()browse_history = self.readBrowseHistory()target = self.readTarget()loan_data = user_info.join(bank_detail,how='outer')loan_data = loan_data.join(bill_detail,how='outer')loan_data = loan_data.join(browse_history,how='outer')loan_data = loan_data.join(loan_time,how='outer')loan_data = loan_data.fillna(0.0)#对数据进行归一化datas = loan_data.valuesdatas = preprocessing.scale(datas)col_names = list(loan_data.columns)nums=0for col in col_names:loan_data.loc[:,[col]] = datas[:,nums]nums += 1#对数据进行划分并且进行训练train = loan_data.iloc[0: 55596, :]test = loan_data.iloc[55596:, :]train_X, test_X, train_y, test_y = train_test_split(train,target,test_size = 0.2,random_state = 0)train_y = train_y['label']test_y = test_y['label']lr_model = LogisticRegression(C = 1.0,penalty = 'l2')lr_model.fit(train_X, train_y)#验证集进行预测pred_test = lr_model.predict(test_X)#对预测结果进行评估print classification_report(test_y, pred_test)#对测试集生成结果并存储为csv格式pred = lr_model.predict_proba(test)result = pd.DataFrame(pred)result.index = test.indexresult.columns = ['0', 'probability']result.drop('0',axis = 1,inplace = True)print result.head(5)      result.to_csv(self.result)#数据读取
def readData(filename):filepath = './'+filenamedata = pd.read_csv(filepath,header=None)return data

用户贷款风险预测-datacastle竞赛题目相关推荐

  1. DataCastle用户贷款风险预测(完整数据)

    DC竞赛上面可以看到17年的一个比赛-----用户贷款风险预测但是如今比赛已经完结,平台上的数据无法下载. 链接:https://pan.baidu.com/s/1HwQv2fZwbiLyzn9dIo ...

  2. 用户贷款风险预测之Top10初体验

    用户贷款风险预测之Top10初体验 写在前面: DataCastle智慧中国杯全国大数据创新应用大赛:本次参加的是三大赛题中的用户贷款风险预测(算法竞赛) 距离上次发博文又过去近两个月了,坚持写博客是 ...

  3. 一战成名,用户贷款风险预测 参赛代码与数据集分享

    向AI转型的程序员都关注了这个号??? 大数据挖掘DT数据分析  公众号: datadw 队伍名"一战成名" 最终线上排名第七.  任务 融360与平台上的金融机构合作,提供了近7 ...

  4. 用户贷款风险预测——Error in matrix(unlist(value, recursive = FALSE, use.names = FALSE), nrow = nr, : length

    数据:https://download.csdn.net/download/qq_41703182/10382068 下面的代码完成了以下功能: 列的重命名 缺失值的补充 异常值的处理 对数据不平衡做 ...

  5. 用户人品预测大赛--getmax队--竞赛分享

    用户人品预测大赛--getmax队--竞赛分享  DataCastle运营 发表于 2016-3-24 14:49:32 533  0  0 答辩PPT 转载于:https://www.cnblogs ...

  6. 2021年全国大学生数据统计与分析竞赛赛题B—基于机器学习的用户消费行为预测(上)

    2021年全国大学生数据统计与分析竞赛赛题B-基于机器学习的用户消费行为预测(上) 一.赛题B:用户消费行为价值分析 二.基于机器学习的用户消费行为预测 1.数据简介及清洗 (一)数据简介 (二)数据 ...

  7. Competition——AI:国内外人工智能比赛平台以及竞赛类型、竞赛题目、举行时间等之详细攻略(最全+ing)

    Competition--AI:国内外人工智能比赛平台以及竞赛类型.竞赛题目.举行时间等之详细攻略(最全+ing) tips (1).可以在各大比赛平台指定的讨论区,或者github网站上,找到历届选 ...

  8. 机器学习实战-微额借款用户人品预测

    团队分享网址 1.项目背景 互联网金融近年来异常火热,吸引了大量资本和人才进入. 在金融领域中,无论是投资理 财还是借贷放款,风险控制永远是最为核心和重要的问题,而存目前所有的互联网金融产品 中,微额 ...

  9. 基于python的电信用户流失预测

    题目: 电信用户流失预测 <大数据分析与应用> 一.介绍项目背景与分析目标 电信用户流失预测是一种针对电信运营商的数据挖掘应用,目的是通过分析历史的客户使用数据,预测未来的客户流失情况.其 ...

最新文章

  1. myeclipse java可视化_使用MyEclipse可视化开发Hibernate实例
  2. Xcode_7_GM_seed.dmg下载
  3. 互联网公司之外,银联等大型企业是如何玩转软件研发的?
  4. IBASE text component
  5. 电话号码的字母组合Python解法
  6. 2--OC -- 类的创建与实例化
  7. 二度整理交换机有感(续)
  8. bat中的start
  9. 开放 接口 饿了么_饿了么口碑启动生态赋能计划 将在210城开放智慧餐厅业务合作窗口...
  10. 数据库连接报错2013-lost connection to mysql server at ‘reading initial communication packet’ system error:0
  11. java基于springboot校园餐厅订餐管理系统附源码
  12. 【免积分下载】吴恩达 机器学习笔记PDF版v5.5.pdf
  13. 英文标题首字母大写规则
  14. openCV生成一张纯白图片
  15. Android开发 无线Wifi+WifiUtil工具类,android开发网格布局
  16. 如何解决用户出差,脱域的问题
  17. Python 谷歌翻译_浏览器版本 selenium (2022年1月测试可用)
  18. KOA 2.0 新一代WEB开发框架-姜威-专题视频课程
  19. 牛视系统源码定制开发come here,抖音矩阵系统。
  20. jad 反编译文件夹下的所有class

热门文章

  1. STM32的CRC计算
  2. EMI传导干扰的8大绝招
  3. Matlab plot()自定义线宽及保存高清大图
  4. python人脸识别考勤系统 dlib+OpenCV和Pyqt5、数据库sqlite 人脸识别系统 计算机 毕业设计 源码
  5. MTK6877(天玑 900)平台 高性能 5G 安卓智能模块
  6. 2006-〉2007/01/03 周三 晴天 醉生梦死的假期
  7. 用计算机处理信息的过程,计算机处理信息的全过程
  8. HBase RegionServer宕机恢复
  9. 克里金插值在气象数据方向的应用
  10. oracle数据库容灾一体机,信息技术中心组织开展“Oracle数据库一体机简介及运维”培训活动...