Python'da eşit frekans gruplaması


İstatistikte gruplama , sayısal değerlerin gruplara yerleştirilmesi işlemidir.

Kümelemenin en yaygın biçimi, bir veri kümesini eşit genişlikte k gruba böldüğümüz eşit genişlikte kümeleme olarak bilinir.

Daha az kullanılan bir kümeleme biçimi, eşit frekanslı kümeleme olarak bilinir; burada bir veri kümesini, tümü eşit sayıda frekansa sahip k gruba böleriz.

Bu eğitimde python’da eşit frekans kümelemesinin nasıl gerçekleştirileceği açıklanmaktadır.

Python’da Eşit Frekans Gruplaması

100 değer içeren bir veri kümemiz olduğunu varsayalım:

 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])

Eşit genişlik gruplaması:

Bu değerleri görüntülemek için bir histogram oluşturursak, Python varsayılan olarak eşit genişlikte gruplamayı kullanacaktır:

 #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.]))

Her grubun yaklaşık 0,4487’lik eşit genişliği vardır, ancak her grup eşit miktarda gözlem içermez. Örneğin:

  • İlk bölme -2,3015387 ile -1,8528279 arasında uzanır ve 3 gözlem içerir.
  • İkinci bölme -1,8528279’dan -1,40411588’e kadar uzanır ve 1 gözlem içerir.
  • Üçüncü bölme -1,40411588’den -0,95540447’ye kadar uzanır ve 6 gözlem içerir.

Ve benzeri.

Eşit frekans gruplaması:

Eşit sayıda gözlem içeren paketler oluşturmak için aşağıdaki işlevi kullanabiliriz:

 #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'da Eşit Frekans Gruplaması Örneği

Her grup eşit genişlikte değildir ancak her grup eşit miktarda gözlem içerir . Örneğin:

  • İlk bölme -2,3015387 ile -0,93576943 arasında uzanır ve 10 gözlem içerir.
  • İkinci bölme -0,93576943’ten -0,67124613’e kadar uzanır ve 10 gözlem içerir.
  • Üçüncü bölme -0,67124613’ten -0,37528495’e kadar uzanır ve 10 gözlem içerir.

Ve benzeri.

Histogramdan her bölmenin açıkça aynı genişlikte olmadığını ancak her bölmenin aynı sayıda gözlem içerdiğini görebiliriz; bu da her bölmenin yüksekliğinin eşit olduğu gerçeğiyle doğrulanır.

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir