Otro de los métodos que podríamos implementar es el que devuelve la exactitud del modelo tras aplicarlo a un dataset de pruebas. El resultado lo hemos obtenido hasta ahora entrenando el modelo, realizando la predicción para dicho dataset y recurriendo a una función externa como accuracy_score para obtenerlo, pero no resultaría difícil ofrecer esta funcionalidad como método. De hecho, el código es prácticamente el mismo que hemos escrito para devolver la exactitud tras cada epoch:
def score(self, X, y):
prediction = self.predict(X)
return sum(int(p == y) for (p, y) in zip(prediction, y)) / len(X)
Es decir, obtenemos la predicción aplicando el modelo al dataframe X, y comparamos cada uno de los valores obtenidos con la variable objetivo, devolviendo el porcentaje de aciertos.