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:
- Binning de igual frecuencia: los bins tienen la misma frecuencia.
- 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