首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >对列表对象进行映射并应用公式

对列表对象进行映射并应用公式
EN

Stack Overflow用户
提问于 2020-01-19 12:26:56
回答 1查看 35关注 0票数 2

我试图将下面的公式应用于我的每个列表整数。

代码语言:javascript
运行
AI代码解释
复制
((TP * TN) - (FP * FN)) / sqrt((TP + FP) * (TP+FN) * (TN+FP) * (TN+FN))

我正在尝试用pmap,但似乎无法使计算工作。

数据:

代码语言:javascript
运行
AI代码解释
复制
TP <- list(12734L, 12765L, 12842L, 12786L)
FP <- list(262L, 212L, 215L, 198L)
FN <- list(635L, 869L, 943L, 1081L)
TN <- list(869L, 654L, 500L, 435L)

我运行以下命令:

代码语言:javascript
运行
AI代码解释
复制
TP <- list(12734L, 12765L, 12842L, 12786L)
FP <- list(262L, 212L, 215L, 198L)
FN <- list(635L, 869L, 943L, 1081L)
TN <- list(869L, 654L, 500L, 435L)

lst1 <- list(TP, FP, FN, TN)
purrr::pmap(lst1, ~ ((..1 * ..4) - (..2 * ..3))/sqrt((..1 + ..2) * (..1 + ..3) * (..4 + ..2) * (..4 + ..3)))

其中产出:

代码语言:javascript
运行
AI代码解释
复制
[[1]]
[1] NA

[[2]]
[1] NA

[[3]]
[1] NA

[[4]]
[1] NA

Warning messages:
1: In (..1 + ..2) * (..1 + ..3) * (..4 + ..2) :
  NAs produced by integer overflow
2: In (..1 + ..2) * (..1 + ..3) * (..4 + ..2) :
  NAs produced by integer overflow
3: In (..1 + ..2) * (..1 + ..3) * (..4 + ..2) :
  NAs produced by integer overflow
4: In (..1 + ..2) * (..1 + ..3) * (..4 + ..2) :
  NAs produced by integer overflow
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-19 12:32:30

我们可以将所有list元素包装在一个list

代码语言:javascript
运行
AI代码解释
复制
lst1 <- list(TP, FP, FN, TN)

list元素都是整数类,根据计算结果,*值将得到非常大的数字,超出了integer的值范围。可能是应该转换为大整数类或使用numeric

代码语言:javascript
运行
AI代码解释
复制
library(purrr)
pmap_dbl(lst1, ~ ((as.numeric(..1) * as.numeric(..4))  - 
              (as.numeric(..2) * as.numeric(..3)))/
   sqrt((as.numeric(..1) + as.numeric(..2)) * (as.numeric(..1) + 
         as.numeric(..3)) * (as.numeric(..4) + as.numeric(..2)) * 
         (as.numeric(..4) + as.numeric(..3))))
#[1] 0.6340100 0.5344409 0.4563071 0.4068497

此外,由于list的长度都相同,所以最好将其转换为vector,并且作为data.frame的列,我们可以更容易地应用这些函数。

代码语言:javascript
运行
AI代码解释
复制
library(dplyr)
library(tidyr)
tibble(TP, FP, FN, TN) %>% 
    unnest(c(TP, FP, FN, TN)) %>%
    mutate_all(as.numeric) %>%
    transmute(out = f1(TP, FP, FN, TN))
# A tibble: 4 x 1
#    out
#  <dbl>
#1 0.634
#2 0.534
#3 0.456
#4 0.407

哪里

代码语言:javascript
运行
AI代码解释
复制
f1 <- function(TP, FP, FN, TN) {
         ((TP * TN) - (FP * FN)) /
          sqrt((TP + FP) * (TP+FN) * (TN+FP) * (TN+FN))
      }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59814091

复制
相关文章
谈SaaS下如何迅速部署应用软件
如今,许多公司借助软件即服务(Software as a Service,SaaS)来迅速部署软件,只需要较少的前期投资和极少的IT人员资源。使用按需模式(on-demand model)的应用软件越来越多,他们正在充分加以利用。
全栈程序员站长
2022/07/04
1.2K0
Netty 在 Dubbo 中是如何应用的?
众所周知,国内知名框架 Dubbo 底层使用的是 Netty 作为网络通信,那么内部到底是如何使用的呢?今天我们就来一探究竟。
Java技术栈
2019/11/29
9510
Netty 在 Dubbo 中是如何应用的?
众所周知,国内知名框架 Dubbo 底层使用的是 Netty 作为网络通信,那么内部到底是如何使用的呢?今天我们就来一探究竟。
IT大咖说
2020/02/26
2.2K0
应用软件开发的工程化
应用软件的功能需求、非功能需求和工程化问题是应用软件开发中不可或缺的部分。功能需求是软件必须实现的功能,非功能需求是软件必须满足的属性,工程化问题是软件开发过程中遇到的技术问题。
行者深蓝
2023/11/09
5850
相似的像素保持在同一组中的梯度的函数的应用。
Week_05_Lec_03_Code.m I = imread('circuit.tif'); rotI = imrotate(I, 33, 'crop'); BW = edge(rotI, 'canny'); [H, T, R] = hough(BW); imshow(H, [], 'XData', T, 'YData', R, 'InitialMagnification', 'fit'); xlabel('\theta'), ylabel('\rho'); axis on, axis normal,
裴来凡
2022/05/28
6130
相似的像素保持在同一组中的梯度的函数的应用。
在seaborn中设置和选择颜色梯度
seaborn在matplotlib的基础上进行开发,当然也继承了matplotlib的颜色梯度设置, 同时也自定义了一系列独特的颜色梯度。在seaborn中,通过color_palette函数来设置颜色, 用法如下
生信修炼手册
2020/11/02
3.9K0
在seaborn中设置和选择颜色梯度
应用软件开发的工程化-Go
在 Linux(Ubuntu/Fedora)和 MacOS 下的 Go 开发环境设置步骤如下:
行者深蓝
2023/11/18
2560
应用软件开发的工程化-JavaScript
在 Linux(Ubuntu/Fedora)和 MacOS 下的 JavaScript 开发环境设置步骤:
行者深蓝
2023/11/18
2840
新型应用软件型NAS方案Infortress
Infortress是应用软件型NAS解决方案,官方网站为 https://hardstones.com 用户只需要在自己的电脑上安装一个应用软件就能给自己的电脑增加NAS功能,不影响电脑正常使用的同时还能帮助用户将手机相册,通讯录备份到自己的电脑上,并能像访问网盘一样远程访问。除了备份这个核心功能,它还支持密码和笔记管理。它还有一些特色功能,如隐身模式,用户无需注册就能使用。还支持访问用户电脑硬盘上的所有文件,可以一定程度上满足远程办公(远程获取办公和学习文档)的需求。它的端口穿透功能够用其自带的内网穿透服务将电脑上的TCP服务开放到互联网访问,帮助用户实现远程RDP等,开发者可以用这个功能将内网电脑上的HTTP服务开放到互联网访问。更牛的是,它还支持双活双备,2台电脑同时备份,保持同步。
用户11460993
2025/01/25
3050
新型应用软件型NAS方案Infortress
Linux Mint 17下LibreOffice应用软件的使用
Linux Mint中默认安装了一部分应用软件,方便用户使用。本章节中先说Mint中默认安装的办公软件:LibreOffice。
用户8704835
2021/06/08
5K0
腾讯云微搭低代码平台如何连接其他应用/软件?
腾讯云微搭低代码是一个低代码开发平台,用户可通过拖拽式开发去搭建 PC Web、H5 和小程序应用,轻松高效的搭建自己需要的应用。 腾讯微搭支持打通企业内部数据,轻松实现企业微信管理、消息推送、用户权限等能力,实现企业内部系统管理。
阿那个沫
2022/11/03
2.3K0
腾讯云微搭低代码平台如何连接其他应用/软件?
应用软件开发的工程化-Python
在 Linux(Ubuntu/Fedora)和 MacOS 下的 Python 开发环境设置步骤
行者深蓝
2023/11/18
2860
Netty-在-Dubbo-中如何应用
链接:http://thinkinjava.cn/2018/03/%E7%9C%8B-Netty-%E5%9C%A8-Dubbo-%E4%B8%AD%E5%A6%82%E4%BD%95%E5%BA%94%E7%94%A8/
用户5224393
2019/08/13
1.2K0
Netty-在-Dubbo-中如何应用
理解梯度下降在机器学习模型优化中的应用
本文介绍了梯度下降算法的起源、批量梯度下降、随机梯度下降和小批量梯度下降,以及它们在机器学习中的重要性。通过这些算法,可以优化模型权系数,从而提高模型的性能。
chaibubble
2018/01/02
1.8K0
理解梯度下降在机器学习模型优化中的应用
让数据先“活”起来,如何实现数据在企业中的最大价值
📷数据是一种宝贵的资源,知道数据十分宝贵的人很多但如何运用数据让其发生效用的人并不多,今天借着机会,和唐建法老师请教关于数据如何发生效用的事情,让数据也能为企业带来效益,同时作为一个数据库架构师、DBA,我也想听到更新、更有价值的知识,数据到底是什么、Data as service 数据即服务 、数据流转的最终目的是什么,我想寻求真实的答案。
AustinDatabases
2025/03/24
1240
让数据先“活”起来,如何实现数据在企业中的最大价值
应用软件开发的工程化-Rust
在 Linux(Ubuntu/Fedora)和 MacOS 下的Rust 开发环境设置步骤:
行者深蓝
2023/11/18
4090
应用软件开发的工程化-C 语言
C 语言在 Linux(Ubuntu/Fedora)和 MacOS 下的开发环境设置步骤:
行者深蓝
2023/11/18
2570
梯度是如何计算的
引言 深度学习模型的训练本质上是一个优化问题,而常采用的优化算法是梯度下降法(SGD)。对于SGD算法,最重要的就是如何计算梯度。此时,估计跟多人会告诉你:采用BP(backpropagation)算
机器学习算法工程师
2018/03/06
2.6K0
梯度是如何计算的
在SaaS应用中,AI的“雪球”如何越滚越大?
从Shopify可防止欺诈的机器学习到Salesforce的Einstein,在过去的数年间,SaaS巨头们或投入巨资以进行AI的开发,或收购AI创业公司,以试图率先在竞争中取得优势。 借助于云计算,
BestSDK
2018/03/02
1K0
在SaaS应用中,AI的“雪球”如何越滚越大?
脑组织中的梯度
近年来,研究脑组织空间变化或梯度的新方法和应用兴起,补充了在识别和绘制离散脑区和宏观功能社区方面取得的进展。在人类和非人灵长类动物死后细胞结构的早期分析中已经强调了这一点,最近的神经影像学和网络神经科学研究在绘制人类和非人类大脑的空间梯度方面取得了重大进展。
悦影科技
2022/06/20
5660

相似问题

在rails中生成自动递增号

13

如何自动递增票据号

20

如何在“组按”查询中使用自动递增号生成假列

25

CQ中自动递增唯一号生成策略

40

生成帐户号递增1

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档