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‘)

?

如果您有任何疑问,请在下面发表评论。

大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务

统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服

?QQ:3025393450

?QQ交流群:186388004 

【服务场景】  

科研项目; 公司项目外包;线上线下一对一培训;数据爬虫采集;学术研究;报告撰写;市场调查。

【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询

欢迎关注微信公众号,了解更多数据干货资讯!

欢迎选修我们的R语言数据分析挖掘必知必会课程!

原文地址:https://www.cnblogs.com/tecdat/p/12099458.html

时间: 2024-10-31 17:07:46

R语言无监督学习:PCA主成分分析可视化的相关文章

R语言进行相关矩阵分析及其可视化

原文链接:http://tecdat.cn/?p=6488 数据准备 # Select columns of interest mydata <- mtcars %>% select(mpg, disp, hp, drat, wt, qsec) # Add some missing values mydata$hp[3] <- NA # Inspect the data head(mydata, 3) ## mpg disp hp drat wt qsec ## Mazda RX4 21

[R语言]关联规则1---不考虑items之间的时序关系

本文介绍的是关联规则,分为两部分:第一部分是---不考虑用户购买的items之间严格的时序关系,每个用户有一个“购物篮”,查找其中的关联规则.第二部分--- 考虑items之间的严格的时序关系来分析用户道具购买路径以及关联规则挖掘.此文为第一部分的讲解.(本文所需的代码和数据集可以在这里下载.) 关联规则最常听说的例子是“啤酒与尿布”:购买啤酒的用户通常也会购买尿布.在日常浏览电商网站时也会出现“购买该商品的用户还会购买….”等提示,这其中应用的就是关联规则的算法. 本文重点讲解的是关联规则的R

[R语言]关联规则2---考虑items之间严格的时序关系

前面介绍了关联规则1---不考虑用户购买的items之间的时序关系,但在一些情况下用户购买item是有严格的次序关系了,比如在某些休闲游戏中,用户购买了道具A才能购买道具B,且道具A和B只能购买一次,也就是说购买了道具A是购买道具B的充分条件,如果购买道具A的用户通常会购买道具A,在不考虑时序关系的时候,会得出“BàA”这样的关联规则,这会给运营的同事这样的结论:“购买了道具B的用户也非常有可能会购买道具A,当用户购买了道具B时应向其推荐道具A”,这从数据角度来说是没有问题的,但是从业务的角度来

主成分分析(PCA)原理及R语言实现

原理: 主成分分析 - stanford 主成分分析法 - 智库 主成分分析(Principal Component Analysis)原理 主成分分析及R语言案例 - 文库 主成分分析法的原理应用及计算步骤 - 文库 主成分分析之R篇 [机器学习算法实现]主成分分析(PCA)——基于python+numpy scikit-learn中PCA的使用方法 Python 主成分分析PCA 机器学习实战-PCA主成分分析.降维(好) 关于主成分分析的五个问题 主成分分析(PCA)原理详解(推荐) 多变

【转】R语言主成分分析(PCA)

https://www.cnblogs.com/jin-liang/p/9064020.html 数据的导入 > data=read.csv('F:/R语言工作空间/pca/data.csv') #数据的导入 > > ls(data) #ls()函数列出所有变量 [1] "X" "不良贷款率" "存贷款比率" "存款增长率" "贷款增长率" "流动比率" "收

R语言生存分析可视化分析

完整原文链接:http://tecdat.cn/?p=5438 生存分析对应于一组统计方法,用于调查感兴趣事件发生所花费的时间. 生存分析被用于各种领域,例如: 癌症研究为患者生存时间分析, “事件历史分析”的社会学 在工程的“故障时间分析”. 在癌症研究中,典型的研究问题如下: 某些临床特征对患者的生存有何影响? 个人三年存活的概率是多少? 各组患者的生存率有差异吗? 基本概念 在这里,我们从定义生存分析的基本术语开始,包括: 生存时间和事件 生存功能和危险功能 癌症研究中的生存时间和事件类型

R语言可视化

R语言基础(一) 可视化基础 ##数据获取 x1=round(runif(100,min=80,max=100)) x2=round(rnorm(100,mean=80, sd=7)) x3=round(rnorm(100,mean=80,sd=18)) x3[which(x3>100)]=100 num=seq(2005138101,length=100) x=data.frame(num,x1,x2,x3) write.table(x, "grade.txt") ##数据分析

R语言基础(二) 可视化基础

> which.max(apply(x[c("x1","x2","x3")], 1, sum))49 > x$num[which.max(apply(x[c("x1","x2","x3")], 1, sum))][1] 2005138149 > hist(x$x1) > plot(x$x1,x$x2) > table(x$x1) 80 81 82 83 84

第四篇:R语言数据可视化之折线图、堆积图、堆积面积图

前言 折线图通常用来对两个连续变量的依存关系进行可视化,其中横轴很多时候是时间轴. 但横轴也不一定是连续型变量,可以是有序的离散型变量. 绘制基本折线图 本例选用如下测试数据集: 绘制方法是首先调用ggplot函数选定数据集,并在aes参数中指明横轴纵轴.然后调用条形图函数geom_line()便可绘制出基本折线图.R语言示例代码如下: # 基函数 ggplot(BOD, aes(x = Time, y = demand)) + # 折线图函数 geom_line()     运行结果: 向折线