sklearn.preprocessing.KBinsDiscretizer

class sklearn.preprocessing.KBinsDiscretizer

Agrupa datos continuos en intervalos.

Leer más en el Manual de Usuario.

Nuevo en la versión 0.20.

Parámetros
n_binsint o array-like de forma (n_features,), default=5

El número de intervalos a producir. Genera un ValueError si n_bins < 2.

encode{“onehot”, “onehot-dense”, “ordinal”}, default=”onehot”

Método utilizado para codificar el resultado transformado.

onehot

Codifica el resultado transformado con una codificación one-hot y devuelve una matriz dispersa. Las características ignoradas se apilan siempre a la derecha.

onehot-dense

Codifica el resultado transformado con una codificación one-hot y devuelve un arreglo denso. Las características ignoradas se apilan siempre a la derecha.

ordinal

Devuelve el identificador de intervalo (bin) codificado como un valor entero.

strategy{“uniform”, “quantile”, “kmeans”}, default=”quantile”

Estrategia utilizada para definir la anchura de los intervalos.

uniforme

Todos los intervalos de cada característica tienen una anchura idéntica.

cuantil

Todos los intervalos de cada característica tienen el mismo número de puntos.

kmeans

Los valores de cada intervalo tienen el mismo centro más cercano de un conglomerado k-medias 1D.

dtype{np.float32, np.float64}, default=None

El tipo de datos deseado para la salida. Si es None, el dtype de salida es consistente con el dtype de entrada. Sólo se admiten np.float32 y np.float64.

Nuevo en la versión 0.24.

Atributos
n_bins_ndarray de forma (n_features,), dtype=np.int_

Número de intervalos por característica. Los intervalos cuya anchura es demasiado pequeña (es decir, <= 1e-8) se eliminan con una advertencia.

bin_edges_ndarray de ndarray de forma (n_features,)

Las aristas de cada intervalo. Contienen arreglos de formas variables (n_bins_, ) Las características ignoradas tendrán arreglos vacíos.

Ver también

Binarizer

Clase utilizada para categorizar valores como 0 o 1 en función de un parámetro threshold.

Notas

En las aristas del intervalo para la característica i, el primer y el último valor son utilizados sólo para inverse_transform. Durante la transformación, las aristas del intervalo se extienden a:

np.concatenate([-np.inf, bin_edges_[i][1:-1], np.inf])

Puedes combinar KBinsDiscretizer con ColumnTransformer si sólo quieres preprocesar parte de las características.

KBinsDiscretizer podría producir características constantes (por ejemplo, cuando encode = 'onehot' y ciertos intervalos no contienen ningún dato). Estas características se pueden eliminar con algoritmos de selección de características (por ejemplo, VarianceThreshold).

Ejemplos

>>> X = [[-2, 1, -4,   -1],
...      [-1, 2, -3, -0.5],
...      [ 0, 3, -2,  0.5],
...      [ 1, 4, -1,    2]]
>>> est = KBinsDiscretizer(n_bins=3, encode='ordinal', strategy='uniform')
>>> est.fit(X)
KBinsDiscretizer(...)
>>> Xt = est.transform(X)
>>> Xt  
array([[ 0., 0., 0., 0.],
       [ 1., 1., 1., 0.],
       [ 2., 2., 2., 1.],
       [ 2., 2., 2., 2.]])

A veces puede ser útil convertir los datos de nuevo en el espacio de características original. La función inverse_transform convierte los datos categorizados (binned) en el espacio de características original. Cada valor será igual a la media de las dos aristas de los intervalos.

>>> est.bin_edges_[0]
array([-2., -1.,  0.,  1.])
>>> est.inverse_transform(Xt)
array([[-1.5,  1.5, -3.5, -0.5],
       [-0.5,  2.5, -2.5, -0.5],
       [ 0.5,  3.5, -1.5,  0.5],
       [ 0.5,  3.5, -1.5,  1.5]])

Métodos

fit

Ajusta el estimador.

fit_transform

Ajusta a los datos y luego los transforma.

get_params

Obtiene los parámetros para este estimador.

inverse_transform

Transforma los datos discretizados de vuelta al espacio de características original.

set_params

Establece los parámetros de este estimador.

transform

Discretiza los datos.

fit()

Ajusta el estimador.

Parámetros
Xarray-like de forma (n_samples, n_features)

Datos a discretizar.

yNone

Ignorado. Este parámetro existe sólo para compatibilidad con Pipeline.

Devuelve
self
fit_transform()

Ajusta a los datos y luego los transforma.

Ajusta el transformador a X y y con parámetros opcionales fit_params y devuelve una versión transformada de X.

Parámetros
Xarray-like de forma (n_samples, n_features)

Muestras de entrada.

yarray-like de forma (n_samples,) o (n_samples, n_outputs), default=None

Valores objetivo (None para transformaciones no supervisadas).

**fit_paramsdict

Parámetros de ajuste adicionales.

Devuelve
X_newarreglo ndarray de forma (n_samples, n_features_new)

Arreglo transformado.

get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbool, default=True

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Nombres de parámetros mapeados a sus valores.

inverse_transform()

Transforma los datos discretizados de vuelta al espacio de características original.

Ten en cuenta que esta función no regenera los datos originales debido al redondeo de la discretización.

Parámetros
Xtarray-like de forma (n_samples, n_features)

Datos transformados en el espacio categorizado (binned).

Devuelve
Xinvndarray, dtype={np.float32, np.float64}

Datos en el espacio de características original.

set_params()

Establece los parámetros de este estimador.

El método funciona tanto en estimadores simples como en objetos anidados (como Pipeline). Estos últimos tienen parámetros de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia del estimador

Instancia del estimador.

transform()

Discretiza los datos.

Parámetros
Xarray-like de forma (n_samples, n_features)

Datos a discretizar.

Devuelve
Xt{ndarray, sparse matrix}, dtype={np.float32, np.float64}

Datos en el espacio categorizado (binned). Será una matriz dispersa si self.encode='onehot' y ndarray en caso contrario.

Ejemplos utilizando sklearn.preprocessing.KBinsDiscretizer