El Perceptrón de Scikit-learn

La librería Scikit-learn incluye una implementación del Perceptrón. Probémosla sobre el dataset Iris con el que estamos trabajando. Comencemos importando la clase Perceptron:

from sklearn.linear_model import Perceptron

Como el Perceptrón es -en principio- un clasificador binario (apenas puede trabajar con dos clases), vamos a filtrar el dataset para quedarnos solo con las muestras de flores de las especies setosa y versicolor (que, como hemos visto son linealmente separables):

iris = iris[iris.species.isin(["setosa", "versicolor"])]
iris.shape
(100, 6)

El dataset ha quedado reducido a 100 muestras. Ahora -para poder visualizar los resultados en el plano- vamos a seleccionar apenas las dos características predictivas que hemos inspeccionado en el apartado anterior: el ancho y el largo del sépalo y vamos a llevar esta información a la variable X. Y la etiqueta (campo label) la llevamos a la variable y:

X = iris[["sepal_length", "sepal_width"]]
y = iris["label"]

Ahora, instanciemos la clase Perceptron con sus parámetros por defecto (deberíamos llamarlos hiperparámetros, pero, desde el punto de vista de desarrollo software, se trata de parámetros de la función Perceptron):

model = Perceptron(random_state = 0)

y entrenemos el modelo. Una de las ventajas de trabajar con Scikit-learn es que la interfaz que ofrecen sus clases y funciones son todas extremadamente coherentes entre sí. Así, la mayor parte de las clases que representan algoritmos incluyen un método .fit() que nos permite entrenarlos. Este método -trabajando con algoritmos supervisados- requiere que le pasemos dos argumentos: el primero conteniendo las características predictivas (X), y el segundo conteniendo las etiquetas (y):

model.fit(X.values, y.values)

El Perceptrón de Scikit-learn