- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
似乎 numpy
中的 corrcoef
在常量列表传递给 corrcoef()
时抛出一个 RuntimeWarning函数,例如下面的代码抛出警告:
import numpy as np
X = [1.0, 2.0, 3.0, 4.0]
Y = [2, 2, 2, 2]
print(np.corrcoef(X, Y)[0, 1])
警告:
/usr/local/lib/python3.6/site-packages/numpy/lib/function_base.py:3003: RuntimeWarning: invalid value encountered in true_divide
c /= stddev[:, None]
谁能解释为什么当其中一个列表是常量时会抛出此错误,以及如何在将常量列表传递给函数时防止此错误。
最佳答案
相关性衡量两个向量在变化时相互跟踪的程度。当一个向量不发生变化时,您无法跟踪相互变化。
如 OP 评论中所述,formula对于 Pearson 的乘积矩相关系数,用 X
和 Y
的协方差除以它们的标准差的乘积。由于 Y
在您的示例中方差为零,因此其标准差也为零。这就是您收到 true_divide
错误的原因 - 您正试图除以零。
注意:从工程的角度来看,简单地向 Y
中的一个条目添加一个非常小的数量(例如,一个刚好高于机器 epsilon 的值)似乎很诱人,以便解决零除法问题。但这在统计上是不可行的。即使添加 1e-15
也会严重扰乱您的相关系数,具体取决于您添加的值。
考虑这两种情况的区别:
X = [1.0, 2.0, 3.0, 4.0]
tiny = 1e-15
# add tiny amount to second element
Y1 = [2., 2.+tiny, 2., 2.]
np.corrcoef(X, Y1)[0, 1]
-0.22360679775
# add tiny amount to fourth element
Y2 = [2., 2., 2., 2.+tiny]
np.corrcoef(X, Y2)[0, 1]
0.67082039325
这对统计学家来说可能是显而易见的,但考虑到问题的性质,这似乎是一个相关的警告。
关于Python numpy.corrcoef() RuntimeWarning : invalid value encountered in true_divide c/= stddev[:, 无],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45897003/
我需要知道与一组数字相比,一个数字是否超出均值的 1 个标准差,等等。 最佳答案 虽然平方和算法在大多数情况下运行良好,但如果您处理非常大的数字,它可能会造成很大的麻烦。你基本上可能会以负方差结束..
我正在尝试优化以下查询: SELECT idnum AS ID, (SELECT stddev(close) from hist.eurusd1 where idnum betw
我们写了一个监控系统。这个监视器是由代理组成的。每个代理在不同的服务器上运行,并监控特定的服务器资源(RAM、CPU、SQL Server 状态、复制状态、可用磁盘空间、Internet 访问、特定业
我试图用下一个方法计算标准差: private static double? StdDev(IReadOnlyCollection items) { if(items == null) {
#include #include #include #include #define MAX 100 void calc(float**, int, float*, float*); int mai
我有一系列从教程站点读取的数据。我设法在该数据中绘制了 TV 列的分布,但是我还想在第二个 x 轴上用 StdDev 刻度覆盖一条正态分布曲线(这样我就可以比较这两条曲线)。我正在努力弄清楚如何去做.
import scipy timeseries = [53.0, 28.0, 20.0, 113.0, 68.0, 18.0, 9.0, 72.0, 37.0, 29.0, 16.0, 70.0, 4
我正在尝试使用 Laravel 获取数据子集上的 AVG() 和 STDDEV_SAMP()。 所以我尝试过 //Data from which I want to calculate the AVG
我目前正在致力于将一些 python 代码迁移到 scala。我使用 Breeze lib 作为 numpy 的替代品。 一切看起来都很好,但我在标准差实现的输出中遇到了不同的行为: Python:
我正在使用逆累积分布函数 (CDF) 作为数值积分算法的一部分进行拒绝抽样。 我发现了两种可能的实现方式: 在 C 和 Java 中(以及其他语言,但不是 C#,所以我需要翻译): http://ho
示例:计算点击率 (CTR) CAST(SUM(num_clicks) as DOUBLE) / CAST(SUM(num_impression) as DOUBLE) as CTR 如何计算点击率的
我有一张 table | id | user | bottle | count | | 1 | foo | beer | 2 | | 2 | bar | beer |
我正在使用 Python 2.7 和 scikit-learn 进行一些机器学习。我正在使用网格搜索来确定我的数据集和随机森林分类器的最佳超参数。我使用留一法交叉验证和 ROC 曲线下的面积作为评估每
我是 SVM 的新手,我正在尝试使用 Python 接口(interface)来 libsvm对包含均值和标准差的样本进行分类。但是,我得到了荒谬的结果。 此任务是否不适合 SVM,或者我使用 lib
我的 Postgres查询计算统计aggregate来自一堆传感器读数: SELECT to_char(ipstimestamp, 'YYYYMMDDHH24') As row_name, to_ch
由于 statsd 计算每个刷新间隔(默认 10 秒)的统计信息,因此 Graphite 在查看较长时间窗口时简单地对这些进行平均似乎是不正确的。例如,statsd 在 6 个刷新间隔内发送第 90
我在计算标准偏差 (stddev) 时得到 NaN。这是一个非常简单的用例,如下所述: val df = Seq(("1",19603176695L),("2", 26438904194L),("3
为了进行 C++/Rcpp 编程,我尝试实现一个(示例)标准差函数: #include #include #include #include // [[Rcpp::export]] doubl
似乎 numpy 中的 corrcoef 在常量列表传递给 corrcoef() 时抛出一个 RuntimeWarning函数,例如下面的代码抛出警告: import numpy as np X =
我在设置深度模型时收到此警告消息。 警告消息 WARNING:tensorflow:The default stddev value of initializer will change from "
我是一名优秀的程序员,十分优秀!