python信用卡违约预测分析_数据挖掘实战(1) : 信用卡违约率分析
# -*- coding: utf-8 -*-
# 信用卡违约率分析
import pandas as pd
from sklearn.model_selection import learning_curve, train_test_split,GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.metrics import accuracy_score
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier
from matplotlib import pyplot as plt
import seaborn as sns
# 数据加载
data = data = pd.read_csv('./UCI_Credit_Card.csv')
# 数据探索
print(data.shape) # 查看数据集大小
print(data.describe()) # 数据集概览
# 查看下一个月违约率的情况
next_month = data['default.payment.next.month'].value_counts()
print(next_month)
df = pd.DataFrame({'default.payment.next.month': next_month.index,'values': next_month.values})
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.figure(figsize = (6,6))
plt.title('信用卡违约率客户n (违约:1,守约:0)')
sns.set_color_codes("pastel")
sns.barplot(x = 'default.payment.next.month', y="values", data=df)
locs, labels = plt.xticks()
plt.show()
# 特征选择,去掉 ID 字段、最后一个结果字段即可
data.drop(['ID'], inplace=True, axis =1) #ID 这个字段没有用
target = data['default.payment.next.month'].values
columns = data.columns.tolist()
columns.remove('default.payment.next.month')
features = data[columns].values
# 30% 作为测试集,其余作为训练集
train_x, test_x, train_y, test_y = train_test_split(features, target, test_size=0.30, stratify = target, random_state = 1)
# 构造各种分类器
classifiers = [
SVC(random_state = 1, kernel = 'rbf'),
DecisionTreeClassifier(random_state = 1, criterion = 'gini'),
RandomForestClassifier(random_state = 1, criterion = 'gini'),
KNeighborsClassifier(metric = 'minkowski'),
]
# 分类器名称
classifier_names = [
'svc',
'decisiontreeclassifier',
'randomforestclassifier',
'kneighborsclassifier',
]
# 分类器参数
classifier_param_grid = [
{'svc__C':[1], 'svc__gamma':[0.01]},
{'decisiontreeclassifier__max_depth':[6,9,11]},
{'randomforestclassifier__n_estimators':[3,5,6]} ,
{'kneighborsclassifier__n_neighbors':[4,6,8]},
]
# 对具体的分类器进行 GridSearchCV 参数调优
def GridSearchCV_work(pipeline, train_x, train_y, test_x, test_y, param_grid, score = 'accuracy'):
response = {}
gridsearch = GridSearchCV(estimator = pipeline, param_grid = param_grid, scoring = score)
# 寻找最优的参数 和最优的准确率分数
search = gridsearch.fit(train_x, train_y)
print("GridSearch 最优参数:", search.best_params_)
print("GridSearch 最优分数: %0.4lf" %search.best_score_)
predict_y = gridsearch.predict(test_x)
print(" 准确率 %0.4lf" %accuracy_score(test_y, predict_y))
response['predict_y'] = predict_y
response['accuracy_score'] = accuracy_score(test_y,predict_y)
return response
for model, model_name, model_param_grid in zip(classifiers, classifier_names, classifier_param_grid):
pipeline = Pipeline([
('scaler', StandardScaler()),
(model_name, model)
])
result = GridSearchCV_work(pipeline, train_x, train_y, test_x, test_y, model_param_grid , score = 'accuracy')
python信用卡违约预测分析_数据挖掘实战(1) : 信用卡违约率分析相关推荐
- python信用卡违约预测分析_数据挖掘实战(1):信用卡违约率分析
在数据挖掘的过程中,我们经常会遇到一些问题,比如:如何选择各种分类器,到底选择哪个分类算法,是 SVM,决策树,还是 KNN?如何优化分类器的参数,以便得到更好的分类准确率? 这两个问题,是数据挖掘核 ...
- 数据挖掘情感分析python_数据挖掘实战:Twitter情感分析
背景介绍 自然语言处理(NLP)是当今数据科学研究的热点,其最常见的应用之一是情绪分析.从民意调查到创建整个营销策略,这个领域已经彻底改变了企业的工作方式,这就是为什么每个数据科学家都必须熟悉这个领域 ...
- 数据挖掘实战—家用热水器用户行为分析与事件识别
文章目录 引言 一.数据探索分析 1.数据质量分析 1.1缺失值分析 1.2 异常值分析 1.3 重复数据分析 2.数据特征分析 2.1 分布分析 三.数据预处理 1.数据归约之属性归约 2.数据归约 ...
- python人工智能方向面试准备_人工智能实战就业(面试)学习路线图
这个项目是干什么的? 整理这个项目的初衷是方便同学们快速开启人工智能自学计划,在学习过程中少走弯路用最快的效率入门Ai并开始实战项目, 提供了近200个Ai实战案例和项目,这些并不是网上搜集来的,而是 ...
- python文本聚类 词云图_文本挖掘:避孕药主题情感分析
关于舆情分析的实例分析,希望给你带来一些帮助. 前言 距离上次文本挖掘小文章时间已经过了3个月了,北京已经入冬,有人说北京的冬天很冷,但是吃上火锅很暖:也有人说北京的冬天雾霾严重,太干.这两句表达的是 ...
- python电视剧口碑分析_小案例(七):口碑分析(python)
微信公众号:机器学习养成记 搜索添加微信公众号:chenchenwings <菜鸟侦探挑战数学分析>小案例,python实现第七弹 案件回顾 商业街口碑分析 1,顾客在网络上会发表对商品或 ...
- 小红书用户画像分析_用户画像,该怎么分析?
有同学问:陈老师,我领导让我做用户画像分析,可是我做了一大堆数据,却被批:也没分析什么东西啊?该咋办?今天系统解答一下. 用户画像分析的错误姿势1.限于数据,动不敢动.一提用户画像,很多人脑海里立刻蹦 ...
- 电商 竞品分析_电商平台竞品分析报告.docx
Planning scheme 电商平台竞品分析报告 电商平台竞品分析报告 电商平台竞品分析报告 V1.0 2018-3-18 状态 : [ √ ] 草稿 [ ] 修改中 [ ] 定稿 文件标签: 竞 ...
- 什么叫pmt测试分析_使用OriginLab进行PMT能谱分析
PMT的能谱分析主要涉及两个方面,一方面是对ADC的采样值进行分析确认ADC采样正确.另一方面是对ADC的采样值进行积分,针对此积分值进行分析,即所谓的PMT能谱分析.能谱分析以及ADC采样处理分析必 ...
- 小红书用户画像分析_电商平台用户画像分析
电商平台用户画像分析 1.项目背景 1.1 分析目的 通过分析用户的行为特征,深挖用户的潜在价值. 1.2 产品简述 由于数据脱敏无法具体了解产品的种类,通过数据只能基本判断该产品的消耗量和复购率并不 ...
最新文章
- BZOJ4401 块的计数
- 读取jar包资源代码赏析
- centos 配置yum源
- APP-V与RemotoAPP
- 爬取豆瓣电影排名前250部电影并且存入Mongo数据库
- thread_t 数组 linux,首页 C#如何打印pthread_t
- 攻城掠地端mysql_【图片】攻城掠地单机版本服务端+攻城掠地GM工具【单兆权吧】_百度贴吧...
- Bootstrap 公布长期支持计划,Bootstrap 3 生命周期结束
- 低学历的人就不能创业了吗?
- FRR BGP协议分析13 -- ZEBRA路由的处理2
- 小腹下面是什么部位_产后新妈妈去掉大肚腩,恢复平坦小腹,不妨试试这4个动作...
- 2022 软件库APP源码前端 后端整套独立后台+搭建教程
- Doris SQL执行计划
- 基于javaweb+jsp的在线购书商城系统(java+jsp+mysql+servlert+ajax)
- PDF417数据容量
- 360与百度的竞争分析
- 巴菲特致股东的一封信:2007年
- 美团点评点餐 Nuxt.js 实战
- 魔兽 服务器 角色 最多,魔兽科普:国服人最多的几个服务器都什么来头
- mysql别名引号与引用问题
热门文章
- VPP电源控制(VPP Power)-- 由DC-DC变换集成电路MC34063组成
- Asp.Net基于forms的验证机制,记录一下...
- 记tcp网络编程中遇到的readline()方法
- Java网络爬虫实操(6)
- 数据结构与算法JavaScript描述——队列
- wordpress 增加备案号
- ★☆★书已到手《Java程序员,上班那点事儿》正式上架★☆★
- oracle alter database,alter database ... create datafile的原理及用途
- 深入理解Linux中内存管理
- iptables详解 1 -- iptables概念