R语言无监督学习:PCA主成分分析可视化

news2025/1/18 8:35:04

 总览

在监督学习中,我们通常可以访问n个  观测值的p个  特征  集  ,并 在相同观测值上测得的  Y。

无监督学习是一组没有相关的变量  Y的方法。在这里,我们重点介绍两种技术…

  • 主成分分析:用于数据可视化或在其他监督学习方法之前进行预处理的工具。
  • 聚类:发现数据中未知组的方法。

 主成分分析PCA降维方法和R语言分析葡萄酒可视化实例

主成分分析PCA降维方法和R语言分析葡萄酒可视化实例

,时长04:30

无监督学习的挑战

通常,无监督学习比主观学习更具挑战性,因为它更具主观性。分析没有简单的目标,例如预测响应。无监督学习通常用作  探索性数据分析的一部分。此外,由于没有普遍接受的交叉验证或验证方法,因此很难评估获得的结果的准确性。简而言之 ,除了简单的直觉或手头上的过程的理论知识外,我们无法真正  在无人监督的情况下检查工作。但是,无监督方法有许多用途:

  • 通过识别患者亚组来了解癌症行为。

  • 网站(尤其是电子商务)通常会根据您之前的活动尝试向您推荐产品。

  • Netflix电影推荐。

主成分分析

当出现大量相关变量时,主要成分使我们能够将集合概括为较少数量的代表变量,这些变量  共同解释了原始集合中的大多数可变性。

主成分分析(PCA)是指计算主成分的过程,以及随后在理解数据中使用这些成分的过程。PCA还可以用作数据可视化的工具。

什么是主要成分

假设我们希望通过 对一组p个  特征的测量值来可视化  n个观测值,以  用于探索性数据分析的一部分。具体来说,我们希望找到一种数据的低维表示形式,该表示形式可以捕获尽可能多的信息。PCA提供了一种执行此操作的方法。PCA会寻求少量尽可能有趣的维度,其中有趣的概念  通过观察值在整个维度上的变化量来度量。

我们还可以通过利用主要组件来衡量丢失了多少信息。为此,我们可以计算 每个主成分解释的方差的  比例(PVE)。通常最好将其解释为累积图,以便我们可以可视化每个成分的PVE和所解释的总方差。一

确定要使用的主成分数

总的来说,我们希望使用最少数量的主成分来充分理解数据。可以说,做到这一点的最好方法是在scree图中可视化数据  ,我们将在后面演示。它只是累积PVE的图。与我们选择其他学习技术的最佳调整参数的方式类似,查看百分比变化何时下降,这样,添加主要成分并不会真正增加大量的方差。我们可以结合一些对数据的理解来使用这种技术。

大多数统计方法都可以适应于使用主成分作为预测变量,这有时会导致噪声较小。

可视化

我们执行PCA 。

states <- rownames(USArrests)
states
##  [1] "Alabama"        "Alaska"         "Arizona"        "Arkansas"      
##  [5] "California"     "Colorado"       "Connecticut"    "Delaware"      
##  [9] "Florida"        "Georgia"        "Hawaii"         "Idaho"         
## [13] "Illinois"       "Indiana"        "Iowa"           "Kansas"        
## [17] "Kentucky"       "Louisiana"      "Maine"          "Maryland"      
## [21] "Massachusetts"  "Michigan"       "Minnesota"      "Mississippi"   
## [25] "Missouri"       "Montana"        "Nebraska"       "Nevada"        
## [29] "New Hampshire"  "New Jersey"     "New Mexico"     "New York"      
## [33] "North Carolina" "North Dakota"   "Ohio"           "Oklahoma"      
## [37] "Oregon"         "Pennsylvania"   "Rhode Island"   "South Carolina"
## [41] "South Dakota"   "Tennessee"      "Texas"          "Utah"          
## [45] "Vermont"        "Virginia"       "Washington"     "West Virginia" 
## [49] "Wisconsin"      "Wyoming"

数据集的列包含四个变量。

names(USArrests)
## [1] "Murder"   "Assault"  "UrbanPop" "Rape"

让我们来探讨一下数据。

kable(summary(USArrests))

我们可以看到数据具有不同的均值和方差。此外,这些变量是在完全不同的尺度上测量的。例如  UrbanPop ,以百分比为单位,每10万个人测量次数。如果我们不对数据进行标准化,那就麻烦了。

执行PCA  提供主成分载荷。

我们已经可以确定每个主成分所代表的内容。例如,第一个部分似乎解释了与犯罪有关的信息与城市人口之间的差异。这也是第一个组成部分,从直观上来说,这是最大的差异。第二部分肯定解释了城市环境的影响,第三和第四部分显示了其他犯罪的区别。

我们可以绘制第一个主成分的图。

Biplot

在这里我们可以看到很多信息。首先查看轴,轴上的PC1 x 和轴上的  PC2  y。箭头显示了它们如何在两个维度上移动。黑色状态显示每个状态在PC方向上如何变化。例如,加利福尼亚州既有高犯罪率,又是城市人口最多的国家之一。

该  $sdev 属性输出每个组件的标准偏差。每个分量解释的方差可以通过对这些平方进行平方来计算:

## [1] 2.4802 0.9898 0.3566 0.1734

然后,为了计算每个主成分解释的方差比例,我们先将其除以总方差。

## [1] 0.62006 0.24744 0.08914 0.04336

在这里,我们看到第一PC解释了大约62%的数据,第二PC解释了大约24%的数据。我们还可以绘制此信息。

碎石图

par(mfrow=c(1,2))

plot(pve, xlab='Principal Component', 
     ylab='Proportion of Variance Explained', 
     ylim=c(0,1), 
     type='b')

plot(cumsum(pve), xlab='Principal Component', 
     ylab='Cumuative Proportion of Variance Explained', 
     ylim=c(0,1), 
     type='b')

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试官:你说说Springboot的启动过程吧(5.4万字分析启动过程)

文章目录前言一、Springboot是什么二、启动流程2.1 构建Spring Boot项目2.2 启动的日志2.3 启动流程分析说明2.3.1 第一部分&#xff1a;SpringApplication的构造函数A、webApplicationType&#xff08;web应用类型&#xff09;B、引导注册初始化器C、设置初始化器D、设置监听器…

[附源码]Python计算机毕业设计大学生二手物品交易网站Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

锁存器和触发器

大多数数字系统中,除了需要具有逻辑运算和算术运算功能的组合逻辑电路外,还需要具有存储功能的电路。组合电路与存储电路结合构成时序逻辑电路,简称时序电路。 本文将讨论实现存储功能的两种逻辑单元电路∶锁存器和触发器,着重讨论其工作原理与电路结构,以及所实现的不同逻…

手写js——继承

原型链继承 所谓 函数 也就是 函数 Father其本身&#xff0c;也叫作构造函数 &#xff0c;当一个函数被创建的同时&#xff0c;也会为其创建一个 prototype 属性&#xff0c;而这个属性&#xff0c;就是用来指向 函数原型&#xff0c;的我们可以把 prototype 理解为 Father的一…

用 Numba 加速 Python 代码,变得像 C++ 一样快

1. 介绍 Numba 是 python 的即时&#xff08;Just-in-time&#xff09;编译器&#xff0c;即当你调用 python 函数时&#xff0c;你的全部或部分代码就会被转换为“即时”执行的机器码&#xff0c;它将以你的本地机器码速度运行&#xff01;它由 Anaconda 公司赞助&#xff0c…

SpringMVC初配置解析?

在springMVC-servlet中 在web.xml中 SpringMVC常用注解 Controller 负责注册一个bean 到spring 上下文中 RequestMapping 注解为控制器指定可以处理哪些 URL 请求 RequestBody 该注解用于读取Request请求的body部分数据&#xff0c;使用系统默认配置的HttpMessageConverter进行…

CentOS7安装Cockpit网页版图像化服务管理工具

不经意间看到CentOS8说是默认集成了Cockpit——网页版图像化服务管理工具&#xff0c;出于为了更好的管理自己的服务器&#xff0c;于是参考一些资料在自己的服务器CentOS7上也安装了一个。 一、Cockpit是什么 github 地址&#xff1a; https://github.com/cockpit-project/c…

[附源码]Python计算机毕业设计大数据与智能工程系教师档案管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

基于node.js+vue的社区团购网站 毕业设计

在当今社会的高速发展过程中&#xff0c;产生的劳动力越来越大&#xff0c;提高人们的生活水平和质量&#xff0c;尤其计算机科技的进步&#xff0c;数据和信息以人兴化为本的目的&#xff0c;给人们提供优质的服务&#xff0c;其中网上购买团购商品尤其突出&#xff0c;使我们…

移植知识点整理(续,后期持续添加)

一&#xff1a; uboot源码移植准备工作 1.在家目录下创建一个<demo>文件夹 2.将en.SOURCES-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17_tar_v3.1.0.xz文件夹拷贝到demo目录下 3.对en.SOURCES-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17_tar_v3.1.0.xz进行解压…

RK3568平台开发系列讲解(安卓适配篇)获取 root 权限

🚀返回专栏总目录 文章目录 一、关闭 selinux二、注释用户组权限检测三、su 文件默认授予 root 权限沉淀、分享、成长,让自己和他人都能有所收获!😄 📢此部分可以参考瑞芯微官方文档,在源码“Android11/rk_android11.0_sdk/RKDocs/android/patches/root”目录下。 一…

太全了!学Java项目,这就够了

你是否为不知道怎么入手去看一个开源项目&#xff1f; 你是否想看别人的项目学习笔记&#xff1f; 你是否想跟着别人的项目搭建过程一步一步跟着做项目&#xff1f; 今天给大家介绍一个网站&#xff0c;为了让更多Java的开发者能更容易找到值得学习的开源项目&#xff0c;我…

微服务框架 SpringCloud微服务架构 微服务保护 32 隔离和降级 32.4 熔断降级

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务保护 文章目录微服务框架微服务保护32 隔离和降级32.4 熔断降级32.4.1 熔断降级32 隔离和降级 32.4 熔断降级 32.4.1 熔断降级 熔断…

[附源码]Python计算机毕业设计宠物交易网站Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

springcloud03:Eureka和Ribbon

Eureka和RibbonEureka介绍三大角色Eureka详解Eureka注册中心创建(springcloud-eureka模块)服务注册-信息配置-自我保护机制(服务提供模块)CAP原则Ribbon&#xff1a;负载均衡及Ribbon服务消费方(客户端)集成RibbonEureka介绍 三大角色 Eureka Serrver:提供服务的注册与发现。z…

day18【代码随想录】用栈实现队列、用队列实现栈、有效的括号

文章目录前言一、用栈实现队列&#xff08;力扣232&#xff09;二、用队列实现栈&#xff08;力扣225&#xff09;三、有效的括号&#xff08;力扣20&#xff09;前言 用栈实现队列 用队列实现栈 有效的括号 一、用栈实现队列&#xff08;力扣232&#xff09; 请你仅使用两个…

SpringBoot2基础入门

SpringBoot2基础入门学习要求环境要求学习资料01、Spring与SpringBoot1、Spring能做什么1.1、Spring的能力1.2、Spring的生态1.3、Spring5重大升级1.3.1、响应式编程1.3.2、内部源码设计2、为什么用SpringBoot2.1、SpringBoot优点2.2、SpringBoot缺点3、时代背景3.1、微服务3.2…

学生HTML个人网页作业作品:基于web在线汽车网站的设计与实现 (宝马轿车介绍)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

代码随想录刷题记录 day41 单词拆分+背包总结

代码随想录刷题记录 day41 单词拆分背包总结 参考&#xff1a;代码随想录 139. 单词拆分 思想 dp[i] 字符串长度为i&#xff0c;若dp[i]true&#xff0c;表示可以拆分为一个或多个在字典中出现的单词 递推公式 ​ 如果dp[j]true&#xff0c;[j,i]这个区间的子串出现在字典…

[附源码]Python计算机毕业设计大学生兼职平台Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…