현재 Python으로 작성된 일부 알고리즘을 다시 구현하는 중입니다. 한 단계는 값 목록의 표준 편차를 계산하는 것입니다. 원래 구현에서는 Apache Math 1.1 라이브러리의 DescriptiveStatistics.getStandardDeviation
을 사용합니다. 나는 numpy 1.5의 표준 편차를 사용한다. 문제는 동일한 입력에 대해 서로 다른 결과를 제공한다는 것입니다.Wolfram과 numpy에서 동일한 입력에 대해 다른 표준 편차가 있습니다.
numpy : 0.10932134388775223
Apache Math 1.1 : 0.12620366805397404
Wolfram Alpha : 0.12620366805397404
내가 제 3의 의견을 얻을 수 Wolfram Alpha으로 확인 : 나는 다음과 같은 결과를 얻을 수
[0.113967640255, 0.223095775796, 0.283134228235, 0.416793887842]
: 내가 가지고있는 샘플이 있습니다. 나는 이러한 차이가 정밀도만으로 설명 될 수 있다고 생각하지 않는다. 왜 이런 일이 일어나는 지 아무도 모른다. 내가 그것에 대해 할 수있는 일은 무엇인가?
편집는 약 바로 사용하지 또한,
>>> from math import sqrt
>>> v = [0.113967640255, 0.223095775796, 0.283134228235, 0.416793887842]
>>> mu = sum(v)/4
>>> sqrt(sum([(x - mu)**2 for x in v])/4)
0.10932134388775223
:
>>> from numpy import std
>>> std([0.113967640255, 0.223095775796, 0.283134228235, 0.416793887842])
0.10932134388775223
글쎄, 아파치와 볼프람이 맞다고 말할 수 있겠 니? 그리고 Numpy가 틀렸다는 것은 거의 없습니다. 그래서 당신은 아마 그것을 올바르게 사용하지 않을 것입니다. 우편 번호? –