Interview/ML

ML Interview - IQR

김 정출 2024. 11. 10. 15:12

IQR(Interquartile Range)

IQR(Interquartile Range, 사분위 범위)는 데이터의 중간 50%가 퍼져 있는 범위를 나타내는 지표로, 머신러닝에서 이상치(outlier)를 탐지하거나 데이터의 분포를 분석할 때 유용하게 사용됩니다. IQR은 데이터셋의 1사분위수(Q1)와 3사분위수(Q3) 간의 차이로 계산됩니다.

 

IQR 계산

IQR을 계산하는 과정은 다음과 같습니다:

  1. 데이터를 오름차순으로 정렬합니다.
  2. 1사분위수(Q1)와 3사분위수(Q3)를 찾기:
    • Q1은 데이터의 하위 25%에 해당하는 값입니다.
    • Q3은 데이터의 상위 75%에 해당하는 값입니다.
  3. IQR 계산: IQR = Q3 - Q1

 

 

IQR을 이용한 이상치 탐지

IQR은 주로 이상치를 탐지할 때 유용하게 사용됩니다. IQR 기반의 이상치 탐지 규칙은 다음과 같습니다:

  • 이상치(outlier): 데이터가 아래 범위를 벗어나면 이상치로 간주됩니다.

 

예제

데이터셋: [1, 3, 5, 7, 8, 9, 11, 13, 15, 18]

  1. 데이터를 정렬합니다. 이미 정렬된 상태이므로 별도의 정렬이 필요하지 않습니다.
  2. Q1(1사분위수)와 Q3(3사분위수)를 찾기:
    • 전체 데이터는 10개의 값으로 구성됩니다.
    • Q1은 하위 25% 위치의 값입니다. 10개의 값이므로 10 × 0.25 = 2.5번째 값입니다. 중간 값을 계산하기 위해 2번째 값(3)과 3번째 값(5)의 평균을 취합니다. Q1= (3+5) / 2 = 4
    • Q3은 상위 75% 위치의 값입니다. 10개의 값이므로 10×0.75=7.5번째 값입니다. 7번째 값(11)과 8번째 값(13)의 평균을 취합니다. Q3=(11+13) / 2 =12
  3. IQR 계산: IQR=Q3−Q1=12−4=8
  4. 이상치 범위 계산:
    • 이상치 하한: Q1−1.5×IQR = 4−1.5×8 = 4−12 = −8
    • 이상치 상한: Q3+1.5×IQR = 12+1.5×8 = 12+12 = 24
  5. 이상치 판단:
    • 이 데이터셋에서 -8보다 작거나 24보다 큰 값은 없습니다. 따라서 이상치는 없습니다.

이 예제를 통해 데이터의 중간 50%가 4에서 12 사이에 분포하며, 이상치는 없는 것을 알 수 있습니다.

이 기준을 넘어서는 데이터 포인트는 일반적으로 평균 및 표준 편차를 이용한 이상치 검출보다 더욱 견고한 방식으로 이상치로 판단할 수 있습니다.