实验目的
1、处理信用卡数据异常值
1)读取信用卡数据;
2)丢弃逾期、呆账、强制停卡、退票、拒往记录为1、瑕疵户为2的记录;
3)丢弃呆账、强制停卡、退票为1、拒往记录为2的记录;
4)丢弃频率为5、刷卡金额不等于1的数据;
2、构造信用卡客户风险评估关键特征
1)根据特征瑕疵户、逾期、呆账、强制停卡记录、退票、拒往记录,构建历史行为特征(使用PCA降维);
2)根据特征借款余额、个人月收入、个人月开销、家庭月收入和月刷卡额,构建出经济风险情况特征;
3)根据特征职业、年龄、住家,构建出收入风险特征情况;
4)标准化历史行为特征、经济风险特征、个人收入风险特征;
3、构建K-Means聚类模型
1)根据构建的3个特征对客户进行分群,构建聚类模型,聚类数为5;
2)训练聚类模型,求出聚类中心,每类的用户数目;结合业务对客户群进行特征分析,对每个客户群体进行排名。
python连接数据库来处理数据

import pymysql
import pandas as pd
import numpy as npconn = pymysql.connect(host='localhost',user='root',password='',db='tieba',charset='utf8',# autocommit=True,    # 如果插入数据,, 是否自动提交? 和conn.commit()功能一致。
)
print(1)
cur = conn.cursor()
#sql= "select 逾期 from sheet1 "
'''
2)丢弃逾期、呆账、强制停卡、退票、拒往记录为1、瑕疵户为2的记录;
3)丢弃呆账、强制停卡、退票为1、拒往记录为2的记录;
4)丢弃频率为5、刷卡金额不等于1的数据;sql1="delete from sheet1 where 逾期 =1 and 呆账 =1 and 强制停卡记录 =1 and 退票 =1 and 拒往记录 =1 and 瑕疵户 =2 "
sql2="delete from sheet1 where 呆账 =1 and 强制停卡记录 =1 and 退票 =1 and 拒往记录 =2 "
sql3="delete from sheet1 where 频率 =5 and 月刷卡额 != 1 "
cur.execute(sql1)
cur.execute(sql2)
cur.execute(sql3)
#cur.execute(sql)
conn.commit()
result = cur.fetchall()
print(result)
丢弃成功
'''
# 1)根据特征瑕疵户、逾期、呆账、强制停卡记录、退票、拒往记录,构建历史行为特征(使用PCA降维);
cur1 = conn.cursor()
sql4="select 瑕疵户,逾期,呆账,强制停卡记录,退票,拒往记录 from sheet1 "
cur1.execute(sql4)
result1 = cur1.fetchall()
#print(result1)
from sklearn.decomposition import PCA
pca = PCA()
pca.fit(result1)
pca.components_
a = pca.explained_variance_ratio_print(a)
pca = PCA(4)
pca.fit(result1)
low_d = pca.transform(result1)
print(low_d)from sklearn.preprocessing import StandardScaler
################标准差标准化################
#       zij=(xij-xi)/si                 #
#       zij为标准化后的变量值              #
#       xij为实际变量值                    #
#       xi算术平均值(数学期望)           #
#       si标准差                           #
############################################
stdScale_1 = StandardScaler().fit(low_d) ## 生成规则boston_Scaler_1 = stdScale_1.transform(low_d)
print('标准差标准化后训练集数据的方差为:',np.var(boston_Scaler_1))from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters = 5,random_state=123).fit(boston_Scaler_1)
k1 = kmeans.cluster_centers_
print(k1)
a1 = pd.Series(kmeans.labels_).value_counts()
print('最终每个类别的数目为:\n',a1)#2)根据特征借款余额、个人月收入、个人月开销、家庭月收入和月刷卡额,构建出经济风险情况特征;
cur2 = conn.cursor()
sql5="select 借款余额,个人月收入,个人月开销,家庭月收入,月刷卡额 from sheet1 "
cur2.execute(sql5)
result2 = cur2.fetchall()
#print(result2)stdScale_2 = StandardScaler().fit(result2) ## 生成规则
## 将规则应用于训练集
boston_Scaler_2 = stdScale_2.transform(result2)
## 将规则应用于测试集
print('标准差标准化后训练集数据的方差为:',np.var(boston_Scaler_2))kmeans2 = KMeans(n_clusters = 5,random_state=123).fit(boston_Scaler_2)
k2 = kmeans2.cluster_centers_
print(k2)
a2 = pd.Series(kmeans2.labels_).value_counts()
print('最终每个类别的数目为:\n',a2)#3)根据特征职业、年龄、住家,构建出收入风险特征情况;
cur3 = conn.cursor()
sql6="select 职业,年龄,住家 from sheet1 "
cur3.execute(sql6)
result3 = cur3.fetchall()
#print(result3)
stdScale_3 = StandardScaler().fit(result3) ## 生成规则
## 将规则应用于训练集
boston_Scaler_3 = stdScale_3.transform(result3)
## 将规则应用于测试集
print('标准差标准化后训练集数据的方差为:',np.var(boston_Scaler_3))kmeans3 = KMeans(n_clusters = 5,random_state=1234).fit(boston_Scaler_3)
k3 = kmeans3.cluster_centers_
print(k3)
a3 = pd.Series(kmeans3.labels_).value_counts()
print('最终每个类别的数目为:\n',a3)
conn.close()

计算思维与数据科学 K-Means聚类模型信用卡用户风险评估 python连接数据库来处理数据相关推荐

  1. OpenCV官方文档 理解k - means聚类

    理解k - means聚类 目标 在这一章中,我们将了解k - means聚类的概念,它是如何工作等. 理论 我们将这个处理是常用的一个例子. t恤尺寸问题 考虑一个公司要发布一个新模型的t恤. 显然 ...

  2. OpenCV的k - means聚类 -对图片进行颜色量化

    OpenCV的k - means聚类 目标 学习使用cv2.kmeans()数据聚类函数OpenCV 理解参数 输入参数 样品:它应该的np.float32数据类型,每个特性应该被放在一个单独的列. ...

  3. 聚类算法中 K均值聚类(KMeans)的python实现

    ** 聚类算法中 K均值聚类(KMeans)的python实现 ** import numpy as np import matplotlib.pyplot as plt from sklearn.d ...

  4. k means聚类算法_一文读懂K-means聚类算法

    1.引言 什么是聚类?我们通常说,机器学习任务可以分为两类,一类是监督学习,一类是无监督学习.监督学习:训练集有明确标签,监督学习就是寻找问题(又称输入.特征.自变量)与标签(又称输出.目标.因变量) ...

  5. k means聚类算法_K-Means 聚类算法 20210108

    说到聚类,应先理解聚类和分类的区别 聚类和分类最大的不同在于:分类的目标是事先已知的,而聚类则不一样,聚类事先不知道目标变量是什么,类别没有像分类那样被预先定义出来. K-Means 聚类算法有很多种 ...

  6. 8个可以提高数据科学工作效率、节省宝贵时间的Python库

    来源:DeepHub IMBA 本文约2900字,建议阅读5分钟 在进行数据科学时,可能会浪费大量时间编码并等待计算机运行某些东西.所以我选择了一些 Python 库,可以帮助你节省宝贵的时间. 1. ...

  7. pandas plot label_数据科学| 手把手教你用 pandas 索引、汇总、处理缺失数据

    作者:Paul 编者按: pandas提供了很多常用的数学和统计方法,本文中将用十分详细的例子来具体进行介绍:另外在许多数据分析工作中,缺失数据是经常发生的,将会具体介绍如何处理缺失数据.本文十分详细 ...

  8. 字段缺失_数据科学| 手把手教你用 pandas 索引、汇总、处理缺失数据

    作者:Paul 编者按: pandas提供了很多常用的数学和统计方法,本文中将用十分详细的例子来具体进行介绍:另外在许多数据分析工作中,缺失数据是经常发生的,将会具体介绍如何处理缺失数据.本文十分详细 ...

  9. 8个可以提高数据科学工作效率并节省宝贵时间的Python库

    在进行数据科学时,可能会浪费大量时间编码并等待计算机运行某些东西. 所以我选择了一些 Python 库,可以帮助你节省宝贵的时间. 1.Optuna Optuna 是一个开源的超参数优化框架,它可以自 ...

最新文章

  1. J2EE用监听器实现同一用户只能有一个在线
  2. 图片压缩处理的一个可行解决方法【OC】
  3. 服务器性能指标有哪些
  4. 销售自动记帐凭证 - 三个常见问题
  5. 一个免费的网站长链接转短链接的工具
  6. dynamic flash xml news----滚动新闻
  7. 理解至上:二叉堆与优先队列详细用法
  8. [Vue warn]: Invalid prop: custom validator check failed for prop xxx.问题
  9. vue 方法获取返回值_vue中子组件怎么获取父组件中的方法的返回值
  10. 输入关键字生成对联_教你一秒变大师,亲手提笔写对联
  11. Unity3D基础30:协同程序
  12. 【转】Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)...
  13. Xgboost算法——Kaggle案例
  14. T-Sql 创建全文索引
  15. 推荐系统的常用算法概述
  16. 内蒙古自治区包头市谷歌高清卫星地图下载
  17. 模式识别和机器视觉智能方面的论文投稿---国际著名期刊杂志论文投稿
  18. 关于聊天室文字聊天(ListView 显示数据变化后滚动到最底部 )
  19. could not create folder “sftp://xxx.xxx.xxx.xxx/.../venv“. (Permission denied)
  20. 计算机视觉工程师装机软件一览

热门文章

  1. 计算机课高数怎么过,我是大一新鸟,学软件,想向大虾们讨教几手,我有高数,英语,法律.计算机,4门课,我该怎么学!介绍越详细越好,...
  2. 超融合一体机与软件选哪个好?适合什么场景?各有什么利弊?
  3. linux配置网卡绑定后不生效,Linux双网卡绑定实现负载均衡和失效保护
  4. java识别整段地址
  5. vue项目 报sockjs.js?9be2:1606 GET http://192.168.43.226:8080/sockjs-node/info?t=1584966826465 net::ERR_
  6. 哈尔滨工业大学计算机考研复试分数线,34所自划线院校2021考研复试分数线-2021哈尔滨工业大学考研分数线已公布...
  7. 利用Fitbit,十秒入侵PC
  8. NAS如何找固定IP
  9. CollageIt 3 Pro for mac(拼贴精灵3专业版)
  10. **关于maven的,maven配置后报 java.lang.UnsupportedClassVersionError: org/codehaus/plexus/classworlds/launche