R语言数据降维

笔记 专栏收录该内容
4 篇文章 0 订阅

今天是2020年的最后一天,这一年多灾多难,让我们唏嘘不已。不论2020如何,生活仍要继续,希望即将到来的2021年,可以‘牛’转乾坤。
这也是2020年的最后一篇博客了,在这里给大家介绍一下。目前R语言的几种降维方式。
首先需要配置数据

data<-matrix(rnorm(3000),ncol=6)
colnames(data)=paste0('gene',1:6)
rownames(data)=c(paste0(rep('C',nrow(data)/2),1:(nrow(data)/2)),
                 paste0(rep('P',nrow(data)/2),1:(nrow(data)/2)))
head(data)

在这里插入图片描述1、PCA降维

data.pca <- prcomp(t(data), scale. = TRUE)
head(data.pca$rotation)

在这里插入图片描述

pca_data=data.pca$rotation[,1:2]
pca_data=data.frame(sample=rownames(pca_data),
                    pca_data,
                    group=c(rep('C',nrow(data)/2),rep('P',nrow(data)/2)))
head(pca_data)

在这里插入图片描述

#绘图
library(ggplot2)
ggplot(data=pca_data,aes(x=PC1,y=PC2))+
  geom_point(aes(colour=group,shape=group),size=2)+
  theme(text=element_text(size=10),legend.title=element_blank(),
        panel.background = element_rect(fill = "white", colour = "black",size = 0.2), 
        legend.key = element_rect(fill = "white", colour = "white"),
        legend.background = (element_rect(colour= "white",fill = "white")))

在这里插入图片描述2、非度量MDS降维

dis_data = dist(data,'euclidean',p=2)
mds_x = cmdscale(dis_data,k=2)
mds_x = data.frame(mds_x)
colnames(mds_x)=c('MDS.1','MDS.2')
head(mds_x)

在这里插入图片描述

mds_data=data.frame(sample=rownames(mds_x),
                    mds_x,
                    group=c(rep('C',nrow(data)/2),rep('P',nrow(data)/2)))
head(mds_data)

在这里插入图片描述

library(ggplot2)
ggplot(data=mds_data,aes(x=MDS.1,y=MDS.2))+
  geom_point(aes(colour=group,shape=group),size=2)+
  theme(text=element_text(size=10),legend.title=element_blank(),
        panel.background = element_rect(fill = "white", colour = "black",size = 0.2), 
        legend.key = element_rect(fill = "white", colour = "white"),
        legend.background = (element_rect(colour= "white",fill = "white")))

在这里插入图片描述3、umap降维

library(umap)
data.umap = umap(data)

umap_data=data.umap$layout
colnames(umap_data)=c('umap_1','umap_2')
head(umap_data)

在这里插入图片描述

umap_data=data.frame(sample=rownames(umap_data),
                    umap_data,
                    group=c(rep('C',nrow(data)/2),rep('P',nrow(data)/2)))
head(umap_data)

在这里插入图片描述

library(ggplot2)
ggplot(data=umap_data,aes(x=umap_1,y=umap_2))+
  geom_point(aes(colour=group,shape=group),size=2)+
  theme(text=element_text(size=10),legend.title=element_blank(),
        panel.background = element_rect(fill = "white", colour = "black",size = 0.2), 
        legend.key = element_rect(fill = "white", colour = "white"),
        legend.background = (element_rect(colour= "white",fill = "white")))

在这里插入图片描述4、tsne降维
#迭代次数 max_iter
#困惑度perplexity
#权衡速度与准确度,越小越精确,越大速度越快 theta

library(Rtsne)
#设置随机种子
set.seed(1500)
tsne_result <- Rtsne(data,
                     initial_dims = ncol(data),
                     pca = FALSE,
                     dims = 2,
                     check_duplicates = FALSE,
                     perplexity=30,
                     max_iter=2500,
                     theta=0.5)$Y
colnames(tsne_result)=c('tsne_1','tsne_2')
head(tsne_result)

在这里插入图片描述

tsne_data=data.frame(sample=rownames(data),
                     tsne_result,
                     group=c(rep('C',nrow(data)/2),rep('P',nrow(data)/2)))
head(tsne_data)

在这里插入图片描述

library(ggplot2)
ggplot(data=tsne_data,aes(x=tsne_1,y=tsne_2))+
  geom_point(aes(colour=group,shape=group),size=2)+
  theme(text=element_text(size=10),legend.title=element_blank(),
        panel.background = element_rect(fill = "white", colour = "black",size = 0.2), 
        legend.key = element_rect(fill = "white", colour = "white"),
        legend.background = (element_rect(colour= "white",fill = "white")))

在这里插入图片描述

  • 3
    点赞
  • 0
    评论
  • 6
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

全书一共13章,分为三篇:基础篇、实战篇和提高篇。基础篇介绍了游戏数据分析的基本理论知识、R语言的安装与使用、R语言中的数据结构、常用操作和绘图功能。实战篇主要介绍了游戏数据的预处理、常用分析方法、玩家路径分析和用户分析。提高篇介绍了R语言图形界面工具Rattle和Web开发框架shiny包。 第一篇是基础篇(第1~4章):第1章主要介绍了游戏数据分析的必要性和流程;第2章讲解了R语言和RStudio的安装及使用方法,并对数据对象和数据导入进行了介绍;第3章介绍了R语言绘图基础,包括常用图形参数设置、低级绘图函数和高级绘图函数;第4章介绍了lattice和ggplot2绘图包,并详细介绍了一些基于R语言可用于生成交互式图形的软件包,包括rCharts、recharts、rbokeh、plotly等。 第二篇是实战篇(第5~11章):第5章介绍了游戏数据预处理常用的手段,包括数据抽样、数据清洗、数据转换和数据哑变量处理;第6章介绍了游戏数据分析的常用方法,包括指标数据可视化、游戏数据趋势分析、游戏数据相关性分析和游戏数据中的降维技术;第7章介绍了事件点击行为常用的漏斗分析和路径分析;第8章介绍了留存指标的计算、留存率计算与预测、常用分类算法原理和模型评估;第9章介绍了常用用户指标计算、LTV计算与预测、用户物品购买关联分析、基于用户物品购买智能推荐和社会网络分析;第10章介绍了渠道数据分析的必要性和对渠道用户进行质量评级;第11章介绍了常用收入指标计算、利用用户活跃度衡量游戏经济状况、RFM模型研究。 第三篇是提高篇,主要包括rattle和shiny分析挖掘平台构建。
©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值