본문 바로가기
programming/AI

머신러닝 백분위수 구하기 백분율도 알아야 이해가 되더라.

by 개코 - 개발과 코딩 2021. 8. 6.

어쩌다 백분위까지 공부하다보니 머신러닝이 통계에 가장 가깝다는 것을 느끼고 있다. 백분위는 나열된 전체 표본 수에서 비율로써 나온 수가 어떤 것인지 파악하는 것이다. 개념적으로 난해하다. 이쯤되니 통계와 확률을 잘해야 머신러닝의 수학적개념을 익히는 것에 빠를 것이란 생각이다.

머신러닝 백분위수와 백분율
머신러닝 백분위수와 백분율

 

백분위수 백분율

백분위의 뜻은 전체 나열된 값들 중 백분율에 해당하는 수가 어떤 것인지 찾는 것이다.

개념만 알도록 하자.

백분율은 전체 나열된 수나 표본을 100이라고 했을 때 비율에 100을 곱한 %의 값이다.

뭔 소린지 알다가도 모르겠다. ㅋ

우선 백분율부터 알고 넘어가는 것이 편하다.

백분율은 %이다.

100 중에 20은 몇 %인가? 라고 했을 때 20%라는 것을 알 수 있다. 이것이 백분율이다.

백분위수는 전체 표본 100에서 20%에 해당하는 값이 어떤 것인지 찾는 것이다.

 

전체 표본이 100개 있다고 했을 때 특정수의 비율이 백분율이며,

전체 표본에서 백분율에 해당하는 값이 백분위수이다.

 

백분위수 구하기

당연하겠지만, 이번에도 파이썬을 활용한다.

백분위수를 구하기 위해 NumPy 라이브러리를 사용하고 percentile() 함수를 사용한다.

  • 파이썬 백분위수 구하기
    NumPy.percentile() 함수 사용

자동차들의 속도를 예로 평균과 백분율, 백분위를 구해보자.

특정 구간을 통과한 자동차들의 속도를 측정한다.

제한속도는 100 이라 가정한다.

import numpy

vSpeed = [65, 51, 43, 48, 50, 41, 70, 110, 150, 39, 80, 82, 32, 82, 78, 76, 125, 136, 127, 61, 131]

vMean = numpy.mean(vSpeed)

vCount = 0
vPercent = 0
for lpVal in vSpeed:
    if lpVal <= 100:
        vCount += 1

vPercent = (vCount / len(vSpeed)) * 100

vPercentile = numpy.percentile(vSpeed, 71)

print("통과한 평균속도 - ", vMean, type(vMean))
print("100이하 자동차수  - ", vCount, type(vCount))
print("100이하 백분율  - ", vPercent, type(vPercent))
print("100이하 백분위수  - ", vPercentile, type(vPercentile))

위의 예시를 바탕으로 한 샘플이다

특정구간을 100km이하로 통과한 자동차수와 자동차수의 비율인 백분율을 구하고, 여기서 구해진 백분율로 백분위수를 구해본 것이다.

 

위의 가정대로 했을 때

백분위수는 통과한 자동차의 약71%가 통과했을 때 차량의 속도는 약87km이하라는 것을 알 수 있다.

(참고한 예가 어쩐지 부정확하단 느낌이 드는 건 뭘까?)

반응형

댓글