En cualquier caso, en el ejemplo anterior muy probablemente estemos sobreentrenando el modelo -concepto del que se hablará más adelante-. Además, querríamos probarlo con datos no conocidos por el modelo (es decir, con datos que no hayan sido usados para entrenarlo). Finalmente, aunque el Perceptrón originariamente era un clasificador binario, la implementación de Scikit-Learn soporta la clasificación multiclase aplicando una estrategia denominada one vs. rest (OvR) -también conocida como one vs. all- en la que se entrena un clasificador distinto para cada clase y, en cada clasificador se intenta separar la clase siendo considerada de todas las demás. Por último, se combinan los resultados obtenidos de todos los clasificadores.
Antes de nada, como habíamos filtrado el dataset Iris para quedarnos solo con dos especies -y ahora nos interesan las tres-, volvamos a cargarlo:
iris["label"] = iris.species.astype("category").cat.codes
Y extraigamos las estructuras X e y quedándonos, una vez más, solo con las dos primeras características predictivas con el fin de poder mostrar el resultado en el plano:
y = iris["label"]