关于数据挖掘:R语言主成分分析PCA谱分解奇异值分解SVD预测分析运动员表现数据和降维可视化

27次阅读

共计 3078 个字符,预计需要花费 8 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=25067 

本文形容了如何 应用 R 执行 主成分剖析 (PCA )。您将学习如何 应用 PCA_预测_ 新的个体和变量坐标。咱们还将提供 _PCA 后果_背地的实践。

在 R 中执行 PCA 有两种通用办法:

  • _谱合成_,查看变量之间的协方差 / 相关性
  •  查看个体之间的协方差 / 相关性的_奇怪值合成_

依据 R 的帮忙,SVD 的数值精度稍好一些。

可视化

创立基于 ggplot2 的优雅可视化。

演示数据集

咱们将应用运动员在十项全能中的体现数据集,这里应用的数据形容了运动员在两项体育赛事中的体现 

数据形容:
一个数据框,蕴含以下 13 个变量的 27 个观测值。

X100m
一个数字向量

跳远
一个数字向量

投篮
一个数字向量

高跳
一个数字向量

X400m
数字向量

X110m.hurdle
一个数字向量

飞碟
一个数字向量

撑杆跳高
一个数字向量

绳索
数字向量

X1500 米
数字向量

级别
与等级绝对应的数字向量


一个数字向量,指定取得的点数

运动会
程度变量 Decastar OlympicG

简而言之,它蕴含:

  • 训练个体(第 1 到 23 行)和训练变量(第 1 到 10 列),用于执行主成分剖析
  • 预测个体(第 24 至 27 行)和预测变量(第 11 至 13 列),其坐标将应用 PCA 信息和通过训练个体 / 变量取得的参数进行预测。

加载数据并仅提取训练的个体和变量:

                       head(dec)

计算 PCA

在本节中,咱们将可视化 PCA。

  1. 进行可视化
  2. 计算 PCA
prcomp
  1. 可视化 _特征值_(_碎石图_)。显示每个主成分解释的方差百分比。

  1. 具备类似特色的集体被归为一组。
viz(res)

  1. 变量图。正相干变量指向图的同一侧。负相关变量指向图表的相同两侧。
vzpca(res)

  1. 个体和变量的双标图
fvbiplot(res)

PCA 后果

# 特征值
eigva

  
# 变量的后果
coord # 坐标
contrib # 对 PC 的奉献
cos2 # 代表性的品质 
# 集体的后果
coord # 坐标
contrib # 对 PC 的奉献
cos2 # 代表性的品质

应用 PCA 进行预测

在本节中,咱们将展现如何仅应用先前执行的 PCA 提供的信息来预测补充个体和变量的坐标。

预测集体

  1. 数据:第 24 到 27 行和第 1 到 10 列。新数据必须蕴含与用于计算 PCA 的流动数据具备雷同名称和程序的列(变量)。
#  预测个体的数据
in <- dec\[24:27, 1:10\]

  1. 预测新个体数据的坐标。应用 R 基函数 _predict_ ():
predict

  1. 包含补充集体在内的集体图表:
# 沉闷个体的图谱
fvca_
# 增加补充个体
fdd(p)

个体的预测坐标能够计算如下:

  1. 应用 PCA 的核心和比例对新的集体数据进行中心化和标准化
  2. 通过将标准化值与主成分的特征向量(载荷)相乘来计算预测坐标。

能够应用上面的 R 代码:

# 对补充个体进行居中和标准化
ined <- scale
# 个体个体的坐标

rtaton
ird <- t(apply)

补充变量

定性 / 分类变量

数据集 在第 13 列蕴含与较量类型绝对应的 _补充定性变量_。

定性 / 分类变量可用于按组为样本着色。分组变量的长度应与沉闷个体的数量雷同。

groups <- as.factor
fvnd(res.pca)

计算分组变量程度的坐标。给定组的坐标计算为组中个体的均匀坐标。

library(magrittr) # 管道函数 %>%。# 1. 单个坐标
getind(res)
# 2. 组的坐标
coord %>% >
  as\_data\_frame%>%
  selec%>%
  mutate%>%
  group_b %>%

定量变量

数据:11:12 栏。应与沉闷个体的数量雷同(此处为 23)

quup <- dec\[1:23, 11:12\]
head(quup .sup)

给定定量变量的坐标被计算为定量变量与主成分之间的相关性。

# 预测坐标并计算 cos2
quaord <- cor
quaos2 <- qord^2
# 变量的图形,包含补充变量
p <- fviar(reca)
fvdd(p, quord, color ="blue", geom="arrow")

PCA 后果背地的实践

变量的 PCA 后果

在这里,咱们将展现如何计算变量的 PCA 后果:坐标、cos2 和奉献:

  • var.coord = 载荷 * 重量标准差
  • var.cos2 = var.coord ^ 2
  • var.contrib. 变量对给定主成分的奉献为(百分比):(var.cos2 * 100)/(成分的总 cos2)
# 计算坐标
#::::::::::::::::::::::::::::::::::::::::
logs <- rotation
sdev <- sdev
vad <- t(apply)

# 计算 Cos2
#::::::::::::::::::::::::::::::::::::::::
vaos2 <- vard^2
head(vars2\[, 1:4\])

# 计算奉献
#::::::::::::::::::::::::::::::::::::::::
comos2 <- apply
cnrib <- function
var.otrb <- t(apply)
head(vaib\[, 1:4\])

PCA 后果

  • ind.coord = res.pca$x
  • 集体的 Cos2。两步:
  • 计算每个个体与 PCA 重心之间的平方间隔:d2 = [(var1\_ind\_i – mean\_var1)/sd\_var1]^2 + …+ [(var10\_ind\_i – mean\_var10)/sd\_var10]^2 + …+..
  • 将 cos2 计算为 ind.coord^2/d2
  • 集体对主成分的奉献:100 (1 / number\_of\_individuals)(ind.coord^2 / comp_sdev^2)。请留神,每列所有奉献的总和为 100
# 集体的坐标
#::::::::::::::::::::::::::::::::::
inod <- rpa$x
head(in.c\[, 1:4\])

# 集体的 Cos2
#:::::::::::::::::::::::::::::::::
# 1. 个体与 #PCA 重心之间间隔的平方
# PCA 重心的平方
ceer<- center
scle<- scale

d <- apply(decaive,1,gnce, center, scale)
# 2. 计算 cos2。每一行的总和为 1
is2 <- apply(inrd, 2, cs2, d2)
head(is2\[, 1:4\])

# 集体的奉献
#:::::::::::::::::::::::::::::::

inib <- t(apply(iord, 1, conib, 
                       sdev, nrow))
head(inib\[, 1:4\])


最受欢迎的见解

1.matlab 偏最小二乘回归 (PLSR) 和主成分回归 (PCR) 和主成分回归(PCR)”)

2.R 语言高维数据的主成分 pca、t-SNE 算法降维与可视化剖析

3. 主成分剖析 (PCA) 基本原理及剖析实例基本原理及剖析实例 ”)

4. 基于 R 语言实现 LASSO 回归剖析

5. 应用 LASSO 回归预测股票收益数据分析

6.r 语言中对 lasso 回归,ridge 岭回归和 elastic-net 模型

7.r 语言中的偏最小二乘回归 pls-da 数据分析

8.r 语言中的偏最小二乘 pls 回归算法

9. R 语言线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)

正文完
 0