Creemos ahora una red neuronal usando la clase MLPClassifier de Scikit-Learn con los parámetros por defecto. Los más importantes de estos parámetros son:
- Una capa oculta con 100 neuronas
- Función de activación "ReLu"
- Optimizador "Adam" (optimizador estocástico)
- Tasa de aprendizaje de 0.001
- Batch size igual a 200 (salvo que haya menos muestras, en cuyo caso el batch será igual al número de ellas)
- 200 epochs
Comenzamos cargando la clase MLPClassifier:
from sklearn.neural_network import MLPClassifier
Ahora instanciamos el algoritmo y lo validamos vía validación cruzada:
model = MLPClassifier()
%%time
cross_val_score(model, X, y, cv = 5).mean()
Wall time: 10min 56s
0.9608666666666666
Comprobamos que el resultado (la exactitud) es de un orden de magnitud semejante al que conseguimos usando K-vecinos, y con tiempos de entrenamiento mucho menores (recordemos que en ninguno de los dos casos se ha optimizado el modelo).