precision相关内容

在一个模型中,精确度和召回率是相同的

我正在进行一个多分类项目,我注意到无论我运行什么分类器,模型中的精度和召回率都是相同的。 分类问题有三个截然不同的类别。数据量偏小,13k实例分为测试(0.8)和训练(0.2)。 训练数据的形状为(10608,28),标签的形状为(10608,3)(二进制标签)。 分类不平衡: 标签0占所有标签的30% 标签1占所有标签的4% 标签2占所有标签的66%。 我正在比 ..

为什么使用DECIMAL方法时0.2不等于0.2?

我还是一个初学者,使用Python中内置的DECIMAL方法,它会略微关闭。 代码如下: import decimal print(decimal.Decimal(0.02)) 以下是输出: 0.0200000000000000004163336342344337026588618755340576171875 我开始想,这怎么可能?0.02不是0.02000000000 ..
发布时间:2022-04-10 22:21:12 Python

在R中处理非常小的数字

我需要计算一个非常小的数字列表,例如 (0.1)^1000,0.2^(1200), 然后将其规格化,使其合计为1 即 A1=0.1^1000, A2=0.2^1200 我想计算一下 A1‘=a1/(a1+a2), A2‘=a2(a1+a2)。 我遇到了下溢问题,因为我得到A1=0。我怎么才能绕过这个问题呢? 从理论上讲,我可以处理日志,然后log(A1)=1000*log(0 ..
发布时间:2022-04-10 22:19:21 其他开发

将 Java 数字转换为 BigDecimal:最好的方法

我正在寻找将数字转换为 BigDecimal 的最佳方法. 这够好吗? 编号;BigDecimal big = new BigDecimal(number.toString()); 我们可以使用 toString() 方法丢失精度吗? 解决方案 这很好,记住使用 BigDecimal 的构造函数来声明一个不是 String 类型的值是很危险的.考虑以下... BigDecima ..
发布时间:2022-01-17 09:55:22 Java开发

Fortran 精确处理大实数

当我运行下面的代码时,我得到的输出是 6378136.5 而不是 6378136.3 程序测试隐式无真实*8 半径半径 = 6378136.3打印*,半径结尾 我已阅读此其他链接(Fortran 中实数的精度问题) 但它没有解释如何解决这个问题. 解决方案 发生这种情况的原因不是因为您使用的变量缺乏精度,而是因为您使用单精度数初始化了该值. 看看 这个答案一个很好的解释,以及一个 ..
发布时间:2022-01-14 10:19:53 其他开发

使用 intel 11.1 编译器在 fortran 90 中获得双精度

我有一个非常大的代码,它设置并迭代求解一个非线性偏微分方程系统,用 fortran 编写.我需要所有变量都是双精度的.在我为代码编写的附加模块中,我将所有变量声明为双精度类型,但我的模块仍然使用旧源代码中声明为实数类型的变量.所以我的问题是,当单精度变量乘以 fortran 中的双精度变量时会发生什么?如果用于存储值的变量声明为双精度,结果是否为双精度?如果双精度值乘以最后没有“D0"的常数怎么办 ..
发布时间:2022-01-14 10:12:34 其他开发

如何在 gfortran 中使用和验证四精度?

我正在尝试在 gfortran 中使用四精度,但似乎 real*16 不起作用.经过一番摸索,我发现它可能实现为real*10.real*10 实际上是四精度吗? 如何测试我的代码的精度?是否有用于测试精度的标准简单算法?例如,当我想弄清楚计算机 0 是什么时,我会继续除以 2.0,直到达到 0.0.跟踪这些值让我知道计算机何时“认为"我的非零数为零 - 给我计算机零. 有没有一种像我 ..
发布时间:2022-01-14 10:05:19 其他开发

实变量精度

我在 FORTRAN 77 中有以下代码: REAL*8 :: dmdm=1.-1.E-12写(6,*)'dm:',dm 我得到:dm: 1 这样好吗?我想获得 dm=0.999999999999 解决方案 如注释中所述,您需要指定常量的精度.此外,real*8 已过时.(它总是扩展吗?)这是一种现代的编写方式,使用 ISO Fortran 环境获取 64 位实数类型,并在声明和 ..
发布时间:2022-01-14 09:58:43 其他开发

扩展双精度

不使用 quadruple 是否可以得到超过 16 位的 double 精度?如果可能,它是否取决于编译器或其他东西?因为我知道有人说他使用的是 double 精度并且有 22 位精度. 解决方案 数据类型双精度源于Fortran 77,该类型的唯一要求是比真实.你不应该再使用它了. 在 Fortran 90/95 及更高版本中,至少支持两种大小的实数.精度由kind参数决定,其值取 ..
发布时间:2022-01-14 09:48:04 其他开发

如何以可移植的方式保持 Fortran MPI 程序的精度?

我有一个 Fortran 程序,我在其中指定数值数据类型的 kind 以尝试保持最低级别的精度,而不管使用什么编译器来构建程序.例如: 整数,参数 :: rsp = selected_real_kind(4)...真实(种类=rsp)::real_var 问题是我使用 MPI 来并行化代码,我需要确保 MPI 通信指定具有相同精度的相同类型.我使用以下方法与我的程序中的方法保持一致: 调用 ..
发布时间:2022-01-14 09:40:12 其他开发

“real*8"是什么意思?意思是?

用 Fortran 90 编写的程序手册说:“所有实变量和参数都以 64 位精度指定(即 real*8)." 根据Wikipedia,单精度对应32位精度,而双精度对应64 位精度,所以显然程序使用双精度. 但是 real*8 是什么意思呢? 我认为 8 的意思是小数点后有 8 位数字.但是,Wikipedia 似乎说单精度通常提供 6-9 位,而 双精度 通常提供 15-17 ..
发布时间:2022-01-14 09:27:31 其他开发