实验1 主成分分析

目 录

二、实验环境... 1

三、实验内容... 1

3.1 导入数据... 2

3.2 求相关系数矩阵.. 3

3.3 数据规范化处理.. 3

3.4 主成分分析... 4

四 实验心得... 5

一、实验目的

(1)理解主成分分析的思想;

(2)掌握主成分分析方法的步骤;

(3)能熟练地使用主成分分析方法分析相应的数据。

二、实验环境

(1)操作系统:windows11;

(2)python版本:3.10;

(3)Python开发环境:pycharm、jupyter notebook。

三、实验内容

某金融服务公司为了了解贷款客户的信用程度,评价客户的信用等级,采用信用评级常用的5C(能力,品格,担保,资本,环境)方法对15名客户进行打分,由此判断客户违约的可能性。

品格:指客户的名誉;

能力:指客户的偿还能力;

资本:指客户的财务实力和财务状况;

担保:指对申请贷款项担保的覆盖程度;

环境:指外部经济政策环境对客户的影响;

由于各项指标的难易程度不同,因此需要对5项指标进行赋权,以便能够更加合理的对15名客户进行评价。

3.1 导入数据

将上图的数据编辑在txt文本中,便于后续导入程序,如下图所示:

编写代码使用pandas中的read_csv方法导入文本数据,参数保证:第0行为标题行,单元之间以空格分隔,代码如下:

import pandas as pd
data = pd.read_csv(
'bank.txt',header = 0,sep = ' ')
print(data)

运行结果如下:

3.2 求相关系数矩阵

求解相关系数矩阵可以让我们进一步了解数据属性间的相关情况,便于后续数据处理。使用iloc方法获取数据的后5列,随后使用corr方法求出5个属性间的相关系数,代码如下:

x = data.iloc[:,1:]

  #求相关系数矩阵

  r = x.corr()

r

运行结果如下:

3.3 数据规范化处理

标准化后的数据可以消除数据中量纲和量级的影响,提取出数据的主要特征。引入sklearn.preprocessing的StandardScaler方法对数据进行标准化,代码如下:

#数据规范化处理

  from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()

scaler.fit(x)

x = scaler.transform(x)

x

运行结果如下,将每个属性都转化为均值为0,方程为1的正态分布形式,一共得到了15个5维向量,表示15个用户标准化后的信息:

3.4 主成分分析

使用sklearn.decomposition中的PCA方法进行主成分分析,PCA(n_components=0.95)将选择足够的主成分来解释至少95%的数据方差。然后,这些主成分将被用于转换数据集X,生成新的低维表示Y。代码如下:

#主成分分析

  from sklearn.decomposition import PCA

pca = PCA(n_components = 0.95)

pca.fit(x)

y = pca.transform(x)

tzxl = pca.components_

tz=pca.explained_variance_

gxl=pca.explained_variance_ratio_

Y00=sum(x[0,:]*tzxl[0,:])

Y01=sum(x[1,:]*tzxl[0,:])

Y02=sum(x[2,:]*tzxl[0,:])

Y03=sum(x[3,:]*tzxl[0,:])

  #综合排名

  F=gxl[0]*y[:,0]+gxl[1]*y[:,1]+gxl[2]*y[:,2] #综合得分=各个主成分*贡献率之和

  dq=list(data['客户编号'].values)  #提取客户编号

  Rs=pd.Series(F,index=dq)           #以客户编号作为index,综合得分为值,构建序列

  Rs=Rs.sort_values(ascending=False) #按综合得分降序进行排序

  Rs

运行结果如下,以降序展现用户得分情况,其中用户编号为10的用户得分最高,因为其5个属性的分数均为68左右,而编号为3的用户得分最低,因为其有三个属性未超过60分:

 

四 实验心得

(1)导入数据文件要设置sep和header参数,确保导入正确结构的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/779198.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 异步编程介绍与代码示例

Python 异步编程介绍与代码示例 一、异步编程概述 异步编程是一种编程范式,它旨在处理那些需要等待I/O操作完成或执行耗时任务的情况。在传统的同步编程中,代码会按照顺序逐行执行,直到遇到一个耗时操作,它会阻塞程序的执行直到…

测试人应该懂的!自动化测试必会之数据驱动测试

数据驱动测试 在实际的测试过程中,我们会发现好几组用例都是相同的操作步骤,只是测试数据的不同,而我们往往需要编写多次用例来进行测试,此时我们可以利用数据驱动测试来简化该种操作。 参数化: 输入数据的不同从而产…

【云计算】公有云、私有云、混合云、社区云、多云

公有云、私有云、混合云、社区云、多云 1.云计算的形态1.1 公有云1.2 私有云1.3 混合云1.4 社区云1.5 多云1.5.1 多云和混合云之间的关系1.5.2 多云的用途1.5.3 影子 IT 和多云1.5.4 优缺点 2.不同云形态的对比 1.云计算的形态 张三⾃⼰在家做饭吃,这是 私有云&…

非堆成加密是公私钥使用

对称加密学习-CSDN博客 加密算法学习-CSDN博客 非对称加密算法使用一对密钥,包括一个公钥和一个私钥,它们是数学上相关联的,但公钥可以公开分享,而私钥必须保密。以下是使用非对称加密算法的一般步骤: 密钥生成&…

Spring相关面试题(四)

49 JavaConfig方式如何启用AOP?如何强制使用cglib? 在JavaConfig类,加上EnableAspectJAutoProxy 如果要强制使用CGLIB动态代理 ,加上(proxyTargetClass true) 加上(exposeProxy true) 就是将对象暴露到线程池中。 50 介绍AOP在Spring中…

打开浏览器控制台,点击应用,浏览器崩溃

调试的时候,打开控制台,点击 “应用” 立马浏览器奔溃,但是点击别的没问题 调查发现是因为manifest.json这个文件引起的 manifest.json 最主要的原因是因为没有设置这个sizes字段 Google浏览器更新大概到126之后的版本会有问题,之…

关于CPU你一定要注意的重要参数,警惕韭菜陷阱

昨天遇到个奇葩事,有个粉丝喷我“懂不懂什么叫I9?”言下之意就是CPU中I9>i7>I5>I3,我也不知道咋说,只是提醒大家小心被坑,花了多的钱用的差的性能。作为回应,仅以此篇说下CPU咱们臭打游戏一定要知…

新手学Cocos报错 [Assets] Failed to open

两个都在偏好设置里面调(文件下面的偏好设置): 1.设置中文? 2.报错 [Assets] Failed to open? 这样在点击打开ts文件的时候就不会报错,并且用vscode编辑器打开了, 同样也可以改成你们自己喜欢…

彻底解决Path with “WEB-INF“ or “META-INF“: [WEB-INF/views/index.jsp]

背景描述 项目使用的是springboot2jsp的架构。以前好好的项目复制了一份,然后就无法访问报错。百度了好久都乱七八糟的,还没有解决问题。错误消息如下: 2024-07-05 15:45:51.335 INFO [http-nio-12581-exec-1]org.springframework.web.ser…

【Selenium配置】WebDriver安装浏览器驱动(ChromeEdge)

【Selenium配置】WebDriver安装浏览器驱动(Chrome&Edge) 文章目录 【Selenium配置】WebDriver安装浏览器驱动(Chrome&Edge)Chrome确认Chrome版本下载对应driver把解压后的chromedriver文件放在chrome安装目录下&#xff0…

字节跳动与南开联合开源 StoryDiffusion:一键生成漫画和视频故事的神器!完全免费!

大家好,我是程序员X小鹿,前互联网大厂程序员,自由职业2年,也一名 AIGC 爱好者,持续分享更多前沿的「AI 工具」和「AI副业玩法」,欢迎一起交流~ 漫画,是多少人童年的回忆啊! 记得小学…

VMware安装centos9详细教程(保姆级)

前言 centos9最新的centos版本,在近期的使用中发现它的操作界面与以往的centos7/8更加舒适,界面优化更加精细 项目终止日期(EOL) 从公告可知,CentOS 项目重心从 CentOS Linux 转移到了 CentOS Stream。下面是各个项…

初识STM32:开发方式及环境

STM32的编程模型 假如使用C语言的方式写了一段程序,这段程序首先会被烧录到芯片当中(Flash存储器中),Flash存储器中的程序会逐条的进入CPU里面去执行。 CPU相当于人的一个大脑,虽然能执行运算和执行指令,…

沪上繁花:上海电信的5G-A之跃

2024年6月18日下午,在上海举行的3GPP RAN第104次会议上,3GPP正式宣布R18标准冻结。R18是无线网络面向5G-A的第一个版本,其成功冻结正式宣布了5G发展迎来新机遇,5G-A商用已进入全新的发展阶段。 在5G-A滚滚而来的时代洪流中&#x…

基于STM32的通用红外遥控器设计: 解码、学习与发射(代码示例)

摘要: 本文将带你使用STM32打造一款功能强大的万能红外遥控器,它可以学习和复制多种红外信号,并通过OLED屏幕和按键实现便捷操作。我们将深入探讨红外通信原理、STM32编程、OLED显示和EEPROM数据存储等关键技术,并提供完整的代码示…

【Linux进阶】文件系统7——文件系统简单操作

1.磁盘与目录的容量 现在我们知道磁盘的整体数据是在超级区块中,但是每个文件的容量则在inode 当中记载。 那在命令行模式下面该如何显示这几个数据?下面就让我们来谈一谈这两个命令: df:列出文件系统的整体磁盘使用量&#xf…

(阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

公务员考试、事业编考试、教师资格证、面试、K12资料、电子书

点击上方△腾阳 关注 作者 l 腾阳 转载请联系授权 你好,我是腾阳。 在这个自媒体的海洋里,我曾是一只迷失方向的小鸟,多次尝试飞翔却总是跌跌撞撞。 但每一次跌倒,都让我更坚定地相信,只要不放弃,总…

【Android】自定义换肤框架01之皮肤包制作

前言 目前为止,市面上主流的安卓换肤方案,其实原理都是差不多的 虽然大多都号称一行代码集成,但其实想要做到完全适配,并不简单 这个系列,就是让大家从零开始,完全掌握这方面知识,这样才能对…

Floyd

模板&#xff1a; 时间复杂度&#xff1a;O( ) memset(v,127,sizeof(v));for(int k1;k<n;k)for(int i1;i<n;i)for(int j1;j<n;j)if(v[i][k]<1<<30&&v[k][j]<1<<30)v[i][j]min(v[i][j],v[i][k]v[k][j]);