Binning en minería de datos

El agrupamiento de datos es un método de preprocesamiento de datos que se utiliza para minimizar los efectos de pequeños errores de observación. Los valores de datos originales se dividen en pequeños intervalos conocidos como contenedores y luego se reemplazan por un valor general calculado para ese contenedor. Esto tiene un efecto de suavizado en los datos de entrada y también puede reducir las posibilidades de sobreajuste en el caso de conjuntos de datos pequeños
. Hay 2 métodos para dividir los datos en contenedores:  

  1. Binning de igual frecuencia: los bins tienen la misma frecuencia.
  2. Binning de ancho igual: los contenedores tienen el mismo ancho con un rango de cada contenedor definido como [min + w], [min + 2w] …. [min + nw] donde w = (max – min) / (nº de contenedores).

Igual frecuencia: 

Input:[5, 10, 11, 13, 15, 35, 50, 55, 72, 92, 204, 215] 

Output:
[5, 10, 11, 13]
[15, 35, 50, 55]
[72, 92, 204, 215]

Anchura igual:  

Input: [5, 10, 11, 13, 15, 35, 50, 55, 72, 92, 204, 215]

Output:
[5, 10, 11, 13, 15, 35, 50, 55, 72]
[92]
[204, 215]

Código: Implementación de la Técnica Binning: 

Python

# equal frequency
def equifreq(arr1, m):    
    a = len(arr1)
    n = int(a / m)
    for i in range(0, m):
        arr = []
        for j in range(i * n, (i + 1) * n):
            if j >= a:
                break
            arr = arr + [arr1[j]]
        print(arr)
  
# equal width
def equiwidth(arr1, m):
    a = len(arr1)
    w = int((max(arr1) - min(arr1)) / m)
    min1 = min(arr1)
    arr = []
    for i in range(0, m + 1):
        arr = arr + [min1 + w * i]
    arri=[]
      
    for i in range(0, m):
        temp = []
        for j in arr1:
            if j >= arr[i] and j <= arr[i+1]:
                temp += [j]
        arri += [temp]
    print(arri) 
  
# data to be binned
data = [5, 10, 11, 13, 15, 35, 50, 55, 72, 92, 204, 215]
  
# no of bins
m = 3 
  
print("equal frequency binning")
equifreq(data, m)
  
print("\n\nequal width binning")
equiwidth(data, 3)

Producción : 

equal frequency binning
[5, 10, 11, 13]
[15, 35, 50, 55]
[72, 92, 204, 215]


equal width binning
[[5, 10, 11, 13, 15, 35, 50, 55, 72], [92], [204, 215]] 

Publicación traducida automáticamente

Artículo escrito por SidhanthaPoddar2 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *