Python의 동일 빈도 구간화


통계에서 그룹화는 숫자 값을 그룹 으로 묶는 과정입니다.

클러스터링의 가장 일반적인 형태는 동일 너비 클러스터링 으로 알려져 있으며, 여기서는 데이터 세트를 동일한 너비의 k 개 그룹으로 나눕니다.

덜 일반적으로 사용되는 클러스터링 형태는 동일 주파수 클러스터링 으로 알려져 있으며, 여기서는 데이터 세트를 모두 동일한 수의 주파수를 갖는 k개의 그룹으로 나눕니다.

이 튜토리얼에서는 Python에서 동일 빈도 클러스터링을 수행하는 방법을 설명합니다.

Python의 동일 빈도 구간화

100개의 값을 포함하는 데이터 세트가 있다고 가정합니다.

 import numpy as np
import matplotlib.pyplot as plt

#create data
np.random.seed(1)
data = np.random.randn(100)

#view first 5 values
data[:5]

array([ 1.62434536, -0.61175641, -0.52817175, -1.07296862, 0.86540763])

동일한 너비 그룹화:

이러한 값을 표시하기 위해 히스토그램을 생성하면 Python은 기본적으로 동일한 너비 그룹화를 사용합니다.

 #create histogram with equal-width bins
n, bins, patches = plt.hist(data, edgecolor='black')
plt.show()

#display bin boundaries and frequency per bin 
bins, n

(array([-2.3015387 , -1.85282729, -1.40411588, -0.95540447, -0.50669306,
        -0.05798165, 0.39072977, 0.83944118, 1.28815259, 1.736864,
         2.18557541]),
 array([ 3., 1., 6., 17., 19., 20., 14., 12., 5., 3.]))

각 그룹의 너비는 약 0.4487로 동일하지만 각 그룹에 동일한 양의 관측치가 포함되어 있지는 않습니다. 예를 들어:

  • 첫 번째 Bin은 -2.3015387에서 -1.8528279까지 확장되며 3개의 관측치를 포함합니다.
  • 두 번째 Bin은 -1.8528279에서 -1.40411588까지 확장되며 1개의 관측치를 포함합니다.
  • 세 번째 Bin은 -1.40411588에서 -0.95540447까지 확장되며 6개의 관측값을 포함합니다.

등등.

동일 빈도 그룹화:

동일한 수의 관측값을 포함하는 버킷을 생성하려면 다음 함수를 사용할 수 있습니다.

 #define function to calculate equal-frequency bins 
def equalObs(x, nbin):
    nlen = len(x)
    return np.interp(np.linspace(0, nlen, nbin + 1),
                     np.arange(nlen),
                     np.sort(x))

#create histogram with equal-frequency bins 
n, bins, patches = plt.hist(data, equalObs(data, 10), edgecolor='black')
plt.show()

#display bin boundaries and frequency per bin 
bins, n

(array([-2.3015387 , -0.93576943, -0.67124613, -0.37528495, -0.20889423,
         0.07734007, 0.2344157, 0.51292982, 0.86540763, 1.19891788,
         2.18557541]),
 array([10., 10., 10., 10., 10., 10., 10., 10., 10., 10.])) 

Python의 동일 빈도 그룹화의 예

각 그룹의 너비는 동일하지 않지만 각 그룹에는 동일한 양의 관측치가 포함됩니다 . 예를 들어:

  • 첫 번째 Bin은 -2.3015387에서 -0.93576943까지 확장되며 10개의 관측값을 포함합니다.
  • 두 번째 Bin은 -0.93576943에서 -0.67124613까지 확장되며 10개의 관측값을 포함합니다.
  • 세 번째 Bin은 -0.67124613에서 -0.37528495까지 확장되며 10개의 관측값을 포함합니다.

등등.

히스토그램을 보면 각 bin의 너비가 확실히 동일하지는 않지만 각 bin에는 동일한 수의 관측값이 포함되어 있으며 이는 각 bin의 높이가 동일하다는 사실로 확인됩니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다