拓端tecdat|R语言无监督学习:PCA主成分分析可视化
原文链接:http://tecdat.cn/?p=9839
原文出处:拓端数据部落公众号
总览
在监督学习中,我们通常可以访问n个 观测值的p个 特征 集 ,并 在相同观测值上测得的 Y。
无监督学习是一组没有相关的变量 Y的方法。在这里,我们重点介绍两种技术…
- 主成分分析:用于数据可视化或在其他监督学习方法之前进行预处理的工具。
- 聚类:发现数据中未知组的方法。
无监督学习的挑战
通常,无监督学习比主观学习更具挑战性,因为它更具主观性。分析没有简单的目标,例如预测响应。无监督学习通常用作 探索性数据分析的一部分。此外,由于没有普遍接受的交叉验证或验证方法,因此很难评估获得的结果的准确性。简而言之 ,除了简单的直觉或手头上的过程的理论知识外,我们无法真正 在无人监督的情况下检查工作。但是,无监督方法有许多用途:
通过识别患者亚组来了解癌症行为。
网站(尤其是电子商务)通常会根据您之前的活动尝试向您推荐产品。
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')
拓端tecdat|R语言无监督学习:PCA主成分分析可视化相关推荐
- 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...
- 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测
最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...
- 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系
最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...
- 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例
最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...
- 无监督学习 | PCA 主成分分析之客户分类
文章目录 1. 开始 2. 数据探索 2.2 特征相关性 2.3 可视化特征分布 3. 数据预处理 3.1 特征缩放 3.2 异常值检测 4. 数据转换 4.1 主成分分析(PCA) 4.2 降维 4 ...
- R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标
全文下载链接:http://tecdat.cn/?p=27515 建立重庆市经济指标发展体系,以重庆市一小时经济圈作为样本,运用因子分析方法进行实证分析,在借鉴了相关评价理论和评价方法的基础上,本文提 ...
- 数据分享|R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标...
原文链接:http://tecdat.cn/?p=27515 建立重庆市经济指标发展体系,以重庆市一小时经济圈作为样本,运用因子分析方法进行实证分析,在借鉴了相关评价理论和评价方法的基础上,本文提取 ...
- 无监督学习与主成分分析(PCA)
无监督学习与主成分分析(PCA) 序 在之前的文章中,我讲了很多监督学习的算法(线性模型,SVM,决策树,神经网络等),那么接下来,我们要开始接触无监督学习了.首先,我们先说下相关概念. 无监督学习 ...
- 拓端tecdat荣获掘金社区入驻新人奖
2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...
- R语言如何绘制PCA图(四)
1.什么是PCA? 人眼一般能感知的空间为二维和三维.高维数据可视化的重要目标就是将高维数据呈现于二维或三维空间中.高维数据变换就是使用降维度的方法,使用线性或非线性变换把高维数据投影到低维空间,去掉 ...
最新文章
- python保留字的基本含义-python 33个保留字是什么意思
- 首届CCF真题5-任务调度
- 2017(深圳) .NET技术分享交流会(第二期)网络直播活动
- C++ string::size_type
- Chrome浏览器如何安装与使用PDFViewer扩展程序
- vaex 处理海量数据_Vaex真香!几秒钟就能处理数十亿行数据,比Pandas、Dask更好用...
- (24)FPGA面试题3分频器
- 阿里云的SLB,植入cookie和重写cookie有什么区别?
- ARP 协议 理解
- jetty:Address already in use: bind
- DirectX 发展历程
- 大组合数:Lucas定理
- springmvc源码-我们自定义的参数解析器是如何放入到spring容器中的
- C3P0连接池的使用
- java.lang.Exception: Method XXX should have no parameters
- Arduino与Proteus仿真实例-LM75温度传感器驱动仿真
- [雪峰磁针石博客]软件测试专家工具包1web测试
- python打开图片出错 IOError: cannot identify image file 解决方法
- ARP渗透与攻防(五)之Ettercap劫持用户流量
- 挤奶牛Crowded Cows 洛谷p3088