一行代码实现模型结果可视化

简介: 通常情况下,我们更关心的是构建统计模型的过程,而对于可视化模型结果都希望能快速完成。尽管一些包为生成的数据和模型提供默认的可视化。但是,它们看起来已经过时了,并且在 ggplot2 中使用它们之前,这些组件需要进行额外的转换和清理,当其他人希望在分析中生成类似的图表时,必须复制这些转换步骤。

简介


通常情况下,我们更关心的是构建统计模型的过程,而对于可视化模型结果都希望能快速完成。尽管一些包为生成的数据和模型提供默认的可视化。但是,它们看起来已经过时了,并且在 ggplot2 中使用它们之前,这些组件需要进行额外的转换和清理,当其他人希望在分析中生成类似的图表时,必须复制这些转换步骤。


autoplotly()函数允许用户使用一行代码来可视化许多流行的R包的统计结果,用于绘制许多统计数据和机器学习包的函数,以帮助用户以最小的努力实现可重现性目标,这大大提升了我们的工作效率。生成的可视化还可以使用 ggplot2 和 plotly 语法轻松地扩展,同时保持交互的特性。


绘图实战

下面演示下如何使用 autoplotly()函数绘图,首先安装并加载autoplotly包。

install.packages('autoplotly')
library(autoplotly)

autoplotly()函数适用于 stats 包中的两个基本对象类: prcompprincomp ,这两个对象是通过主成分分析得到的。下面提取 iris 数据集的前四列作为矩阵,对其进行主成分分析,并对结果进行可视化展示:

p <- autoplotly(prcomp(iris[c(1, 2, 3, 4)]), data = iris,
  colour = 'Species', frame = TRUE)
p

image.gifNO4`$Q{H~I1P9I2M`5]$LHK.png

可以看到,使用autoplotly绘制出来的结果更加美观,并且是可交互的。不需要另外的数据处理,autoplotly便能直接对函数生成的对象实现可视化。


图形美化

通过应用额外的 ggplot2 元素或组件,可以很容易地扩展使用 autoplotly()函数生成的图形。例如,我们可以使用 ggtitlelabs向原始生成的图形添加标题和轴标签。

autoplotly(
  prcomp(iris[c(1, 2, 3, 4)]), data = iris, colour = 'Species', frame = TRUE) +
  ggplot2::ggtitle("Principal Components Analysis") +
  ggplot2::labs(y = "Second Principal Component", x = "First Principal Component")

~JI1RW{NKG$T)PED@%QECGT.png

类似地,我们可以使用 plotly包 添加额外的交互组件。下面的例子将在原图的中心处添加一个箭头和注释文本:

p <- autoplotly(prcomp(iris[c(1, 2, 3, 4)]), data = iris,
  colour = 'Species', frame = TRUE)
p %>% plotly::layout(annotations = list(
  text = "看这里",
  font = list(
    family = "Courier New, monospace",
    size = 18,
    color = "black"),
  x = 0,
  y = 0,
  showarrow = TRUE))

3I(XOFR_KUH9SW}%A4A$LK4.png


更多例子

  • 在由 strucchange::breakpoints 构建的回归模型中,对有可能发生结构变化的最佳断点进行可视化:
library(strucchange)
autoplotly(breakpoints(Nile ~ 1), ts.colour = "blue", ts.linetype = "dashed",
           cpt.colour = "dodgerblue3", cpt.linetype = "solid")

image.gif91X(A3}]Y4Q(SYK2RAB(~I0.png

  • 带有边界结点的自然三次样条的b样条基点可视化
library(splines)
autoplotly(ns(ggplot2::diamonds$price, df = 6))

SVD``0R2GXG1R6(58O3KSCL.png


知识补充

目前,autoplotly只支持对部分对象进行可视化,这份清单上列举了所有对象,可点击链接查看:


结语

有了这个包,我们可以减少花在学习 ggplot2 语法或类似 plotly 的交互式可视化包上的时间,大家快快尝试一下吧~

目录
相关文章
|
机器学习/深度学习 PyTorch 算法框架/工具
【实操】涨点神器你还不会,快点进来学习Label Smooth
【实操】涨点神器你还不会,快点进来学习Label Smooth
407 1
|
SQL 关系型数据库 MySQL
MySQL查询(万字超详细版)
本文详细介绍了数据库中的单表和多表查询方法。首先,单表查询包括全列查询、指定列查询及去重查询,其中应避免使用`*`以提高效率。接着,文章讲解了排序查询,包括升序和降序,并展示了如何通过多个字段进行排序。在多表查询部分,本文解释了内连接、外连接(左外连接和右外连接)以及自连接的概念和用法,提供了丰富的代码示例
460 2
MySQL查询(万字超详细版)
uniapp上传图片功能怎么实现?
uniapp上传图片功能怎么实现?
|
Serverless Python
SciPy信号处理实战:从滤波到频谱分析
【4月更文挑战第17天】本文展示了如何使用Python的SciPy库进行信号处理,包括滤波和频谱分析。首先,通过`scipy.signal`模块实现滤波,如低通滤波器设计和应用,以去除噪声或提取特定频率成分。接着,利用傅里叶变换和`fft`函数进行频谱分析,揭示信号的频率成分和功率分布。通过实例代码,读者可了解从滤波到频谱分析的完整过程,从而在实际项目中有效处理和分析信号。
|
人工智能 自然语言处理 搜索推荐
AIGC: 2 语音转换新纪元-Whisper技术在全球客服领域的创新运用
全球客服领域的发展设想结合点: 1.智能客服语音助手: 2.多语言无缝服务体验: 3.语音分析与情感智能
1363 2
|
安全 Java API
深度解析 Spring Security:身份验证、授权、OAuth2 和 JWT 身份验证的完整指南
Spring Security 是一个用于保护基于 Java 的应用程序的框架。它是一个功能强大且高度可定制的身份验证和访问控制框架,可以轻松地集成到各种应用程序中,包括 Web 应用程序和 RESTful Web 服务。 Spring Security 提供了全面的安全解决方案,用于身份验证和授权,并且可以用于在 Web 和方法级别上保护应用程序。
1276 0
|
Go 计算机视觉 开发者
连夜卷出 | 超越所有YOLO检测模型,mmdet开源当今最强最快目标检测模型!(一)
连夜卷出 | 超越所有YOLO检测模型,mmdet开源当今最强最快目标检测模型!(一)
763 0
|
机器学习/深度学习 数据采集 数据可视化
CNN可视化技术总结(一)--特征图可视化
在CV很多方向所谓改进模型,改进网络,都是在按照人的主观思想在改进,常常在说CNN的本质是提取特征,但并不知道它提取了什么特征,哪些区域对于识别真正起作用,也不知道网络是根据什么得出了分类结果。
CNN可视化技术总结(一)--特征图可视化
|
机器学习/深度学习 存储
取出网络里面的所有参数,并计算所有参数的二范数
以上代码定义了一个名为calculate_l2_norm的函数,该函数接受一个神经网络模型作为参数,并返回该模型中所有参数的二范数。在函数体内,我们首先创建一个空张量l2_norm_squared,用于存储所有参数的平方和。 然后,通过遍历模型中的所有参数并将它们的平方和累加到l2_norm_squared中来计算所有参数的平方和。最后,我们返回所有参数的二范数。 在主程序中,首先实例化你自己定义的神经网络对象,然后调用calculate_l2_norm函数来计算所有参数的二范数。
322 0
|
Java TensorFlow API
TensorFlow Lite源码解析--模型加载和执行
TensorFlow Lite是专门针对移动和嵌入式设备的特性重新实现的TensorFlow版本。相比普通的TensorFlow,它的功能更加精简,不支持模型的训练,不支持分布式运行,也没有太多跨平台逻辑,支持的op也比较有限。但正因其精简性,因此比较适合用来探究一个机器学习框架的实现原理。不过准确讲,从TensorFlow Lite只能看到预测(inference)部分,无法看到训练(t
7785 0