gpt4 book ai didi

python - 断言错误 : negative sum of square deviations

转载 作者:太空宇宙 更新时间:2023-11-04 10:10:18 25 4
gpt4 key购买 nike

作为一个更大项目的一部分,我正在编写一个函数,它接受一个 dict 的 dict 的 dict 并返回一个 dict,其中每个“外部”键链接到该子字典的均值和标准偏差的元组(即(mean(dict[key1]), stdev(dict[key1])) ).我正在处理一个大型数据集(源文件是一个 2.8 GB 的 csv 文件),并且在计算其中一个子字典的标准差时出现断言错误。

虽然我会(现在正在)追踪导致下面错误的子字典,但我很好奇一般情况下会导致它,所以如果它发生在我的数据集中,我可以尽量避免它。

我收到的错误信息是:

AssertionError:偏差平方和为负数:-3734262324235.697754

来自代码:

import statistics as stat

try: #Check for single value error
std = stat.stdev(val)
except stat.StatisticsError:
std = 0

最佳答案

statiscs.py 中的代码是纯 Python - 在处理内部“平方和” 统计信息时,您似乎是 Fraction 类中奇怪的溢出错误的受害者。 _ss 函数。

我认为你现在能做的最好的事情就是在 statistics.py 文件本身中用一个“if”和对 pdb.set_trace 以交互方式查找导致错误的数据(代码中有注释,这部分会出现舍入错误)。它计算一个应该为零的分数 - 但对于舍入误差,并对该分数进行平方。但是在平方时,已经很大的分母本身被平方 - 这可能会触发 Python 的分数内部的错误,并在它应该接近于零时返回一个非常大的值。

这样的“if”子句可以让你(1)绕过错误条件并运行你的代码到最后,当发现错误时将值强制为零; (2) 记下导致错误的值,并将其作为错误报告给 Python 语言本身。

关于python - 断言错误 : negative sum of square deviations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38744648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com