Skip to content

MechanicKim/zsocre-update-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

zsocre-update-go

How to update score when new score list are added

표준점수(zscore) 업데이트에 대하여

표준점수를 공식은 다음과 같습니다.

(원수치 - 모집단 평균) / 모집단 표준편차

새로운 수치가 추가되면 기존의 평균과 표준편차가 바뀌게 됩니다.
이 때 평균과 표준편차를 구하기 위해 모든 수치를 누적하여 유지할 수도 있지만
계속 누적된 양이 나중에 무시못할 수준으로 간다면 문제가 될 겁니다.

때문에 수치를 누적하지 않고 최소한의 값만 유지하면서
새로운 수치에 따라 업데이트하기 위한 방법을 생각하게 되었습니다.

유지해야하는 값

수치의 개수(L), 평균(M), 수치 각각의 제곱의 합(S) 을 유지하면 됩니다.
이럴 때 평균은 다음과 같이 업데이트 할 수 있습니다.

새 평균 = ((M * L) + [새로 추가되는 수치들의 합]) / (L + [새로 추가되는 수치들의 개수])

분산은 다음과 같이 업데이트 할 수 있습니다.(새 평균을 M'이라 하겠습니다.)

새 분산 = ((S + [새로 추가되는 수치 각각의 제곱의 합]) / (L + [새로 추가되는 수치들의 개수])) - M'^2

새 분산의 제곱근이 바로 표준편차가 되겠습니다.
이제 새로 업데이트된 평균과 표준편차로 표준점수를 구할 수 있게 됩니다.

테스트 코드

  • 테스트 코드는 Go lang으로 작성되었습니다.
  • 이 개념을 테스트할 코드를 main.go 파일에 작성해 두었습니다.

About

How to update score when new score list are added

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages