# -*- 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) : 信用卡违约率分析相关推荐

  1. python信用卡违约预测分析_数据挖掘实战(1):信用卡违约率分析

    在数据挖掘的过程中,我们经常会遇到一些问题,比如:如何选择各种分类器,到底选择哪个分类算法,是 SVM,决策树,还是 KNN?如何优化分类器的参数,以便得到更好的分类准确率? 这两个问题,是数据挖掘核 ...

  2. 数据挖掘情感分析python_数据挖掘实战:Twitter情感分析

    背景介绍 自然语言处理(NLP)是当今数据科学研究的热点,其最常见的应用之一是情绪分析.从民意调查到创建整个营销策略,这个领域已经彻底改变了企业的工作方式,这就是为什么每个数据科学家都必须熟悉这个领域 ...

  3. 数据挖掘实战—家用热水器用户行为分析与事件识别

    文章目录 引言 一.数据探索分析 1.数据质量分析 1.1缺失值分析 1.2 异常值分析 1.3 重复数据分析 2.数据特征分析 2.1 分布分析 三.数据预处理 1.数据归约之属性归约 2.数据归约 ...

  4. python人工智能方向面试准备_人工智能实战就业(面试)学习路线图

    这个项目是干什么的? 整理这个项目的初衷是方便同学们快速开启人工智能自学计划,在学习过程中少走弯路用最快的效率入门Ai并开始实战项目, 提供了近200个Ai实战案例和项目,这些并不是网上搜集来的,而是 ...

  5. python文本聚类 词云图_文本挖掘:避孕药主题情感分析

    关于舆情分析的实例分析,希望给你带来一些帮助. 前言 距离上次文本挖掘小文章时间已经过了3个月了,北京已经入冬,有人说北京的冬天很冷,但是吃上火锅很暖:也有人说北京的冬天雾霾严重,太干.这两句表达的是 ...

  6. python电视剧口碑分析_小案例(七):口碑分析(python)

    微信公众号:机器学习养成记 搜索添加微信公众号:chenchenwings <菜鸟侦探挑战数学分析>小案例,python实现第七弹 案件回顾 商业街口碑分析 1,顾客在网络上会发表对商品或 ...

  7. 小红书用户画像分析_用户画像,该怎么分析?

    有同学问:陈老师,我领导让我做用户画像分析,可是我做了一大堆数据,却被批:也没分析什么东西啊?该咋办?今天系统解答一下. 用户画像分析的错误姿势1.限于数据,动不敢动.一提用户画像,很多人脑海里立刻蹦 ...

  8. 电商 竞品分析_电商平台竞品分析报告.docx

    Planning scheme 电商平台竞品分析报告 电商平台竞品分析报告 电商平台竞品分析报告 V1.0 2018-3-18 状态 : [ √ ] 草稿 [ ] 修改中 [ ] 定稿 文件标签: 竞 ...

  9. 什么叫pmt测试分析_使用OriginLab进行PMT能谱分析

    PMT的能谱分析主要涉及两个方面,一方面是对ADC的采样值进行分析确认ADC采样正确.另一方面是对ADC的采样值进行积分,针对此积分值进行分析,即所谓的PMT能谱分析.能谱分析以及ADC采样处理分析必 ...

  10. 小红书用户画像分析_电商平台用户画像分析

    电商平台用户画像分析 1.项目背景 1.1 分析目的 通过分析用户的行为特征,深挖用户的潜在价值. 1.2 产品简述 由于数据脱敏无法具体了解产品的种类,通过数据只能基本判断该产品的消耗量和复购率并不 ...

最新文章

  1. BZOJ4401 块的计数
  2. 读取jar包资源代码赏析
  3. centos 配置yum源
  4. APP-V与RemotoAPP
  5. 爬取豆瓣电影排名前250部电影并且存入Mongo数据库
  6. thread_t 数组 linux,首页 C#如何打印pthread_t
  7. 攻城掠地端mysql_【图片】攻城掠地单机版本服务端+攻城掠地GM工具【单兆权吧】_百度贴吧...
  8. Bootstrap 公布长期支持计划,Bootstrap 3 生命周期结束
  9. 低学历的人就不能创业了吗?
  10. FRR BGP协议分析13 -- ZEBRA路由的处理2
  11. 小腹下面是什么部位_产后新妈妈去掉大肚腩,恢复平坦小腹,不妨试试这4个动作...
  12. 2022 软件库APP源码前端 后端整套独立后台+搭建教程
  13. Doris SQL执行计划
  14. 基于javaweb+jsp的在线购书商城系统(java+jsp+mysql+servlert+ajax)
  15. PDF417数据容量
  16. 360与百度的竞争分析
  17. 巴菲特致股东的一封信:2007年
  18. 美团点评点餐 Nuxt.js 实战
  19. 魔兽 服务器 角色 最多,魔兽科普:国服人最多的几个服务器都什么来头
  20. mysql别名引号与引用问题

热门文章

  1. VPP电源控制(VPP Power)-- 由DC-DC变换集成电路MC34063组成
  2. Asp.Net基于forms的验证机制,记录一下...
  3. 记tcp网络编程中遇到的readline()方法
  4. Java网络爬虫实操(6)
  5. 数据结构与算法JavaScript描述——队列
  6. wordpress 增加备案号
  7. ★☆★书已到手《Java程序员,上班那点事儿》正式上架★☆★
  8. oracle alter database,alter database ... create datafile的原理及用途
  9. 深入理解Linux中内存管理
  10. iptables详解 1 -- iptables概念