Aprendizaje estadístico: la configuración y el objeto estimador en scikit-learn

Conjuntos de datos

Scikit-learn se ocupa de aprender información de uno o más conjuntos de datos que se representan como arreglos 2D. Se pueden entender como una lista de observaciones multidimensionales. Decimos que el primer eje de estos arreglos es el eje de las muestras, mientras que el segundo es el eje de las características.

Un ejemplo sencillo incluido en scikit-learn: conjunto de datos del iris

>>> from sklearn import datasets
>>> iris = datasets.load_iris()
>>> data = iris.data
>>> data.shape
(150, 4)

Se compone de 150 observaciones de lirios, cada una descrita por 4 características: la longitud y la anchura de sus sépalos y pétalos, tal como se detalla en iris.DESCR.

Cuando los datos no están inicialmente en la forma (n_samples, n_features)`, necesitan ser preprocesados para poder ser utilizados por scikit-learn.

Un ejemplo de remodelación de datos sería el conjunto de datos de dígitos

El conjunto de datos de dígitos está formado por 1797 imágenes de 8x8 de dígitos escritos a mano

>>> digits = datasets.load_digits()
>>> digits.images.shape
(1797, 8, 8)
>>> import matplotlib.pyplot as plt 
>>> plt.imshow(digits.images[-1],
...            cmap=plt.cm.gray_r) 
<matplotlib.image.AxesImage object at ...>
../../_images/sphx_glr_plot_digits_last_image_001.png

Para utilizar este conjunto de datos con scikit-learn, transformamos cada imagen de 8x8 en un vector de características de longitud 64

>>> data = digits.images.reshape(
...     (digits.images.shape[0], -1)
... )

Objetos estimadores

Ajuste de datos: la principal API implementada por scikit-learn es la del estimador. Un estimador es cualquier objeto que aprende de los datos; puede ser un algoritmo de clasificación, regresión o conglomerado o un transformador que extrae/filtra características útiles de los datos brutos.

Todos los objetos estimadores exponen un método fit que toma un conjunto de datos (normalmente un arreglo 2-d):

>>> estimator.fit(data)

Parámetros del estimador: Todos los parámetros de un estimador pueden establecerse al instanciarlo o modificando el atributo correspondiente:

>>> estimator = Estimator(param1=1, param2=2)
>>> estimator.param1
1

Parámetros estimados: Cuando los datos se ajustan con un estimador, los parámetros se estiman a partir de los datos disponibles. Todos los parámetros estimados son atributos del objeto estimador que terminan con un guión bajo:

>>> estimator.estimated_param_