Ejemplo de aprendizaje

Veamos un ejemplo concreto: Supongamos que deseamos prever el riesgo de accidente del tomador de un seguro de coche, y que disponemos de información sobre anteriores tomadores, información que incluye datos personales (edad, sexo, antigüedad del carné de conducir...), datos sobre el coche (marca, potencia...) y si la persona en cuestión tuvo o no tuvo accidentes. La hipótesis sobre la que trabajamos es que existe algún tipo de relación entre todos estos datos y el hecho de tener o no un accidente, de forma que, mediante el análisis de los tomadores antiguos, sea posible determinar un patrón que sea aplicable a los nuevos tomadores del seguro y que prediga si van a tener o no un accidente.

Ejemplo de aprendizaje

Este objetivo -la predicción de que un conductor vaya a tener o no un accidente- resultaría extremadamente difícil -si no imposible- para una persona. Podríamos encontrar sencillas reglas del tipo "los conductores de más de x años tienen menos accidentes que los de menos de x años" o "los coches de marca x suelen sufrir más accidentes que otros" pero esas reglas no nos permitirían calcular de forma suficientemente precisa la probabilidad de accidente de un conductor concreto.

Utilizando un algoritmo de Machine Learning, le pasaríamos a éste los datos de los que disponemos sobre los antiguos tomadores, uno por uno. Tal vez, después de pasarle los datos de la primera persona el algoritmo devolvería (si fuese preguntado) una regla del tipo "las mujeres de nombre Ana, 42 años, de Ávila, 16 años de carné, conduciendo un Audi A3 de 125 CV con 75.000 Km, tienen accidentes y las demás personas no". El algoritmo habría llegado a esta conclusión tras comprobar que Ana, a quien pertenece la información que le hemos pasado, tuvo un accidente. Lógicamente la regla a la que habría llegado el algoritmo podría calificarse de "pésima" y, para comprobarlo, bastaría con someter a dicha regla a otro conjunto de tomadores antiguos diferente del que estamos usando para alimentar al algoritmo para ver lo bien o mal que la regla predice lo que les ocurrió realmente.

Pero solo le hemos pasado al algoritmo la información de una persona...

Tras pasar al algoritmo la información de 10 personas tal vez la regla que nos daría sería del tipo "los conductores de entre 25 y 45 años, con independencia del sexo, si tienen más de 10 años de carné y el coche no tiene más de 30.000 km no tienen accidentes, el resto de los conductores sí". Esta regla seguiría siendo muy mala (y, de nuevo, podríamos probarla en el conjunto de tomadores antiguos mencionado) pero muy probablemente sería un poco "menos mala" que la original.

Si seguimos dando información al algoritmo nos encontraremos con que, después de varios miles de fichas de conductores, la regla generada empieza a describir razonablemente bien el perfil de todos ellos.

En un caso como éste -caso real pues cualquier aseguradora utiliza hoy día algoritmos de Machine Learning para predecir el riesgo de accidente de un conductor-, podríamos comprobar que se cumplen los requisitos que Norbert Wiener especificó que eran necesarios para poder afirmar que existe un aprendizaje: nuestro algoritmo está transformando un mensaje de entrada (información sobre tomadores de un seguro) en uno de salida (probabilidad de accidente), hay un criterio de validez (lo bien o mal que la regla generada predice el comportamiento de tomadores antiguos) y dicho criterio mejora con el tiempo (a medida que vamos dando al algoritmo información sobre más tomadores del seguro).

En realidad, este proceso que se ha descrito se corresponde solo con cierto tipo de algoritmos (los denominados supervisados) pero, de una forma u otra, sería posible aplicar estos principios a algoritmos de otros tipos.