IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> R语言实现多维尺度分析(Multidimensional Scaling,MDS) -> 正文阅读

[人工智能]R语言实现多维尺度分析(Multidimensional Scaling,MDS)

1. 什么是多维尺度分析MDS

本质上是一种降维方法,让高维数据在低维尺度上直观展示,便于观察其中的差异(距离)。

2. MDS实现步骤

step1:获取数据,行是每一个数据,列是每个特征
step2:以两列(特征)作为差异(距离)的计算标准,计算每个数据两两之间的距离
step3:应用MDS对每个数据进行可视化,直观表现数据差异(距离)
step4:找到最佳维度数量,重新对数据进行可视化
step5:模型效果评价

3. 代码

引入包和数据,本数据共76行,24列,每行是一个数据,最后两列是经纬度特征。

install.packages(c("Rling", "fields", "rgl", "MASS"))
library(Rling); library(fields); library(rgl); library(MASS)
data(eWAVE)

计算数据两两之间的距离,应用MDS,返回每个数据的低维坐标及特征值,可视化前20维的解释力:

geo.dist <- rdist.earth(eWAVE[, 23:24], miles = FALSE)
geo.dist <- as.dist(geo.dist)
geo.mds <- cmdscale(geo.dist, eig = TRUE) #equivalent to cmdscale(geo.dist, k = 2, eig = TRUE)
barplot(geo.mds$eig[1:20], xlab = "Number of dimensions", ylab = "Eigenvalues", main = "Scree plot")

在这里插入图片描述
图中可以看出三个维度后解释力大幅下降,所以三维解是最优解。在这先继续以二维展示,后续再做三维的。下面展示MDS后各个数据的距离可视化结果。

plot(geo.mds$points, type = "n", main = "MDS of geographic distances between varieties of English")
text(geo.mds$points, labels = rownames(eWAVE), cex = 0.6)

在这里插入图片描述
可以发现各个数据的远近,越近差异越小,越远差异越大。
下面以最佳维度n=3来进行MDS展示。

geo.mds.3d <- cmdscale(geo.dist, k = 3, eig = TRUE)
plot3d(geo.mds.3d$points, type = "n")
text3d(geo.mds.3d$points, texts = rownames(eWAVE), cex = 0.6)

在这里插入图片描述
查看MDS模型的有效性,得分越大越好(类似于R2):

geo.mds.3d$GOF

另一种计算有效性方法,得分越小越好(<0.05):

sqrt(sum((geo.dist-dist(geo.mds.3d$points))^2)/sum(geo.dist^2))

除此之外,还可以将每个点的MDS距离与真实距离画图展示,x轴对应于每个pair之间的地理距离,而y轴则表示MDS解决方案所表示的pairs之间的距离。模型效果越好点离对角线越近。

geo.sh <- Shepard(geo.dist, geo.mds.3d$points)
plot(geo.sh, main = "Shepard plot", pch = ".")
lines(geo.sh$x, geo.sh$yf, type = "S")

在这里插入图片描述

4.参考资料

Levshina, Natalia. “How to do linguistics with R.” Data Exploration and Statistical Analysis, Amsterdam-Philadelphia (2015).[附百度云盘链接:https://pan.baidu.com/s/1YnWLPiH7oom_dPABWXFKig 提取码:f3nk)

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:23:58  更:2022-03-30 18:26:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:35:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码