Capítulo 1. Principios básicos de aprendizaje automático
“The first obvious fact about human learning is that it’s horribly slow. It takes decades for human
beings to learn anything. It took all of us six years just to get up to starting speed for school, and
then twenty more years to become cognitive scientists or computer scientists. That’s the
minimum, some of us took even longer than that. So we are terribly slow learners...”
Herbert Simon (1983)
En la actualidad, el aprendizaje automático es una pieza fundamental para distintas áreas del
conocimiento e industrias a través del mundo. A diferencia de cualquier otra época pasada, hoy
en día, una gran parte de nuestra vida diaria está acompañada por algoritmos de inteligencia
artificial. Por ejemplo, gran cantidad de algoritmos realizan cálculos específicos para obtener una
recomendación de producto en una tienda en línea, conocer una película que nos agradará o
elegir la ruta más adecuada en un sistema de GPS. Inclusive, al mostrar interés en un producto
la publicidad de alguna tienda en línea (e.j. Amazon, Aliexpress) el sitio web constantemente
enviará publicidad y recomendaciones relacionadas a ese artículo específico.
Al terminar de ver una película, el sistema de recomendación de Netflix nos sugiere un título
nuevo en función de un análisis del patrón de gustos de películas vistas con anterioridad. Al
seleccionar una ruta preferida, el sistema GPS de Google recomendará la elección previa y
posiblemente recomendará a otros conductores la ruta sugerida si es más eficiente respecto a
análisis del tráfico en ese momento. Para los teléfonos celulares y buscadores web, un algoritmo
enfocado en semántica de texto completa nuestras búsquedas, nos sugiere nuevas palabras en
función de nuestro uso cotidiano del lenguaje. La forma en que el usuario y sociedad realiza
búsquedas alimenta y actualiza sistemas de esta naturaleza cada momento.
Así como los ejemplos mencionados un sinfín de aplicaciones nos rodean diariamente, el mundo
digital basa gran parte de su desempeño en la capacidad de adaptar algoritmos específicos a
necesidades específicas. Algunos de los ejemplos que subyacen a estas necesidades se
engloban en las siguientes acciones.
●
●
●
Segmentar: Agrupar o dividir en secciones homogéneas.
Identificar: Determinación características o factores.
Predecir: Pronosticar, realizar una conjetura con antelación.
En general, la mayoría de los casos de uso de inteligencia artificial más difundidos se enfocan
en las aplicaciones anteriores. Un centro de estudios médicos estará muy interesado en
identificar los factores que incrementan el riesgo de padecer infarto cardiaco (Easton, 2014). Un
analista de bolsa estará interesado en predecir los precios de las emisoras más rentables en el
mercado (Dunis et al, 2016). Tomadores de decisiones de política monetaria podrían segmentar
los sectores más propensos a sufrir un alza de inflación dado un shock de precios, entre un sin
fin de casos de uso.
Mediante herramientas de aprendizaje automático es posible enseñar a una computadora a
realizar tareas sencillas de segmentación, identificación y predicción. Así, la segmentación
de una campaña para clientes específicos dados ciertas necesidades, gustos y preferencias es
posible utilizando algunos principios de inteligencia artificial.1
Para todo problema de inteligencia artificial se tiene información de entrada e información de
salida. Información que alimenta el sistema de inteligencia e información sale del sistema como
resultado del aprendizaje. La explicación simple de esta causa es la capacidad de aprender que
tiene un sistema.
Ejemplificando, supongamos que tenemos una que no tiene conocimiento de los peligros al
recorrer una acera cualquiera. Lamentablemente el individuo no conoce nada sobre el mundo
real y su única función actual es caminar en línea recta. Para simplificar, supongamos también,
que esta acera es infinita y esta persona caminará un tiempo indefinido por ella. Para fortuna de
este individuo la acera es perfecta y no hay algún tipo de impedimento que le cause dificultades.
Lamentablemente, un día en una sección de la acera aparece un agujero. El individuo al no
conocer el riesgo, decide continuar con sus funciones de caminar en línea recta y cae en el
agujero. Al caer en este hipotético y quizás peligroso agujero, el sujeto en cuestión tendrá un
estímulo negativo (quizás dolor al caer). A continuación, el sujeto identificará de manera
automática un agujero con estas experiencias negativas y en la mayoría de los casos evitará
caer en cualquier agujero futuro. El sujeto, así como cualquier sistema artificial ante un estímulo
externo aprende.
Aprendizaje supervisado y no supervisado
Para la terminología tradicional de machine learning o aprendizaje automático, el aprendizaje
supervisado es un concepto que se utiliza para designar un tipo de información. Se hace llamar
aprendizaje supervisado a toda aquella información que está clasificada ex ante con el objetivo
de que un algoritmo o técnica estadística interfiera para predecir su comportamiento. Al adquirir
información clasificada, por ejemplo, el programa podría diferenciar entre la forma convencional
en que se representa una manzana y un edificio. Generalmente representado en vectores
podemos tener un vector de objetos que tienen características que corresponde a esta
clasificación, bien en su forma más simple un caso binario2, género femenino o género masculino,
si o no, empleado o no empleado, manzana o no manzana.
En el caso de aprendizaje supervisado, las variables que contienen información que ayuda a
desarrollar un modelo estadístico con esta información ex ante.
1
Dentro de la economía este tipo de análisis todavía no está generalizado y los casos son bastante
exiguos. Un caso de segmentación de campaña, procesamiento de lenguaje natural y teoría económica
se muestra en Olguín (2016).
2
Para un econometrista experimentado, observará que dummies variables siguen un principio
semejante. Para una introducción simple, el texto Basic Econometrics de Gujarati (2012) ilustra
claramente las variables dicotómicas y sus usos en la modelación econométrica.
Naturalmente, el aprendizaje no-supervisado la información que permite clasificar no estará
disponible, es decir, no se conocerá si un individuo pertenece a una categoría determinada u
otra. Por ejemplo, al sistema de inteligencia no se le especificará ex ante casos típicos de una
manzana y un edificio, es decir, se mostrarán las imágenes sin especificar si pertenecen al grupo
de manzanas o al grupo de edificios. Sin embargo este sistema por si mismo deberá identificarlos
y clasificarlos como distintos ya que no comparten grandes similitudes, aunque quizás identifique
como objetos distintos manzanas de diferentes colores.
Un ejemplo típico de aprendizaje no supervisado que gran parte de los científicos sociales
reconocerán es el caso de medición de pobreza en función de características de la vivienda y la
familia que la habita. En el caso más simple que se puede mostrar el siguiente. Analistas
determinarán que bajo ciertos criterios de ingreso, acceso a educación y a servicios cierta
vivienda estará en estado de pobreza o no. Los analistas encargados de determinar si pertenece
a cierto grupo no conocerán ex ante si un hogar pertenece a una vivienda en situación de pobreza
y se enfrentan a un problema de aprendizaje no supervisado. Esto quiere decir que desconocen
de qué niveles de ingreso o acceso a la educación se considerará pobreza y cuáles no.
Usualmente, se considera que los problemas de aprendizaje no supervisado son más complejos
y avanzados de desarrollar. Afortunadamente, en casos más simples los algoritmos de
aprendizaje no supervisado no son complejos y requieren un entendimiento básico de estadística
convencional.
Principalmente, este texto se enfoca en mostrar aplicaciones a aprendizaje supervisado y
versiones sencillas de aprendizaje no supervisado al ser un texto introductorio. 3 Para esta
primera sección del texto se revisan los conceptos básicos de una regresión lineal desde el punto
de vista práctico. Se analiza el primer caso de regresión lineal de la historia y se compara con
álgebra simple para conocer las similitudes. Segundo, se utiliza el modelo de regresión lineal
para hacer un caso de segmentación de aprendizaje supervisado.
Introducción a modelización y clasificación lineal
En general, los métodos de regresión lineal han estado en el núcleo de las herramientas de gran
parte de los científicos sociales durante mucho tiempo. A pesar de ser técnicas consideradas
como simples, demuestran un desempeño bastante aceptable para una gran cantidad de
aplicaciones e inclusive un desempeño mucho mejor en casos donde la información es escasa
o con problemas de sesgo estadístico.
Esta sección puede considerarse como los fundamentos básicos que se esconden detrás de
sistemas de inteligencia artificial para una gran cantidad de casos. Para todo aquel que desee
utilizar herramientas avanzadas, es importante conocer los cimientos que se trabajarán en las
3
El popular libro de Lantz (2015) contienen interesantes ejemplos para desarrollar. Casos más
específicos para temas de minería de textos pueden ser consultados en Feinerer (2017).
secciones siguientes, algunos algoritmos de agrupamiento o clustering y técnicas de aprendizaje
como redes neuronales tienen fundamentos de regresión lineal simple.
En esta sección, revisaremos estos fundamentos básicos que componen una regresión lineal
partiendo de la práctica; aplicando un modelo de regresión lineal. Posteriormente, se genera un
modelo estadístico univariado y se genera una demostración empírica-gráfica de que el modelo
de regresión lineal simple univariado representa la misma función estimada que una ecuación de
la recta convencional (y = mx + b).
Análisis de regresión lineal
Sin duda el análisis de regresión lineal es la técnica más conocida en el campo de estadística y
algunas otras disciplinas. En su versión más simple, esta consiste en observar la relación entre
dos variables o vectores bajo la función Y = f(X) donde Y y X son vectores. En un caso
ligeramente más complejo X_i representa un conjunto de vectores X que van de 1 hasta i.
Para todo modelo de regresión lineal existe una variable dependiente que llamaremos “Y” y
consiste en la variable que queremos predecir. Por otro lado las variables independientes las
llamaremos “X_i” y consisten en las variables que se utilizan para explicar “Y”. A continuación se
muestra la forma que toma la ecuación que explica la relación entre X y Y.
\hat{Y} = b_0 \ + b_1 X_1 \ + b_1 X_2 \ ... b_i X_i
Dónde \hat{Y} es la estimación de Y que se efectúa en el modelo, b_1 … b_1 son los estimadores
y X_i las variables que se utilizan para explicar Y. B_0 es llamado intercepto.
Aunque a simple vista el modelo de regresión lineal pueda parecer un poco complicado de
asimilar a primera vista, conocer un poco de su historia sirve para comprender cómo surgió la
idea y entender el caso concreto donde se utilizó por primera vez.
En realidad la regresión lineal es un método de estimación más antiguo de lo que aparenta ya
que tiene su origen en el siglo XIX. Francis Galton, primo del naturalista Charles Darwin, es
conocido por sus aportes como sociólogo, estadístico, biólogo y reconocido científico en varias
ramas.
A finales del siglo XIX, Galton utiliza un método de regresión lineal para explicar una hipótesis
simple que formó a partir de la observación. Tras estudiar una clase específico de planta llamado
Lathyrus odoratus, se percató que las semillas tendían a tener un tamaño más pequeño si las
plantas padre eran altas y un tamaño más alto si las plantas padre eran más bajas. A este
fenómeno de convergencia de tamaños lo llamó regresión a la mediocridad, un método que da
origen regresión lineal contemporánea.
No conforme únicamente los resultados del estudio con plantas, Galton (1889) extiende el estudio
al analizar una muestra con personas y se enfoca en medir estaturas de padres e hijos. Al
analizar un caso con humanos, realiza una muestra de 930 niños y 205 padres. El resultado más
relevante del análisis original de 1889 se presenta el la figura X. En la publicación original Galton
especifica que para aquellos padres que son cerca de una pulgada más altos que la media de la
población, sus hijos tienden a sólo ser 2/3 de pulgada más altos que la población.
Estos resultados refuerzan la hipótesis de “la ley de regresión a la mediocridad” que se
argumentó en el primer estudio. Galton observa que en general los hijos de los padres de estatura
más alta que la media son altos, pero menos altos que los padres y el mismo fenómeno con los
hijos de los padres de estatura baja; más altos respecto a la media de los padres de estatura
más baja.
Figura X. Regresión a la mediocridad de Galton (1889)
Replicando el caso de Galton (1889) y suponiendo que se quiera predecir el tamaño que un niño
tendrá teniendo información de la estatura de los padres, el método de regresión lineal de
resultaría útil para tal propósito. La información original del artículo original se encuentra
disponible en algunos paquetes de R. A continuación al ejecutar el código siguiente se obtiene
la regresión lineal que estima el tamaño que tendrá alguno de los hijos.
## Instalación de paquetes
install.packages("psych")
## Cargando librería
library(psych)
## Carga de datos
data("galton")
#describe(galton)
## Gráfica
plot(galton)
## Estimación del modelo lineal
## Se espefica child = f(parent)
fit <- lm(data = galton, child ~ parent)
## Se grafica la regresión
abline(fit, col = "red", lwd = 3)
Figura X. Regresión lineal de estatura para padres e hijos en pulgadas. Información de Galton
(1889).
Una vez realizada la regresión lineal resulta importante mencionar los fundamentos que
originaron el modelo. La ecuación que se estableció al principio como “modelo de regresión
lineal” es útil para explicar las estimaciones que el código acaba de realizar con la información
de Galton. Para ello partimos de la ecuación X, al comparar la ecuación lineal, se observa que la
regresión lineal en esencia es la estimación de una ecuación de primer grado o ecuación lineal.
Una recta que se representa con la ecuación anterior se explica por b que es la ordenada al
orígen, m explica la pendiente y x es un valor cualquiera. En el caso del modelo de Galton
estimado, la ecuación de la regresión lineal es muy similar.
Donde para el modelo de Galton b_0 es llamado intercepto y es el símil de la ordenada al origen
de la ecuación de la recta, b_1 es el coeficiente de X o pendiente m en la ecuación lineal. El
siguiente código recrea la ecuación lineal tomando la pendiente (estimador) y ordenada al origen
(intercepto) del modelo de regresión que se estimó en fragmento de código anterior. La figura X
muestra gráficamente que la regresión lineal y la recreación utilizando el método de ecuación
lineal son iguales.
## Estimación manual del modelo
## Los valores de los coeficientes
fit$coefficients
## Se reconstruyen los valores con la fórmula
## de ecuación lineal de la recta
## y = b + mx
recta <-as.numeric(lapply(galton$parent,
function(x) fit$coefficients[1] + fit$coefficients[2] * x))
## Se extran los valores del modelo de regresión
original <- fitted.values(fit)
## Graficamos los valores que se predicen y los valores estimados por el modelo
par(mfrow=c(1,2))
plot(galton, main = "Modelo de regresión lineal")
lines(galton$parent, original, col = "red", lwd = 3)
plot(galton, main = "Ecuación de la recta")
lines(galton$parent,recta, col = "blue", lwd = 3)
Figura X. Comprobación gráfica de modelo de regresión lineal (izquierda) y estimación por
medio de ecuación lineal recta (y = b + mx). Se observa que ambos modelos son iguales para
los datos de Galton (1889).
Clasificación con métodos de regresión lineal
Ahora se revisa el un caso de clasificación con regresión lineal. Generalmente, para los usos de
cotidianos de aprendizaje automático se considera la clasificación lineal como una forma sencilla
pero poco eficiente para clasificar datos. Un ejemplo claro de ello se puede ver en la figura X.
Figura X. Dos métodos de clasificación de Hastie (2009). Del lado izquierdo se muestra la
clasificación con funciones lineales y en el lado derecho clasificación con una funciones
cuadráticas. Se muestra que el modelo de regresión lineal es menos flexible.
La figura muestra que el método de regresión lineal es menos eficiente para clasificar parte de la
información que está cercana entre las clases uno (amarillo) y tres (verde). En cambio, el método
con funciones cuadráticas abarca mejor la sección compartida entre la clase uno y tres.
Sin embargo, el método de regresión lineal para clasificación es simple pero suficiente para
algunos casos. Por ejemplo, la gráfica siguiente un ejercicio simulado muestra un caso de
regresión lineal para clasificación, donde las observaciones rojas significan una clase y las
categoría negra una clase distinta. De acuerdo con el análisis de clasificación, el método simple
de regresión lineal identifica cerca del 70% de la información adecuadamente.
Figura X. Modelo de clasificación de regresión lineal de datos aleatorios. Se muestran los
pasos en los que se clasifica la información. Las categorías se expresan por colores rojo y
negro. Las observaciones clasificadas erróneamente en verde y azul.
Una forma simple de conocer el desempeño de clasificación de un algoritmo, en este caso, el
algoritmo de regresión lineal, es contar el número de objetos con una clasificación incorrecta. En
el caso de la figura X son todos aquellos puntos negros que se encuentran sobre la línea de
regresión y los puntos rojos que están debajo de la línea de regresión. Se suma el número de
observaciones con clasificación errónea y se divide entre el número total de observaciones para
conocer un tipo de misclassification rate, no es el único método ni el más utilizado, más adelante
se revisarán métodos más completos para estimar el poder de clasificación y predicción de un
modelo. Para el caso del ejercicio simulado la gráfica muestra los objetos mal clasificados en
color verde y azul.
Entrenamiento de algoritmo de clasificación lineal
En caso de aplicar un modelo de aprendizaje automático, es relevante buscar relaciones en la
información. Quizás el método más popular para encontrar estas relaciones es adquirir
información suficiente para validar alguna clase de hipótesis planteada y seccionar esta
información en fase de entrenamiento y fase de pruebas. Fase de entrenamiento se refiere a la
sección de la información que será utilizada para encontrar patrones en la información. Fase de
pruebas corresponde a otra sección de la información con la que se verificará que el modelo
haya aprendido lo suficiente, es mandatorio que la fase de pruebas y de entrenamiento sean
mutuamente excluyentes4.
A continuación se ejemplifica la forma en que se puede dividir la información. La fase de
entrenamiento generalmente utiliza una sección mayor de la información, es decir más datos
para poder ajustar el modelo. En cambio, la fase de pruebas utiliza una porción más pequeña
que rectifica que el modelo sea válido.
Información total
Fase de entrenamiento (70%)
Fase de pruebas (30%)
Sección de la información donde
se ajusta el modelo
Sección de la información
donde se evalúa el
desempeño del modelo
La metodología descrita es simple pero eficiente cuando se utiliza de forma correcta.
Concretamente, consiste en tomar una parte de la información que está en un conjunto de datos
y utilizarla para crear el modelo . Otra parte de la información servirá para validar el modelo y
conocer su poder predictivo. En este caso, se utilizan los principios que un algoritmo de
inteligencia artificial tradicional utilizaría en una versión simplificada.
Esta metodología de muestreo y otras más están especificadas a detalle en el texto Bias,
Variance and Model Complexity Hastie (2009). En el texto de Hastie, se especifican las causas
de porqué un buen muestreo puede evitar sesgo estadístico. Especialmente, se hace énfasis en
reducción del error generalizado o error en la sección de pruebas. Para este caso introductorio,
utilizaremos una muestra simple para información de 58 países y probaremos el modelo de
regresión estimado.
A continuación se utiliza el método de regresión lineal para clasificar un caso con información
real. El objetivo de este modelo simple es segmentar aquellos países pertenecientes a la OCDE
y aquellos países que no pertenecen a este grupo. Los alcances de este ejercicio son muy
4
Mutuamente excluyentes en probabilidad se refiere a que un evento no pueden suceder
simultáneamente. Para el caso de la sección de pruebas, esto quiere quiere decir que nunca puede existir
una sección de pruebas que comparta información con la sección de entrenamiento.
amplios, aunque en este apartado se enfoca en desarrollar un modelo que ayude a clasificar
información nueva en función del modelo entrenado.
En general, este simple modelo de nos dará la capacidad de crear un primer modelo estadístico
a nuestro primer sistema de inteligencia artificial a clasificar información en función a una fase de
entrenamiento. En esta fase de entrenamiento se establece el modelo de regresión lineal
determina si un país pertenece a la OCDE en función de dos variable simples. Se toman como
variables dos focos importantes para el desarrollo según las métricas del banco mundial. En la
figura X se observa el modelo de clasificación para la muestra de entrenamiento en 58 países.
### clasificador de países OCDE
## Entrenamiento
## Lectura del archivo de entrenamiento
df <- read.csv(file = "Cap 1. Principios de aprendizaje automatizado/data_countries.csv")
## Se observan las variables
names(df)
## Cambiando los nombres de todas las variables
## se utiliza una lista de nombres más sencilla de interpretar
names(df) <- c("Nombre_pais",
"Codigo_pais",
"Tasa_mortalidad",
"GNI_PC_PPP",
"OCDE_member")
## Gráfica de dispersión de los datos seleccionados, sin distinción por clase
par(mfrow=c(1,2)) ## Se especifica que se quieren dos gráficas en un mismo renglón
## Gráfica 1 de 2 Mortalidad infantil e ingres nacional bruto.
plot(x = df$Tasa_mortalidad, ## Variable X
y = df$GNI_PC_PPP,
## Variable Y
xlab = "Tasa de Mortalidad infantil por cada mil nacimientos (2015)",
ylab = "Ingreso Nacional Bruto precios corrientes PPP (2015) ")
## Estimación del modelo de regresión lineal.
## se especifica que el ingreso nacional bruto = f(Tasa de mortalidad)
## la variable Y del modelo es ingreso nacional bruto
## la variable X del modelo es Tasa de mortalidad
a <- lm(data = df, GNI_PC_PPP ~ Tasa_mortalidad)
## Se pintan los casos que están mal clasificados de color verde
df$OCDE_member[df$Tasa_mortalidad > 75] <- 3
## Gráfica 2 de 2 Mortalidad infantil e ingres nacional bruto, colores por clasificación de país
plot(df$Tasa_mortalidad,
df$GNI_PC_PPP, col = df$OCDE,
xlab = "Tasa de Mortalidad infantil por cada mil nacimientos (2015)",
ylab = "Ingreso Nacional Bruto precios corrientes PPP (2015) ")
abline(a, col = "blue", lwd = 3)
Figura X. Estimación de modelo de clasificación de países que pertenecen a la OCDE en el set
de entrenamiento. Del lado izquierdo se muestra la información para una muestra de 58 países.
En el lado izquierdo se observa el modelo de regresión lineal y la información según su
categoría. En rojo se observan los países que pertenecen a la OCDE, en negro aquellos que no
pertenecen y en verde son los errores de clasificación.
Se segmentan los países con el método de regresión lineal y se obtiene el resultado del modelo
clasificatorio. En la figura X del lado izquierdo se observan los datos de Ingreso Nacional Bruto y
la tasa de mortalidad por país de la muestra de entrenamiento. Del lado derecho se pinta la
información según la clase a la que pertenece. Los países de color rojo corresponden a naciones
pertenecientes a la OCDE y de color negro aquellas que no. Según el modelo de clasificación de
regresión lineal estimado los países de color verde están clasificados de forma incorrecta (error
en la fase de pruebas). Para el algoritmo planteado, representan errores de clasificación que
demuestran el desempeño del modelo de regresión lineal.
Prueba del algoritmo de clasificación lineal
El modelo anterior clasifica adecuadamente el 84% de las observaciones en la fase de
entrenamiento y el 16% error se concentra en asignar países que no pertenecen a la OCDE. Los
errores de clasificación se muestran en color verde y los aciertos en color rojo.
Una vez que el modelo muestra cierta capacidad de clasificación, se procede a hacer las pruebas
con el resto de la información. La sección de los datos que se utiliza para la validación de los
algoritmos se llama fase de prueba y siempre es posterior a la fase de entrenamiento.
Adicionalmente a estas dos fases, en muchos casos es recomendable utilizar una fase intermedia
que se llama fase de validación.
Para este caso, el set de prueba se compone del resto de países. Se toma el mismo modelo de
regresión lineal que se utilizó para el set de entrenamiento y se observa el desempeño
clasificatorio con la información completa. En la figura X se muestran el resultado del modelo de
regresión para cerca de 200 países.
clasificador_OCDE_todos.R
## Clasificador para todos los países
#install.packages("dplyr") ## librería básica de manejo de datos
library(dplyr) ## se carga la librería
## Juntando bases de datos para flag OCDE
A <- read.csv(file = "Cap 1. Principios de aprendizaje automatizado/data/all_contries.csv",
stringsAsFactors = F)
B <- read.csv(file = "Cap 1. Principios de aprendizaje automatizado/data/ocde_members.csv",
stringsAsFactors = F) %>% select(-Date)
df2 <- left_join(A, B)
## Se pintan los casos que no son miembros de la OCDE con color 1 (negro)
df2$OCDE_member[is.na(df2$OCDE_member)] <- 1
## Cambiando los nombres de todas las variables
## se utiliza una lista de nombres más sencilla de interpretar
names(df2) <-c("Nombre_pais",
"Codigo_pais",
"GNI_PC_PPP",
"Tasa_mortalidad",
"OCDE_member")
df2$OCDE_member[df2$Nombre_pais == "World"] <- 3
par(mfrow=c(1,1))
plot(df2$Tasa_mortalidad,
df2$GNI_PC_PPP,
col = df2$OCDE_member,
xlab = "Tasa de Mortalidad infantil por cada mil nacimientos (2015)",
ylab = "Ingreso Nacional Bruto precios corrientes PPP (2015) ")
abline(a, col = "blue", lwd = 3)
Figura X. Estimación de modelo de regresión lineal. Clasificación de países que pertenecen a la
OCDE en el set de prueba. En color rojo se observan países que pertenecen a la OCDE y en
negro países que no pertenecen a esta organización.
Es importante destacar que se utiliza el mismo modelo de regresión que se presenta en la figura
X - 1, no se vuelve a crear un modelo aunque la información haya cambiado. Para la mayoría de
los casos, el set de prueba tiene un desempeño menor que el set de entrenamiento. Para el caso
de los países de pertenecientes a la OCDE el desempeño de 77% de los casos clasificados
correctamente es menor, el porcentaje de error se considera aceptable.
El modelo de regresión lineal estimado resulta útil para clasificar la información. A pesar de la
simpleza del modelo, es bastante más eficiente que una elección aleatoria. Comparar el
desempeño del modelo con una selección aleatoria es una forma popular de identificar si el
modelo contribuyó a clasificar mejor o no. Una elección aleatoria se define como la probabilidad
simple de elegir un objeto x o y, según sea el caso.5 Mediante una elección aleatoria se puede
5
Por ejemplo, si se tiene una caja con 6 pelotas color rojo y 4 pelotas color blanco la probabilidad simple
de elegir una pelota roja es del 60% y un 40% de elegir una pelota de color blanco. Un modelo de
clasificación adecuado debe tener un desempeño mayor que una probabilidad simple. Suponiendo que
de conocer si el modelo es útil o es menos eficiente que una elección al azar. Para este caso en
concreto, si se utiliza el método aleatorio la probabilidad de elegir un país de la OCDE de toda la
muestra es de cerca del 16% y de un 37% si se utiliza el algoritmo de regresión lineal propuesto,
por lo tanto, el método de clasificación de regresión lineal ayuda a hacer una elección 2.3 veces
más precisa.
Para una estimación más avanzada del desempeño del algoritmo, generalmente se utiliza el
bayes error rate o error bayesiano que estima la probabilidad de error para algoritmos de de
clasificación. En las secciones por venir se revisan distintos métodos para comparar el
performance de un algoritmo.
Finalmente, el algoritmo de clasificación está terminado. Con un buen desempeño para los datos
anteriores, el algoritmo se puede utilizar para comenzar a clasificar información. Podría funcionar
como una clase (muy simple pero eficiente) de inteligencia artificial. Por ejemplo, si conocemos
el ingreso bruto de una región específica y los índices de mortalidad infantil, podremos utilizar el
algoritmo para analizar si el desarrollo económico de la región podría pertenecer a los estándares
de un país perteneciente a la OCDE. El la figura siguiente se presenta un caso similar.
x <- c(5, 7, 9)
y <- c(17000, 70000,32000)
p<- data.frame(x, y)
## Se pintan los puntos al gráfico anterior
points(p, col = "cyan", lwd = 10)
a$coefficients <- a$coefficients * -2
abline(a, col = "blue", lwd = 3 )
a$coefficients <- abs(a$coefficients) + 100
abline(a, col = "blue", lwd = 3 )
sabemos que las pelotas rojas se concentran más del lado izquierdo, un criterio ejemplo, sería siempre
elegir las pelotas que están del lado izquierdo, de esta manera la probabilidad de elegir una pelota roja es
del 80% por ejemplo.
En la figura anterior se tienen 3 regiones nuevas que son clasificadas por el algoritmo lineal, de
acuerdo el modelo de clasificación se obtiene que dos de ellos con alta probabilidad tienen las
condiciones que priman en un país que pertenece a la OCDE y aquel que se encuentra debajo
de la línea de regresión no lo es.
Supongamos para medición de desigualdad en una nación latinoamericana se comparan los
estándares de vida de una región con acceso restringido a la salud y regiones de alto ingreso
económico que son aledañas. Posiblemente las regiones de alto ingreso económico tendrán
estándares de vida similares a países pertenecientes a la OCDE y las aledañas no tendrán estos
estándares de vida. Rápidamente, este modelo nos ayudará a determinar los límites en función
a información de mortalidad infantil e ingreso nacional; posibles medidas de política económica
u objetivos de política social.
¡Felicidades, si has seguido todos los pasos de esta sección exitosamente has creado un primer
algoritmo simplificado de inteligencia artificial! Tu nuevo algoritmo te permitirá tomar decisiones
de política económica y social.
Con el fin de reforzar las habilidades de modelización presentadas en esta sección introductoria,
más adelante se revisarán a detalle algunos algoritmos más avanzados de clasificación y
predicción. Igualmente, se explicarán las metodologías estándar de muestreo así como pruebas
de validación de los modelos de aprendizaje automático. En el capítulo siguiente se muestra el
algoritmo de agrupamiento o cluster por LDA (Linear Discriminant Analysis por sus siglas en
inglés) y una aplicación relacionada a optimización de centros de distribución con una perspectiva
geográfica.
Resumen
Este capítulo se enfoca en desarrollar los conceptos clave de regresión lineal aplicados a un
sistema de aprendizaje automático simplificado. Se revisan los conceptos del modelo de
regresión lineal, así mismo, se explica que el modelo de regresión lineal tiene un origen más
antiguo de lo que comúnmente se puede creer y se explican los planteamientos que desarrolló
Francis Galton en el siglo XIX para llegar a las conclusiones de que existe un modelo de regresión
lineal.
Adicionalmente, se demuestra la similitud que tiene la regresión lineal con la ecuación simple de
la recta (y =mx * b), con el fin de comprender las funciones de los estimadores y coeficientes en
un modelo de regresión lineal. Mediante una explicación práctica en R, se utiliza un modelo de
regresión lineal propio para recrear las investigaciones de Galton (1889).
Posteriormente se muestra el proceso gráfico de clasificación lineal con información aleatoria y
más adelante, se revisa el uso del modelo de regresión lineal para problemas de clasificación
con información real. Se especifica que la clasificación es un tema fundamental en inteligencia
artificial y machine learning o aprendizaje automático. Por medio de los principios básicos de
regresión lineal, se ejecutan todos los pasos básicos para crear un sistema de inteligencia
artificial simple aplicado a un problema económico.
Se utilizan las metodologías tradicionales de machine learning de muestreo, entrenamiento y
prueba para ejemplificar el caso de clasificación de la OCDE y se muestra el funcionamiento. El
modelo pretende aprender clasificar países que pertenecen a la OCDE (reconocidos por ser
países desarrollados y algunos en vías de desarrollo) y aquellos que no pertenecen a la OCDE.
Se utilizan datos del banco mundial tomando métricas clave para el desarrollo y se entrena el
modelo de regresión lineal con un poder de clasificación adecuado.