Logo Studenta

LaInteligenciaArtificialconEjemplos

¡Este material tiene más páginas!

Vista previa del material en texto

DESCRIPCIÓN DEL LIBRO 
 
 
Inteligencia artificial con ejemplos es un libro dirigido a estudiantes y profesionales 
que han escuchado hablar de inteligencia artificial y tienen conocimientos básicos al 
respecto. A lo largo de este libro se explican temáticas como modelos de predicción, 
modelos de clasificación, máquinas de soporte vectorial, redes neuronales, entre otras. 
 
Cada temática viene acompañada de ejemplos de complejidad baja y media, los cuales 
han sido desarrollados usando R, AWS, Azure y TensorFlow. Cada ejemplo es explicado 
paso a paso para que el lector pueda seguir las instrucciones y ejecutarlas en su 
computador. 
 
En una edición futura, los ejemplos estarán también disponibles en Python. 
 
 
 
 
 
 
 
2 La inteligencia artificial con ejemplos. 
ÍNDICE 
 
 
1. Introducción a la inteligencia artificial 
 
1 Introducción 
2 Los límites de la inteligencia artificial 
3 ¿Cómo aprenden las máquinas? 
4 La inteligencia artificial en la práctica 
5 Tipos de algoritmos de inteligencia artificial 
6 Identificar el algoritmo para los datos utilizados 
7 Aprendizaje de conceptos con la ayuda del lenguaje R 
 
 
2. Introducción al lenguaje R 
 
1 Introducción 
2 Las estructuras de datos de R 
3 Explorar y comprender los datos 
4 El estudio de la distribución de datos 
 
3. Un primer modelo de predicción mediante regresión 
 
1 Introducción 
2 El Modelo de predicción del Precio del Vino 
3 El Modelo de predicción MoneyBall 
4 Modelos de regresión 
5 Análisis de supervivencia 
 
 
4. Modelos de clasificación 
 
1 Introducción 
2 Modelos de clasificación 
3 Gestión de datos faltantes y datos sustituidos 
 
 
5. Máquinas de vectores de soporte y redes neuronales artificiales 
 
1 Introducción 
2 Máquinas de vectores de soporte 
 3 
3 Redes neuronales artificiales 
4 Un ejemplo de aprendizaje profundo 
 
6. Aprendizaje por Ensemble (Conjuntos de clasificadores) 
 
1 Introducción 
2 El modelo de apilamiento 
3 El modelo de empaquetamiento (Bagging) 
4 El modelo impulso Boosting 
 
 
7. Análisis de datos masivos con R, H2o y Spark. 
 
1 Introducción 
2 Instalar el entorno de trabajo de R y H2o 
3 Ejemplo de aprendizaje profundo con H2o 
 
8. Análisis de texto con Amazon Web Services (AWS) Machine Learning 
 
1 Introducción 
2 Instalar el entorno de trabajo AWS ML 
3 Automatizar un pipeline en tiempo real 
4 Un ejemplo de análisis de texto 
 
9. Azure Machine Learning Studio 
 
1 Introducción 
2 Creación de una cuenta de Azure 
3 Cinco etapas para crear un modelo de predicción con Azure 
4 Integrar Azure ML Studio a R 
5 Reutilizar ejemplos de proyectos en Azure ML 
 
10. Google Cloud Machine Learning - TensorFlow 
 
1 Introducción 
2 Cómo instalar Python y TensorFlow 
3. Primeros pasos con TensorFlow 
4. La mecánica de TensorFlow: Los gráficos y las sesiones 
5. Primer ejemplo: Regresión lineal usando Jupiter 
6. Segundo ejemplo: Regresión lineal con un estimador 
7. Tercer ejemplo: Red circunvolutiva de neuronas 
8. Referencias útiles sobre Python 
4 La inteligencia artificial con ejemplos. 
 
11. Evaluar el desempeño de un modelo de predicción 
 
1 Introducción 
2 Enfoques de evaluación del rendimiento de un modelo 
3 Evaluar la multicolinealidad 
4 Reducir la dimensión de sus datos 
5 Reducir dimensiones utilizando la técnica PCA 
6 Reducir las dimensiones de datos no lineales de grandes dimensiones 
 
12. La búsqueda y los juegos 
 
1 Introducción 
2 La búsqueda en la práctica, ir de A a B 
3 La importancia de la búsqueda y de los juegos para la IA 
4 Los algoritmos de juego, MiniMax, Alpha-beta y Expectimax 
5 La suerte y las probabilidades 
6 La regla de Bayes 
 
13. Aprendizaje por refuerzo 
 
1 Introducción 
2 Los cuatro elementos de un sistema de aprendizaje 
3 El proceso de decisión de Markov 
4 Un primer ejemplo con un caracol mecánico 
5 Un segundo ejemplo con PacMan 
6 Enseñarle a un robot bípedo a regatear 
 
 
 
 
 5 
1 Introducción a la 
Inteligencia Artificial 
1.1 INTRODUCCIÓN 
 
Desde nuestro nacimiento estamos inundados de datos. Los sensores de nuestro cuerpo (ojos, 
oídos, nariz, lengua y fibras nerviosas) son bombardeados continuamente con datos en bruto que 
nuestros cerebros traducen en imágenes, sonidos, olores, sabores y texturas. Al usar el lenguaje 
podemos compartir estas experiencias con otros. 
 
Desde el advenimiento del lenguaje escrito se han registrado observaciones humanas. Los 
cazadores observaron el movimiento de manadas de animales, los primeros astrónomos 
registraron la alineación de los planetas y las estrellas, y las ciudades registraron los pagos de 
impuestos, los nacimientos y las muertes. Hoy, tales observaciones y muchas más están cada vez 
más automatizadas y sistemáticamente registradas por sensores en las bases de datos 
computarizadas de rápido crecimiento. 
 
El aumento en el uso de sensores electrónicos también ha contribuido a una explosión en el 
volumen y la riqueza de los datos registrados y disponibles. Los sensores modernos son capaces 
de ver, oír, oler, probar y hasta sentir. Estos sensores tratan los datos de una manera muy 
diferente a como lo hace un ser humano. A diferencia de la atención limitada y subjetiva de un ser 
humano, un sensor electrónico nunca toma un descanso y nunca permite que su juicio distorsione 
su percepción. 
 
Con las bases de datos y los sensores se registran muchos aspectos de nuestras vidas. Los 
gobiernos, las empresas y los individuos recopilan y reportan información de todo tipo. Los 
sensores meteorológicos recolectan datos de temperatura y presión, las cámaras de vigilancia 
observan a las personas en las aceras y en los túneles del metro. Las placas de los automóviles 
son leídas automáticamente en las entradas de la ciudad y se monitorean comportamientos 
electrónicos tales como: transacciones, comunicaciones, enlaces entre personas y muchos más. 
 
Este diluvio de datos permite afirmar que hemos entrado en la era del uso masivo de datos. Los 
seres humanos siempre han estado rodeados de una gran cantidad de datos, pero la era actual es 
6 La inteligencia artificial con ejemplos. 
única porque tenemos grabados estos datos, muchos de los cuales pueden ser accedidos 
directamente desde las computadoras. Los conjuntos de datos, cada vez más grandes e 
interesantes, son accesibles y están a nuestro alcance mediante una simple búsqueda en la web. 
Esta riqueza de información nos permite utilizarlos de una manera más sistemática para darles 
un significado, un contexto e incluso realizar predicciones cada vez más complejas de los 
fenómenos que nos rodean. 
 
La taxonomía del campo de IA puede parecer compleja debido a la cantidad de términos utilizados. 
El campo de la IA es parte del campo de la informática. Por lo tanto, es importante comprender 
bien la superposición entre los diferentes dominios de la IA. 
Aprendizaje automático (Machine Learning) puede considerarse como un subdominio de la IA, 
que en sí mismo es un subdominio de la computación. Estas categorías a menudo son un poco 
imprecisas y algunas partes del aprendizaje automático podrían pertenecer al campo de la 
estadística. Por ello, el aprendizaje automático permite soluciones adaptativas de inteligencia 
artificial. Una definición concisa puede ser la siguiente: Sistemas que mejoran su desempeño para 
una tarea específica al utilizar -cada vez más- su experiencia o datos. 
Aprendizaje profundo (Deep Learning) es un subdominio del aprendizaje automático, que a su 
vez es un subdominio de la IA y un subdominio de la computación. Discutiremos el aprendizaje 
profundo con más detalle en el Capítulo 5. Por ahora, simplemente hay que tener en cuenta que 
la "profundidad" del aprendizaje profundo se refiere a la complejidad de un modelo matemático, y 
que el mayor poder de cómputo de las computadoras modernas ha permitido a los investigadores 
aumentar esta complejidada niveles que no solo parecen ser cuantitativamente diferentes, sino 
también cualitativamente. 
La ciencia de datos (Data Science) es un término genérico reciente (un término que abarca varias 
subdisciplinas) que comprende el aprendizaje de máquina y estadísticas, y algunos aspectos de la 
computación; incluyendo algoritmos, almacenamiento de datos y desarrollo de aplicaciones web. 
La ciencia de datos es también una disciplina práctica que requiere una comprensión del campo 
en el que se la aplica. Por ejemplo, en negocios o ciencia: su propósito (¿Cuál es el valor agregado?), 
hipótesis y restricciones básicas. Las soluciones de la ciencia de datos a menudo implican al 
menos una pizca de IA, pero –generalmente- no tanto como se podría esperar. 
 
Robótica significa construir y programar robots para que puedan trabajar en escenarios 
complejos y reales. En cierto modo, la robótica es el último desafío de la IA porque requiere una 
combinación de prácticamente todas las áreas de la IA. Por ejemplo: 
– Visión por computador y reconocimiento de voz para detectar el entorno; 
– Procesamiento de lenguaje natural, recuperación de la información y razonamiento bajo 
incertidumbre para el procesamiento de instrucciones, y la predicción de consecuencias 
derivadas de acciones potenciales; 
– Modelado cognitivo y computación afectiva para interactuar y trabajar con humanos. 
 7 
1.2 LOS LÍMITES DE LA INTELIGENCIA ARTIFICIAL 
 
Alan Turing (1912-1954) fue un matemático y lógico inglés. Se le considera legítimamente el padre 
de las computadoras. Turing estaba fascinado por la inteligencia y el pensamiento, y la posibilidad 
de simularlos con la ayuda de máquinas. La contribución más importante de Turing a la IA es su 
juego de imitación, más tarde conocido como la Prueba de Turing. En esta prueba, un interrogador 
humano interactúa con dos jugadores, A y B, intercambiando mensajes escritos (como un chat). 
Si el interrogador no puede determinar qué jugador, A o B, es una computadora o un ser humano, 
se dice que la computadora pasa la prueba. El argumento es que, si una computadora es 
indistinguible de un humano en una conversación general en lenguaje natural, entonces debe 
haber alcanzado la inteligencia del nivel humano. 
El término Inteligencia Artificial se le atribuye a menudo a John McCarthy (1927-2011), a quien 
también se lo conoce como el padre de la IA; sin embargo, negó haber encontrado el término. No 
obstante, el influyó en su adopción, así como en el nombre de este campo emergente. Este término 
se estableció cuando fue elegido como el tema de un seminario de verano, conocido como la 
Conferencia de Dartmouth, organizado por McCarthy que se llevó a cabo en 1956 en el Dartmouth 
College en New Hampshire. En la propuesta para organizar el seminario, McCarthy continuó con 
el argumento de Turing sobre el cálculo automatizado. La propuesta contiene la siguiente 
afirmación crucial: "El estudio debe partir de la conjetura de que cualquier aspecto del aprendizaje 
o cualquier otra característica de la inteligencia puede, en principio, describirse con tal precisión 
que una máquina pueda simularla". 
Aunque la noción de inteligencia artificial ya existía en 1950, esta era una ciencia más teórica que 
práctica debido al poder de las computadoras de la época. Los avances de IA se popularizaron en 
1980 cuando el programa Moor ganó un juego de Othello en un partido de seis juegos contra el 
campeón del mundo. En 1994, el programa Chinook ganó un campeonato mundial de damas 
chinas; y en 1997, el programa Deep Blue ganó un juego de ajedrez al campeón del mundo. No 
obstante, fue en el 2011 cuando la computadora de IBM llamada Watson ganó el juego Jeopardy 
contra los mejores jugadores de todos los tiempos. Estos apenas son algunos ejemplos porque hay 
demasiados avances para elaborar una lista completa en este libro. 
Aunque la inteligencia artificial es ampliamente utilizada y tiene un enorme potencial, es 
importante entender sus límites. En este momento, la inteligencia artificial no es de ninguna forma 
un sustituto del cerebro humano. Las técnicas utilizadas tienen muy poca libertad para extrapolar 
a partir de parámetros estrictos aprendidos previamente. Además, también existe la ausencia del 
sentido común que poseen los humanos para detectar respuestas aberrantes. En este sentido, 
aún es difícil diseñar y ajustar un algoritmo para que pueda aprender correctamente y luego 
predecir con una tasa de éxito del 90% y más. 
Sin un programa con un algoritmo de inteligencia artificial, una computadora no tiene la 
capacidad de aprender de una experiencia de vida, ni la capacidad de inferir los próximos pasos 
lógicos a seguir. 
8 La inteligencia artificial con ejemplos. 
Consideremos los banners vistos en muchos sitios web. Estos se eligen según los modelos 
aprendidos mediante la extracción de datos del historial de navegación de millones de usuarios de 
Internet. Por ejemplo, si usted visita un sitio web de zapatos, se le ofrecerán anuncios de zapatos, 
cordones y lustradores. Lo que estos modelos no toman en cuenta es que ahora usted desea buscar 
una película para ver el fin de semana. Esto plantea la pregunta: ¿en qué parte del camino estamos 
para la conquista de la comprensión completa de un fenómeno informático y su predicción? 
 
Al leer las noticias, es posible que veas los términos IA "general" y "estrecha". ¿Qué significa esto? 
IA estrecha se refiere a la capacidad de realizar tareas específicas mientras que la IA general (IAG) 
se refiere a la capacidad de realizar cualquier tarea intelectual, similar a la mente humana. Los 
métodos de inteligencia artificial que utilizamos hoy en día son principalmente de IA estrecha. La 
inteligencia general sigue siendo ciencia ficción. De hecho, el ideal de IAG casi ha sido dejado atrás 
por los investigadores debido a la ausencia de progreso en los últimos 50 años, a pesar de todos 
sus esfuerzos. En cambio, la IA estrecha está progresando a pasos agigantados. 
Otra terminología presente en las noticias es el concepto de la IA "fuerte" y "débil". Se reduce a la 
distinción filosófica entre ser inteligente y actuar con inteligencia, como lo ha demostrado Searle. 
La idea de que la inteligencia es igual que el comportamiento inteligente es cuestionada. El 
contraargumento más conocido es la experiencia de la Cámara China de John Searle 
(http://www.iep.utm.edu/chineser/). Searle describe una experiencia en la que una persona que 
no sabe chino está encerrada en una habitación. Fuera de la habitación hay otra persona que 
puede deslizar notas escritas en chino hacia dentro de la habitación a través de una casilla de 
correo. La persona que está dentro recibe un gran manual donde puede encontrar instrucciones 
detalladas para responder las notas que recibe del exterior. 
Searle demuestra que, incluso si la persona que está fuera de la habitación tuvo la impresión de 
conversar con una persona que habla chino, la persona en el interior de la habitación no entendió 
chino. De manera similar, su argumento continúa: incluso si una máquina se comporta de manera 
inteligente, por ejemplo, al pasar la prueba de Turing, no significa que sea inteligente o que tenga 
la "mente" de un humano. La palabra "inteligente" también puede ser reemplazada por la palabra 
"consciente" y se puede elaborar un argumento similar. Por lo tanto, una IA fuerte sería equivalente 
a una "mente" que es verdaderamente inteligente y consciente de sí misma. La IA débil es lo que 
realmente existe: sistemas que muestran comportamientos inteligentes, a pesar de ser "simples" 
computadoras. 
¿Es un coche autónomo inteligente? El argumento de la Cámara China va en contra de la idea de 
que la inteligencia se puede dividir en pequeñas instrucciones mecánicas que pueden 
automatizarse. Por ello, un automóvil autónomo es el ejemplo de un elemento de inteligencia (es 
decir, conducir un automóvil)que se puede automatizar. No obstante, el argumento de la Cámara 
China sugiere que este no es realmente un pensamiento inteligente. El sistema de inteligencia 
artificial en el automóvil no ve ni comprende su entorno, y no sabe conducir con prudencia como 
un ser humano que ve, entiende y sabe. Según Searle, esto significa que el comportamiento 
inteligente del sistema es fundamentalmente diferente de ser realmente inteligente. 
 9 
Desde 1995, ha habido un gran progreso en varias tareas que requieren inteligencia artificial. A 
continuación, se muestra un resumen de los avances a partir de diciembre de 2017, es decir, al 
momento de escribir este libro: 
– La tasa de error para la clasificación automática de imágenes pasó de 28.5% a 2.5%; 
– La tasa de respuesta a preguntas abiertas (con datos de VQA 2.0) es 68% mientras que los 
humanos alcanzan el 82%; 
– La comprensión de las oraciones pasó de 85% en 1995 a 92% en 2017 (ver Treebank WSJ); 
– Responder a una pregunta que se formula dentro de un documento en particular ha 
aumentado del 60% en el 2015 al 79% en el 2017 (ver SQuAD v1.1); 
– El reconocimiento de voz de una conversación en un teléfono celular ahora es del 100% 
(Switchboard HUB5’00); 
– Resolver varios problemas con un solo algoritmo de aprendizaje automático es del 82% (vea 
los torneos SAT). 
Aunque todavía existe mucho camino por recorrer para comprender completamente estos 
fenómenos, se puede esperar un mayor progreso en los próximos años. 
1.3 ¿CÓMO APRENDEN LAS MÁQUINAS? 
 
El científico informático Tom M. Mitchell define el aprendizaje automático como la capacidad de 
una máquina para aprender de sus experiencias y usarlas para que su desempeño futuro en 
experiencias similares mejore. Aunque esta definición es intuitiva, ignora por completo el proceso 
de traducir con precisión la experiencia en acciones futuras. 
A diferencia del cerebro humano, que naturalmente es capaz de aprender desde el nacimiento, 
deben aclararse las condiciones necesarias para el aprendizaje de una computadora. Por este 
motivo, si bien no es estrictamente necesario comprender las bases teóricas del aprendizaje 
humano, esta base hace posible comprender, distinguir e implementar algoritmos de aprendizaje 
automático. 
Independientemente de si el aprendiz es un humano o una máquina, el proceso de aprendizaje 
básico es similar. Este se puede dividir en cinco componentes interdependientes: 
– El almacenamiento de datos de aprendizaje utiliza la observación, la memoria y el recuerdo 
de hechos pasados para proporcionar una base objetiva para otro razonamiento; 
– La abstracción implica la identificación de un contexto de negocios y un objetivo a alcanzar o 
una pregunta a responder; 
– La comprensión de los datos y su preparación tiene como objetivo garantizar que los datos 
ofrecidos hayan sido procesados y organizados previo a su uso; 
– El modelado consiste en utilizar algoritmos de inteligencia artificial en un subconjunto de 
datos para derivar un modelo; 
10 La inteligencia artificial con ejemplos. 
– La evaluación utiliza el modelo en otro subconjunto de datos y, por lo tanto, proporciona un 
mecanismo de retroalimentación para medir la utilidad del conocimiento adquirido e informar 
las posibles mejoras del modelo. 
 
El siguiente diagrama ilustra los pasos involucrados en un proceso típico de implementación de 
un modelo de inteligencia artificial para resolver un problema de negocios: 
 
 Figura 1.1 Proceso iterativo de desarrollo de un modelo de inteligencia artificial. 
 
En los seres humanos, este proceso se produce inconscientemente. Recordamos, deducimos, 
inducimos e intuimos usando nuestros sentidos y nuestra mente. Debido a que este proceso está 
oculto, todas las diferencias en el algoritmo utilizado de una persona a otra se atribuyen a una 
vaga noción de subjetividad. Por otro lado, con las computadoras, cada paso de este proceso es 
más explícito, y dado que el proceso es transparente y controlado, el conocimiento aprendido 
puede ser examinado, transferido y utilizado para acciones futuras. 
ALMACENAMIENTO DE DATOS 
Todo aprendizaje debe comenzar con el uso de datos. Los seres humanos y las computadoras 
utilizan datos sin procesar para crear un razonamiento más avanzado. En los humanos, es el 
cerebro el que utiliza señales electroquímicas dentro de una red de células biológicas para 
almacenar, procesar y recordar las observaciones a corto y largo plazo. Las computadoras tienen 
 11 
capacidades similares, ya que almacenan los datos en su disco duro y estos son procesados por 
una unidad central de procesamiento (es decir, un procesador). Para la función de recuperación a 
corto y largo plazo de sus observaciones, la computadora utiliza su memoria de acceso aleatorio 
(RAM) en combinación con la unidad central de procesamiento para cargarlas desde el disco duro. 
Esto puede parecer obvio, pero la capacidad de almacenar y recuperar datos por sí sola no es 
suficiente para el aprendizaje. Sin un nivel más alto de comprensión, el conocimiento se limita 
exclusivamente a recordar la observación sin la generación de acciones o nuevas observaciones. 
Los datos son simplemente unos y ceros en memoria. Estos son recuerdos almacenados sin un 
significado más amplio. 
Para comprender mejor los matices de este concepto, puede ser útil pensar en la última vez que 
estudió para un examen de matemáticas. La memoria fotográfica es de poca utilidad. Incluso si 
pudiera memorizar perfectamente todas las ecuaciones posibles, aprender de memoria es inútil, 
porque el profesor siempre puede presentar una figura que nunca ha visto. Obviamente, es una 
estrategia imposible debido a su complejidad. 
Alternativamente, un mejor enfoque es intentar analizar los datos y darles un significado. De esta 
manera, se puede comprender una amplia variedad de datos sin la necesidad de aprender de 
memoria todas las posibilidades. 
 
ABSTRACCIÓN 
Este trabajo de asignación de significado a los datos almacenados se produce durante el proceso 
de abstracción, en el que los datos sin procesar adquieren un significado más abstracto. Este tipo 
de conexión, digamos entre un objeto y su representación, es ilustrada por el pintor René Magritte: 
 
 Figure 1.2 Abstracción de un objeto. 
Leyenda «Esto no es una rosa» 
La pintura representa una rosa con el título "Esto no es una rosa". El punto que Magritte quiere 
ilustrar aquí es que una representación de una rosa en un lienzo en un museo no es realmente 
una rosa. Sin embargo, a pesar de que el elemento no es real, todos miran la pintura y reconocen 
fácilmente el objeto. Esto sugiere que la mente del observador es capaz de conectar la imagen de 
una rosa con la idea de una rosa, recordando una rosa física que se podría sostener en la mano. 
Las conexiones abstractas como estas son la base de la representación del conocimiento y la 
12 La inteligencia artificial con ejemplos. 
formación de estructuras lógicas que ayudan a transformar la información sensorial en bruto en 
una comprensión significativa y útil. 
Durante el proceso de representación del conocimiento de una máquina, la computadora resume 
los datos almacenados que están en bruto con la ayuda de un modelo; una descripción explícita 
de los modelos en sus datos y metadatos. Al igual que la rosa de Magritte, la representación del 
modelo toma vida más allá de los datos en bruto. Representa una idea más grande que la suma 
de sus partes. Hay diferentes tipos de modelos que se pueden utilizar para este efecto y ya estás 
familiarizado con algunos de ellos. Los ejemplos incluyen: 
– Conceptos básicos; 
– Ecuaciones matemáticas; 
– Diagramas relacionales tales como los árboles y las gráficas; 
– Reglas de decisión lógica como instrucciones «if then else»;– Agrupaciones de datos conocidos como clústers y redes semánticas. 
Por lo general, la elección del modelo no se deja a la máquina. En su lugar, la tarea de aprendizaje 
a realizar y los datos disponibles son los que dictaminan la selección de un modelo que se adapte 
mejor a la situación. Más adelante en este capítulo, en la sección "Identificar el algoritmo de los 
datos utilizados", analizaremos los métodos para elegir el tipo de técnica que mejor se adapte a los 
datos que se tiene. El proceso de desarrollar un modelo de predicción para un conjunto de datos 
se denomina entrenamiento. Cuando se ha construido el modelo, los datos se transforman en una 
forma abstracta que resume la información original. Es importante tener en cuenta que el modelo 
resultante no proporciona datos nuevos, sino que su uso da como resultado un nuevo 
conocimiento. ¿Cómo puede ser esto? La respuesta es que la imposición de una estructura 
asumida sobre los datos subyacentes solo permite comprender lo invisible, suponiendo un 
concepto de cómo los elementos de los datos se relacionan entre sí. 
Tomemos, por ejemplo, el descubrimiento de la gravedad. Al proporcionar las ecuaciones que 
reflejan el comportamiento de los datos en observación, Isaac Newton dedujo el concepto de la 
gravedad. Sin embargo, la fuerza que ahora conocemos como gravedad siempre estuvo presente. 
Simplemente, no fue reconocida hasta que Newton lo hizo como un concepto abstracto que 
relaciona ciertos datos con otros en particular, inventando la noción de gravedad (g) en un modelo 
matemático que explica las observaciones de los objetos que caen. 
 
 
 
 
 
 
 
 
 13 
 La pregunta Las observaciones El modelo resultante 
 
 Figure 1.3 Pasando de la pregunta a las observaciones y a un modelo final 
 
La mayoría de los modelos no pueden conducir al desarrollo de teorías que empujan el 
pensamiento científico. No obstante, un modelo puede llevar al descubrimiento de relaciones 
sin precedentes entre sus datos. En uno de los proyectos de investigación del Prof. April, el uso 
de datos genéticos de pacientes y datos clínicos de ADVANCE, el estudio más grande de 
diabetes en Europa, se encontró varios genes que, cuando se combinan, son responsables de 
la aparición de la diabetes. Así que hemos dado un paso más allá para prevenir la diabetes. En 
otro proyecto, con el Grupo NetSen de Montreal, las compañías de piezas automotrices pueden 
predecir dónde aparecerá el próximo defecto de fabricación antes de que la pieza sea fabricada. 
Como se ha visto, estos dos modelos de predicción parecen no tener nada en común, pero 
tienen un modelo subyacente común. Presentar simplemente la información en un formato 
diferente puede dar lugar a la revelación de un nuevo modelo, el cual podría ser utilizado para 
ayudarnos a mejorar todo tipo de situaciones. 
GENERALIZACIÓN 
Este proceso de aprendizaje no está completo hasta que el aprendiz sea capaz de utilizar su 
conocimiento abstracto en acciones futuras. Sin embargo, de los innumerables modelos 
subyacentes que pudieran identificarse durante el proceso de abstracción y las innumerables 
formas de modelar estos modelos, algunos serán más útiles que otros. A menos que la producción 
de abstracciones sea limitada, el aprendiz no podrá utilizarlas. Se bloquearía donde comenzó, es 
decir, con mucha información, pero no información explotable. La generalización describe el 
proceso de transformación del conocimiento abstracto en una forma que se puede utilizar para 
acciones futuras, en datos similares -pero no idénticos- a los que ya se utilizaron para entrenar el 
modelo. 
La generalización es un proceso un tanto vago que es difícil de describir. Tradicionalmente, se ha 
imaginado como una búsqueda de evaluación en todos los modelos (es decir, teorías o inferencias) 
que podrían resumirse durante el entrenamiento. En otras palabras, si puede imaginar un 
conjunto que contenga todos los modelos posibles que podrían construirse a partir de sus datos, 
la generalización implica reducir este conjunto a un número manejable de los modelos más 
importantes. En general, el aprendiz es responsable de limitar los modelos que descubre a aquellos 
14 La inteligencia artificial con ejemplos. 
que serán más relevantes para sus futuras tareas, ya que no es posible reducir el número de 
modelos examinándolos uno por uno y clasificándolos para su uso futuro. En su lugar, los 
algoritmos de aprendizaje automático, generalmente, utilizan accesos directos que reducen el 
espacio de búsqueda a mayor velocidad. Para este propósito, el algoritmo utilizará heurísticas, que 
son supuestos ilustrados para encontrar las inferencias más útiles. Las heurísticas son 
comúnmente utilizadas por los seres humanos para generalizar de forma rápida la experiencia a 
nuevos escenarios. 
Si usted a través de su instinto toma una decisión rápida antes de evaluar completamente sus 
circunstancias, usted está utilizando intuitivamente la heurística mental. La increíble capacidad 
humana para tomar decisiones rápidas a menudo no se basa en una lógica explícita como la 
informática, sino en heurísticas guiadas por las emociones. A veces, esto lleva a conclusiones 
ilógicas. Por ejemplo, las personas expresan -cada vez más- su miedo a viajar en avión en 
comparación a viajar en automóvil, aunque los automóviles son estadísticamente más peligrosos 
que los aviones. Esta reacción puede explicarse por la heurística de disponibilidad, que es la 
tendencia de las personas a estimar la probabilidad de un evento por la facilidad con la que 
recuerdan ejemplos de estos. Los accidentes relacionados con el transporte aéreo son altamente 
publicitados. Al ser eventos traumáticos, es probable que se recuerden con mucha facilidad, 
mientras que los accidentes automovilísticos apenas merecen una mención en el periódico. El 
problema de las heurísticas mal aplicadas no se limita a los seres humanos. La heurística 
empleada por los algoritmos de inteligencia artificial a veces también conduce a conclusiones 
erróneas. Se dice que un algoritmo tiene un sesgo si las conclusiones son sistemáticamente 
erróneas o erróneas de una manera predecible. 
Por ejemplo, supongamos que un algoritmo de aprendizaje automático aprende a identificar caras 
cuando encuentra dos círculos negros, que representan ojos, colocados sobre una línea recta que 
representa una boca. El algoritmo puede tener problemas de detección o estar sesgado para las 
caras que no se ajustan a su modelo. Por ejemplo, las caras con gafas o mirando a diferentes lados 
pueden no ser detectadas por este algoritmo. Del mismo modo, el algoritmo podría estar inclinado 
hacia caras con ciertos tonos de piel, caras con forma distinta u otras características que no son 
consistentes con su comprensión del mundo. 
En la actualidad, la palabra sesgo tiene connotaciones negativas. Con frecuencia, varios medios 
de comunicación afirman informar los hechos de manera objetiva, libres de prejuicios y sin ser 
movidos por la emoción. Sin embargo, piense por un momento en la posibilidad de que un pequeño 
sesgo pueda ser útil. Sin la presencia de un sesgo, podría ser difícil decidir entre varias opciones, 
cada una con distintas fortalezas y debilidades. De hecho, estudios recientes en el campo de la 
psicología han sugerido que las personas que nacen con daños en las partes del cerebro 
responsables de las emociones son ineficaces en la toma de decisiones y podrían pasar horas 
debatiendo sobre decisiones simples como, por ejemplo, el color de una camisa o la selección de 
un almuerzo. Paradójicamente, el sesgo es lo que oculta cierta información, pero al mismo tiempo 
nos permite utilizar otra información para actuar. Así mismo, los algoritmos de aprendizaje 
automático eligen una forma de entender un conjuntode datos entre las innumerables 
alternativas que existen. 
 15 
 
EVALUACIÓN 
Hemos visto que el sesgo es un mal necesario asociado con los procesos de abstracción y 
generalización inherentes a cualquier tarea de aprendizaje. Ante la presencia de estas 
posibilidades ilimitadas, cada algoritmo de aprendizaje debe estar sesgado de una manera 
particular. Por lo tanto, cada uno de ellos tiene debilidades y no hay ningún algoritmo de 
aprendizaje único para cada regla en todas las situaciones. El último paso en el proceso de 
generalización es evaluar o medir el éxito del algoritmo de aprendizaje a pesar de sus prejuicios, y 
utilizar esta información para reportar si su sesgo debe cambiarse a través de entrenamiento 
adicional. 
Generalmente, la evaluación se realiza después de haber entrenado el modelo con un conjunto de 
datos de aprendizaje inicial. Luego, el modelo se evalúa en otro conjunto de datos de prueba para 
juzgar hasta qué punto este aprendizaje se puede generalizar para nuevos datos. Cabe señalar 
que es extremadamente raro que un modelo se generalice de forma perfecta a todos los casos 
imprevistos. En algunos casos, los modelos no se generalizan de esta forma debido a la presencia 
de ruido, un término que describe variaciones inexplicables en los datos. Los datos ruidosos son 
causados por eventos aparentemente aleatorios, tales como: 
– Un error de medición por la imprecisión de los sensores, los cuales registran variaciones de 
los valores de lecturas. Es decir, valores mayores o menores para el mismo valor detectado; 
– Problemas con sujetos humanos. Por ejemplo, con los encuestados que respondieron al azar 
a las preguntas de una encuesta para terminar rápido; 
– Problemas de calidad de los datos, incluidos los valores faltantes, nulos, truncados, 
codificados incorrectamente o dañados; 
– La presencia de fenómenos complejos o poco comprendidos que tienen un impacto en los 
datos de una manera que no parece ser sistemática. 
Tratar de modelar el ruido es la raíz de un problema de sobreajuste (del inglés «overfitting»). Dado 
que la mayoría de los datos ruidosos son inexplicables por definición, intentar explicar el ruido 
llevará a conclusiones erróneas que no generalizarán bien los nuevos casos presentados al 
algoritmo. Por lo general, los esfuerzos para explicar el ruido darán como resultado modelos más 
complejos que no logran encontrar el modelo verdadero que el algoritmo de aprendizaje está 
tratando de identificar. El buen funcionamiento del algoritmo durante el entrenamiento, pero no 
durante la evaluación, nos indica que está sobreentrenado por el conjunto de datos de 
entrenamiento, ya que no generaliza de forma correcta el conjunto de datos de prueba. 
Las soluciones a los problemas de sobreentrenamiento son específicas para los enfoques 
particulares de aprendizaje automático. Por el momento, en un libro introductorio sobre 
aprendizaje automático, el punto importante es estar al tanto del problema y usar técnicas simples 
para tratar estos casos. 
 
16 La inteligencia artificial con ejemplos. 
 
1.4 LA INTELIGENCIA ARTIFICIAL EN LA PRÁCTICA 
 
Hasta ahora nos hemos centrado en cómo funciona la inteligencia artificial en teoría. Para aplicar 
el proceso de aprendizaje en tareas reales, usaremos un proceso de cinco pasos. Cualquier 
algoritmo de inteligencia artificial puede ser desplegado ampliamente siguiendo los pasos de la 
Figura 1.1 para cualquier tarea en cuestión. 
1. Recolección de datos: Esta etapa implica la obtención de los materiales de aprendizaje que 
utiliza un algoritmo para generar conocimiento. En la mayoría de los casos, los datos son 
combinados en una sola fuente; por ejemplo, un archivo de texto, una hoja de cálculo o una base 
de datos. 
2. Exploración y preparación de los datos: La calidad de cualquier modelo de aprendizaje 
automático se basa, en gran medida, en la calidad de los datos de entrada. Por lo tanto, es 
importante conocer más acerca de los datos y sus variaciones durante una 
actividad denominada minería de datos. Es común realizar actividades adicionales con el fin de 
preparar los datos para el proceso de aprendizaje; lo cual incluye eliminar, agregar, corregir y 
limpiar los datos de entrada para ajustarse a lo que el algoritmo espera recibir. 
3. Diseño del modelo: Una vez que los datos han sido preparados para el análisis, es probable 
que usted tenga una idea de lo que puede aprender de ellos. De hecho, la selección de un algoritmo 
adecuado estará ligada a la tarea específica que su sistema inteligente debe realizar. Luego, el 
algoritmo representará los datos como un modelo mediante la comprensión de sus parámetros de 
operación. Por lo tanto, lo verdaderamente importante es conocer el comportamiento de estos 
parámetros para obtener buenos resultados. 
4. Evaluación del modelo: Dado que cada modelo de aprendizaje automático conduce a una 
solución sesgada para el problema de aprendizaje, es importante evaluar qué tan bien el algoritmo 
está aprendiendo de su experiencia. Por ello, debemos evaluar la exactitud del modelo resultante 
en un conjunto de datos de prueba y obtener medidas de rendimiento específicas para la 
aplicación prevista. 
5. Modelo mejorado: Si se requiere mejorar el rendimiento del modelo, se deben utilizar 
estrategias más avanzadas. La primera es ajustar los parámetros del modelo. También se pueden 
revisar las estadísticas de evaluación del modelo y clasificar los parámetros según su importancia 
para eliminar aquellos que impiden o no contribuyen al aprendizaje. Otra alternativa es 
complementar los datos existentes con datos adicionales o realizar un entrenamiento extra. En 
algunos casos, es necesario cambiar a otro tipo de modelo. 
 
Una vez que se completan estos pasos, si el modelo parece estar funcionando correctamente, este 
se puede utilizar para la tarea prevista. Por ejemplo, usted puede usar su modelo para predecir, 
realizar proyecciones de datos financieros, generar información útil en marketing o automatizar 
 17 
tareas como la entrega por correo electrónico. Los éxitos y fracasos del modelo implementado 
pueden incluso proporcionar datos adicionales para el entrenamiento futuro de la próxima versión 
de su modelo. 
TIPOS DE DATOS DE ENTRADA 
La práctica del aprendizaje automático implica hacer coincidir las características de los datos de 
entrada. Por lo tanto, antes de aplicar el aprendizaje de máquina a problemas del mundo real, es 
importante entender la terminología que distingue a los conjuntos de datos de entrada. 
El término "unidad de observación" se utiliza para describir la entidad más pequeña de interés de 
un estudio, la cual tiene propiedades medibles. En general, la unidad de observación viene en 
forma de personas, objetos, cosas, transacciones, puntos de temporalidad, regiones geográficas o 
medidas. A veces, las unidades de observación se combinan para formar unidades, tales como 
años-persona, lo que define los casos donde la misma persona es seguida durante varios años. 
Cada año-persona corresponde a los datos de una persona en un año. Los conjuntos de datos que 
almacenan las unidades de observación y sus propiedades pueden ser imaginados como conjuntos 
que comprenden: 
– Muestras: Instancias de la unidad de observación para las cuales se han registrado 
propiedades. 
– Características: Propiedades registradas o atributos de ejemplos que pueden ser útiles para 
el aprendizaje automático. 
 
Es más fácil entender las características y ejemplos a través de casos concretos. Para crear un 
algoritmo de aprendizaje que identifique un correo no deseado, la unidad de observación puede 
ser el conjunto de mensajes electrónicos. Los ejemplos usados para el aprendizaje serían mensajes 
específicos y las características pueden consistir en palabras claves utilizadas en ellos. Para un 
algoritmo de detección de cáncer, la unidad de observación puede ser elpaciente. Los ejemplos 
pueden incluir una muestra aleatoria de pacientes con cáncer y las características pueden ser los 
marcadores genéticos de las células que se han biopsiado, así como el peso, la dieta, el tamaño y 
la presión arterial del paciente. Aunque los ejemplos y las características no tienen que recopilarse 
en una forma específica, generalmente se lo hace en una matriz; lo que significa que cada registro 
de datos posee las mismas características. 
 
La siguiente hoja de Excel proporciona un conjunto de datos en formato de matriz. Cada fila de la 
hoja de cálculo es un ejemplo y cada columna es una característica. Aquí, las filas muestran 
ejemplos de vino, mientras que las columnas presentan varias características por cada año como 
el precio, la cantidad de lluvia que cayó en invierno y verano en esa región, la población de Francia 
ese año, la edad de la botella y la temperatura promedio en la estación de crecimiento (AGST). Los 
datos en una matriz es la forma más utilizada para el aprendizaje automático. Sin embargo, 
existen otras formas que, a veces, se utilizan en casos especiales. 
18 La inteligencia artificial con ejemplos. 
 
 
Las características también vienen en varias formas. Si una característica es medida en números, 
será numérica. Alternativamente, si una característica es un atributo compuesto de un conjunto 
de categorías, la función se llama nominal o categórica. Un caso especial de las variables 
categóricas se llama ordinal, que denota una variable nominal con categorías que corresponden a 
una lista ordenada. Algunos ejemplos de variables ordinales incluyen el tamaño de la ropa 
(pequeñas, medianas y grandes) o una medida de la satisfacción del cliente en una escala que va 
desde "insatisfecho" a "muy satisfecho". Es importante tomar en cuenta lo que las entidades 
representan, porque el tipo y la cantidad de entidades de su conjunto de datos lo ayudarán a 
determinar un algoritmo de aprendizaje automático apropiado para el propósito perseguido. 
1.5 Los tipos de algoritmos de la inteligencia artificial 
Los algoritmos de aprendizaje automático se dividen en categorías según su finalidad, por ejemplo: 
predicción digital; clasificación; reagrupamiento; investigación y muchos otros. Muchos problemas 
pueden ser representados como problemas de investigación. Entonces, se comienza formulando 
los tipos de alternativas y sus consecuencias. Comprender los tipos de algoritmos de aprendizaje 
es el primer paso hacia la utilización de los datos para alcanzar la acción deseada. Un modelo 
predictivo se usa para tareas que involucran, como su nombre lo indica, la predicción de un valor 
utilizando otros valores en el conjunto de datos. El algoritmo de aprendizaje intenta descubrir y 
modelar la relación entre la característica objetivo a predecir (llamada variable dependiente) y las 
otras características (llamadas variables independientes). A pesar del uso común de la palabra 
"predicción" para denotar la previsión, los modelos de predicción no necesariamente siempre 
tienen que prever los acontecimientos futuros. Por ejemplo, un modelo predictivo puede usarse 
para predecir eventos pasados, como la fecha en que se concibió un bebé utilizando los niveles 
actuales de hormonas maternas. Los modelos predictivos también se pueden usar en tiempo real 
para controlar los semáforos durante las horas pico. 
 19 
Debido a que los modelos predictivos reciben instrucciones claras sobre lo que deben aprender y 
cómo deben hacerlo, el proceso de entrenamiento se conoce como aprendizaje supervisado. La 
supervisión no se refiere a la intervención humana, sino más bien a que los valores esperados 
estén presentes en el conjunto de datos y permitan al aprendiz conocer en qué medida aprendió 
la tarea deseada. De manera más formal, podemos decir que, dado un conjunto de datos, un 
algoritmo de aprendizaje supervisado trata de optimizar una función (el modelo) para encontrar la 
combinación de los valores de las características de entrada que generan el valor esperado en la 
salida. 
Los modelos de aprendizaje supervisado son ampliamente utilizados. El proceso de aprendizaje 
supervisado toma un conjunto de datos, lo divide en un conjunto de entrenamiento y otro de 
prueba; utiliza los datos de entrenamiento para desarrollar un modelo y evalúa el rendimiento del 
modelo obtenido con los datos de prueba. Se dividen en varios tipos: 
1) Clasificación: Estos modelos se utilizan para describir los datos en categorías. Por ejemplo, las 
tiendas que venden más de 10 unidades por semana pueden considerarse rentables, mientras que 
las que venden menos de 10 unidades serían no rentables. 
 
Es fácil pensar en los usos potenciales de un clasificador. Por ejemplo, se puede predecir si: 
– Un mensaje electrónico es un spam; 
– Una persona tiene cáncer; 
– Un equipo de fútbol va a ganar o perder; 
– Una persona entrará en mora por un préstamo. 
En la clasificación, la característica objetivo a prever es una característica categórica, conocida 
como clase, que se divide en categorías denominadas niveles. Una clase puede tener dos o más 
niveles, y los niveles pueden ser ordinales o no. Debido a que la clasificación es ampliamente 
utilizada en el aprendizaje automático, hay muchos tipos de algoritmos de clasificación, con 
fortalezas y debilidades adecuadas para diferentes datos de entrada. Por ejemplo, la técnica de 
regresión logística permite separar los datos en clases, como se muestra en la figura: 
 Dos clases Tres clases: 
20 La inteligencia artificial con ejemplos. 
La técnica de máquina de soporte vectorial también permite la clasificación: 
 
Los algoritmos por instancias forman también parte de los modelos de clasificación. Estos métodos 
construyen una base de datos de ejemplos proporcionados y comparan los nuevos datos con ese 
punto de referencia, usando una medida de similaridad para encontrar la mejor correspondencia 
y realizar una predicción. Entre ellos tenemos: las fichas de autoevaluación de adaptación, los K 
vecinos más cercanos, el aprendizaje de vectores cuantificados y el aprendizaje de pesos 
localizados. 
 
Otro tipo de algoritmo para el modelo de clasificación es el algoritmo de árboles de decisión. Este 
algoritmo construye un modelo de decisión sobre la base de los valores reales de los atributos en 
los datos. Un registro dado atraviesa el árbol de decisión. En cada ramificación hay una decisión 
basada en características. El registro baja por el árbol de decisión hasta que una terminación es 
alcanzada, entonces una categoría es asignada. Los árboles de decisión se forman a partir de los 
datos de clasificación y regresión. 
 
Entre los modelos de clasificación tenemos a los modelos bayesianos, basados en estadísticas de 
cada una de las características de un registro para predecir su clase. Se pueden utilizar tanto en 
modo supervisado o no supervisado. En general, el clasificador de Bayes (Naive) es versátil, simple 
de implementar y da buenos resultados para la mayoría de las aplicaciones de clasificación (por 
ejemplo: spam y detección de lenguaje y sentimientos). Entre los algoritmos están: Naive Bayes, 
Naive Bayes Gaussian, Naive Bayes Multi-nodal, One-Dependent Estimator y la red Bayesiana. 
 21 
 
 
2) Regresión: La regresión tiene como objetivo modelar la relación entre las variables que se refinan 
iterativamente, utilizando una medida del error en las predicciones realizadas por el modelo. 
 
Estos modelos son muy comunes y usted los ha visto en sus clases de matemáticas. Se utilizan 
principalmente para visualizar la evolución de los datos en relación con una variablede referencia 
(por ejemplo, el tiempo) y tratar de predecir su valor en el futuro. Por lo tanto, los aprendices 
supervisados también son útiles para predecir datos numéricos como el salario o los precios de la 
vivienda en su vecindario. Para predecir tales valores, una forma común es proporcionar datos de 
entrada para modelos de regresión lineal. Aunque los modelos de regresión no son el único tipo 
de modelos numéricos, son los más utilizados. Estos métodos resultan de gran importancia para 
pronosticar porque cuantifican con precisión la asociación entre las entradas y los valores 
esperados, incluyendo la magnitud y la incertidumbre de la relación. Hay varios tipos de 
algoritmos de regresión como: regresión lineal, regresión logística MLR, regresión por etapas, 
regresión multivariada, red elástica, LASSo, entre otros. 
Otra familia de algoritmos es la familia de las redes neuronales. Estos son algoritmos de 
“coincidencia de patrones” comúnmente utilizados para problemas de regresión y clasificación. 
Los nuevos métodos de aprendizaje de redes neuronales profundas son una actualización de este 
concepto. Entre las técnicas conocidas se incluyen: el perceptrón, propagación hacia atrás, red 
Hopfield, máquina Boltzmann, redes convolucionales y aprendizaje profundo. 
 
22 La inteligencia artificial con ejemplos. 
Los algoritmos de reglas de asociación Eclat y Apriori también son versátiles. Estos extraen reglas 
que explican mejor las relaciones observadas entre las variables en los datos. 
 
3) Modelos descriptivos: Estos modelos se utilizan para tareas resultantes de la información 
obtenida al resumir los datos de una manera nueva e interesante. A diferencia de los modelos 
predictivos que predicen un objetivo de interés, en un modelo descriptivo ninguna característica 
es más importante que otra. De hecho, como no hay un objetivo para aprender, el proceso de 
formar un modelo descriptivo se llama aprendizaje no supervisado. Puede ser más difícil identificar 
las aplicaciones para modelos descriptivos. Después de todo, ¿para qué sirve un modelo que no 
tiene nada que ver con algo en particular? En resumen, se utilizan regularmente para la minería 
de datos. 
Por ejemplo, la tarea de modelado descriptivo llamada búsqueda de modelo se usa para identificar 
asociaciones útiles en los datos. El descubrimiento de patrones es requerido a menudo para el 
análisis de la cesta del consumidor en los datos de compras transaccionales de venta al por menor. 
Aquí, el objetivo es identificar juntos los artículos comprados con frecuencia, de modo que la 
información aprendida se pueda utilizar para ajustar las tácticas de marketing y ubicar los 
productos en la tienda en consecuencia. Por ejemplo, si un minorista se entera de que los pollos 
asados generalmente se venden al mismo tiempo que la salsa marrón, el minorista puede colocar 
ambos artículos más cerca en la tienda o lanzar una promoción para venderlos juntos. La tarea 
de modelado descriptivo que consiste en dividir un conjunto de datos en grupos homogéneos se 
denomina agrupación en clases (clustering en inglés). Esta técnica a veces se usa para el análisis 
de segmentación que identifica grupos de personas con comportamiento o información 
demográfica similar, de modo que las campañas publicitarias se puedan adaptar a audiencias 
específicas. Aunque el algoritmo es capaz de identificar grupos, se necesita la intervención 
humana para interpretarlos. Por ejemplo, el equipo de marketing necesitará comprender las 
diferencias entre los grupos de compradores en una tienda de comestibles para crear una 
promoción que mejor se adapte a cada uno de ellos. 
Finalmente, una clase de algoritmos de aprendizaje automático son llamados metaaprendices o 
de aprendizaje grupal cuyo objetivo es aprender de manera más efectiva. 
 23 
 
Un algoritmo de metaaprendizaje utiliza el resultado de una serie de modelos de aprendizaje para 
realizar un aprendizaje adicional. Esto puede ser beneficioso para problemas muy complejos o 
cuando el rendimiento de un modelo es más bajo de lo esperado y el resultado producido no es 
útil. Los más populares son: Bagging, Boosting y Random Forest para usar clasificadores 
similares; y Stacking y Ensembles para el uso de diferentes clasificadores. 
1.6 IDENTIFICAR EL ALGORITMO PARA LOS DATOS UTILIZADOS 
 
La siguiente tabla enumera los tipos de algoritmos de aprendizaje automático descritos en este 
libro. Un libro introductorio solo cubre una parte del conjunto de algoritmos de aprendizaje 
automático disponibles. El aprendizaje de los métodos elegidos aquí brinda una base suficiente 
para tener una visión general y comprender cualquier otro método que pueda encontrar en el 
futuro. 
 
 
24 La inteligencia artificial con ejemplos. 
¿Cómo elegir el algoritmo correcto? 
Para comenzar con la aplicación del aprendizaje automático en un proyecto real, se debe 
determinar cuál de las cuatro tareas de aprendizaje representa su proyecto: clasificación, 
predicción, detección de patrones o agrupación. La tarea impulsará la elección del algoritmo. Por 
ejemplo, si realiza la detección de modelos, probablemente utilizará reglas de asociación. De 
manera similar, un problema de clúster empleará el algoritmo k- means, y la predicción numérica 
elegirá al algoritmo de regresión o árboles de regresión. 
 
En la clasificación, se necesita un poco más de reflexión para hacer coincidir un problema de 
aprendizaje con un clasificador apropiado. En estos casos, es útil considerar varias distinciones 
entre algoritmos, distinciones que serán visibles solo al estudiar cada uno de los clasificadores en 
profundidad. Por ejemplo, dentro de los problemas de clasificación, los árboles de decisión 
proporcionan modelos que son fáciles de entender, mientras que los modelos de redes neuronales 
son notoriamente difíciles de interpretar. Si está diseñando un modelo de calificación crediticia, 
esta puede ser una distinción importante; porque la ley a menudo exige que se notifique al 
demandante las razones por las cuales se le rechazó el préstamo. Incluso si la red neuronal es 
más capaz que un ser humano en predecir problemas de crédito, si sus predicciones no pueden 
ser explicadas, entonces es inútil para esta aplicación. 
 
Para ayudar en la selección del algoritmo, las fortalezas y las debilidades de cada algoritmo serán 
presentadas, aunque en muchos casos la elección del algoritmo es arbitraria. Cuando esto sea 
cierto, no dude en utilizar el algoritmo con el que se sienta más cómodo. Otras veces, cuando la 
precisión de predicción es baja, usted puede probar varios algoritmos y elegir cuál es el mejor, o 
utilizar un algoritmo establecido que combine varios aprendices diferentes, aprovechando las 
fortalezas de cada uno o el aprendizaje profundo que ahora da buenos resultados en varios 
escenarios. 
 
1.7 EL APRENDIZAJE DE CONCEPTOS UTILIZANDO EL LENGUAJE R 
 
Muchos de los algoritmos necesarios para el aprendizaje automático no forman parte de la 
instalación básica del software libre R. Estos algoritmos están disponibles a través de una gran 
comunidad de expertos que han compartido su trabajo libremente. Estos deben ser instalados 
manualmente durante cada ejercicio. Debido al estado del software libre de R, no hay cargo 
adicional por esta función. 
Una colección de funciones R que pueden compartirse entre usuarios se denomina paquete. 
Existen paquetes gratuitos para cada uno de los algoritmos de inteligencia artificial cubiertos en 
este libro. De hecho, este libro cubre solo una pequeña parte de todos los paquetes de aprendizaje 
automático de R. Si está interesado en conocer el alcance de los paquetes R, puede ver la lista en 
 25 
Complete Network Archive R (CRAN), una colección de sitios web y FTP ubicadosen todo el mundo 
para proporcionar las versiones más recientes de R y los nuevos paquetes. Puede descargar el 
software R en la dirección siguiente http://www.rstudio 
El enlace "PACKAGES", en el lado izquierdo de la página, lo llevará a una página donde puede 
buscar paquetes en orden alfabético u ordenados por fecha de publicación. Al momento de escribir 
este artículo, un total de 6,779 paquetes estaban disponibles y progresando rápidamente. 
El enlace "Task Views" en el lado izquierdo de la página CRAN también proporciona una lista 
organizada de paquetes según el tema. El enlace para inteligencia artificial, que enumera los 
paquetes cubiertos en este libro (y muchos más), está disponible en http://cran.r-
project.org/web/views/MachineLearning.html. 
Considere que los ejemplos en este libro no son software en producción y no se han probado 
exhaustivamente a gran escala. Se proporcionan "tal cual" y se entregan sin ningún tipo de 
garantía. 
 
http://cran.r-project.org/web/views/MachineLearning.html
http://cran.r-project.org/web/views/MachineLearning.html
26 La inteligencia artificial con ejemplos. 
2 Introducción al 
lenguaje R 
2.1 INTRODUCCIÓN 
 
Un componente clave de cualquier proyecto de aprendizaje automático consiste en gestionar y 
comprender los datos. Si bien no es tan gratificante como construir y desplegar modelos, etapas 
en las que comienza a ver los frutos de su trabajo, es imprudente ignorar este importante trabajo 
preparatorio. La calidad de un algoritmo de aprendizaje está asociado a la calidad de los datos de 
entrada; y en muchos casos, los datos de entrada son complejos, están desordenados y provienen 
de múltiples fuentes y con diferentes formatos. Debido a esa complejidad, mucho esfuerzo es 
dedicado a la preparación y exploración de datos. 
 
Durante los ejercicios que siguen, es importante que intente encontrar la respuesta por sí mismo 
a las preguntas que puedan surgir. Por ejemplo, para conocer detalles sobre la sintaxis de la 
función rnorm, puede escribir > ?rnorm o > help.search ("rnorm") para obtener más información. 
Si desea obtener los parámetros utilizados por una función, escriba > args ("rnorm") y le mostrará 
una lista de ellos. 
 
Utilice también Google, Stackoverflow (con etiqueta "[R]") y Crossvalidated que son sitios donde 
puede encontrar respuestas a un problema. También puede leer la documentación de R, pues es 
muy rica en contenido. Cuando reciba un código de error, escriba este error en Google para obtener 
ayuda respecto al problema. Por ejemplo, escriba el comando >cor (airquality) en R y emite un 
código del tipo de error: Error en cor (airquality): faltan las observaciones en cov / cor. Si tiene 
preguntas más generales sobre R, escriba su pregunta en Google seguida por el paquete R para 
obtener mejores resultados. En cuanto a las búsquedas a través de Google, las preguntas sobre 
ciencia de datos deben estar calificadas porque su terminología varía según el campo de 
investigación. Por ejemplo, si está buscando respuestas a preguntas para R en las siguientes 
áreas, agregue el término que lo ayudará a orientar mejor su búsqueda: 
– Bioestadística o Bioinformática para datos médicos; 
– Data Science (Ciencia de datos) para análisis de datos en la Web; 
– Machine Learning (Aprendizaje automático) para la informática de datos / visión por 
ordenador; 
 27 
– Natural language processing (Procesamiento de lenguaje natural) para datos textuales; 
– Signal processing (Procesamiento de señales) para datos científicos y eléctricos; 
– Business analytics (Análisis empresarial) para datos de negocios de clientes; 
– Econometría para datos económicos; 
– Fintech (Tecnología financiera) para datos financieros; 
– Y muchos otros… 
Tenga en cuenta que R tiene algunas debilidades y, en especial, en relación con el procesamiento 
de grandes cantidades de datos. El software R posee dos limitaciones principales: 
1- Independientemente de la cantidad de núcleos en su CPU, R solo usa un núcleo en una versión 
predeterminada; 
2- R lee los datos en la memoria por defecto. La arquitectura del sistema operativo y el sistema 
solo pueden acceder a 4 GB de memoria física en un sistema de 32 bits, pero normalmente R 
arroja una excepción a 2 GB. 
Por lo tanto, R es una herramienta interesante de exploración y creación de prototipos, pero no 
está diseñada para escalar sus algoritmos para grandes cantidades de datos. El último 
capítulo de este libro presentará una herramienta para trabajar con datos masivos. 
 
Para su información, los ejemplos de este libro se han ejecutado en la versión R: versión 3.4.2 (2017-
09-28) -- "Short Summer" 
 
Tome en cuenta que el uso puede variar según la instalación de R. Cámbielo en los ejemplos según 
sea necesario. Yo utilizo el que funciona con R en Mac OS. 
28 La inteligencia artificial con ejemplos. 
2.2 LAS ESTRUCTURAS DE DATOS DE R 
 
Existen muchos tipos de estructuras de datos en lenguajes de programación, cada una con 
fortalezas y debilidades adecuadas para tareas particulares. Dado que R es un lenguaje de 
programación muy utilizado para el análisis de datos estadísticos, las estructuras de datos que 
utiliza se han diseñado teniendo en cuenta este tipo de trabajo. 
 
Las estructuras de datos R utilizadas con mayor frecuencia en el aprendizaje automático son 
vectores, factores, listas, tablas y matrices, y data frames. Dado que cada una se adapta a una 
tarea específica de administración de datos, es importante comprender cómo estas van a 
interactuar en su proyecto R. En las siguientes secciones, examinaremos sus similitudes y 
diferencias. 
 
DESCARGAR DATOS DE LA WEB 
 
Antes de descargar un archivo, es necesario conocer dos cosas: 1) ¿En qué directorio de trabajo 
estoy?, y 2) ¿Ya existe este archivo? 
¿En qué directorio está? El comando para ver en qué directorio está en cualquier momento es > 
getwd (). Aquí está la respuesta en mi iMac. Estoy en este directorio de trabajo alainapril y se 
obtiene así: 
> getwd () 
[1] "/ Usuarios / alainapril" 
 
Ubíquese en el directorio de trabajo usando el comando > setwd ("su directorio de trabajo"). Abajo 
la respuesta de mi iMac. Ahora estoy en el directorio donde trabajaré con mis ejemplos: 
> setwd () 
[1] "/Users/alainapril" 
 
Para obtener un archivo de la Web, se debe crear una variable que lo contenga y luego descargarlo. 
Primero, escriba la dirección web del archivo en la variable fileUrl. 
> fileUrl = " https: //data.b altimorecity.gov/api/views/dz54- 2aru / rows.csv? AccessType = 
DOWNLOAD " 
 
Cuando todo esté bien, R vuelve a mostrar el símbolo “>”. Para comprobar que esta variable 
contiene la dirección web del archivo a descargar, utilice el comando: 
 29 
> fileUrl 
[1] "https://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD" 
 
Para descargar el archivo, ejecute el comando > download.file () 
 
> download.file (fileUrl, destfile = "cameras.csv", method = "curl") y la respuesta es: 
 % Total % Received % Xferd Average Speed Time Time Time Current 
100 9443 0 9443 0 0 19736 0 --:--:-- --:--:-- --:--:-- 19713- 0 
 
Si desea verificar que este archivo se descargó de forma exitosa, use el comando > list.files () para 
visualizar los archivos que están en su directorio. Luego de ejecutar el comando, podrá ver el 
archivo cameras.csv 
CARGAR DATOS LOCALES EN EL ENTORNO DE TRABAJO R 
Perfecto, tenemos datos y ahora queremos cargarlos en una estructura de datos con el fin de 
explotarlos. 
 
Utilizar el comando > read.table () es la forma más popular de cargar datos. En el caso de archivos 
muy grandes habrá límites porque los datos se leen en la memoria RAM. Este no es el caso de 
nuestro archivo cameras.csv, así que si utiliza el comando >? read.table (), aparece una ventana 
de ayuda para informarle sobre su uso y la configuración. Los parámetros por conocerson header 
y sep. Header indica a R si el archivo tiene una línea de encabezado que debe ignorarse, puesto 
que sirve para identificar cada columna de datos, y sep que muestra qué tipo de separador es 
utilizado para separar datos en el archivo. Tenga en cuenta que la función > read.csv puede 
resultar útil cuando el archivo tiene un encabezado y usa la coma como separador. 
 
En el archivo que acabamos de descargar, se usan comas para separar los datos y hay una línea 
de encabezado. Así que podemos cargar los datos en R usando el comando: 
> cameraData = read.table ( " cameras.csv " , sep = " , " , header = TRUE) 
 
Nota: Otro método popular para ir más rápido y cargar datos directamente desde la Web es: 
cameraData = read.table ( file = fileUrl, sep = " , " , header = TRUE, na.strings = "") 
 
Echemos un vistazo a las primeras seis líneas de este archivo con el comando: 
 
> head( cameraData) 
30 La inteligencia artificial con ejemplos. 
 
 address direction street crossStreet intersection Location.1 
 
1 S CATON AVE y BENSON AVE B / N Caton Ave Benson Ave Caton Ave y Benson Ave 
(39.2693779962, -76.6688185297) 
2 S CATON AVE y BENSON AVE S / B Caton Ave Benson Caton Ave Ave y Benson Ave 
(39.2693157898, -76.6689698176) 
3 WILKENS AVE Y PINE HEIGHTS AVE B Wilkens Ave Pine Heights Wilkens Ave y Pine Heights 
(39.2720252302, -76.676960806) 
4 ALAMEDA & E 33RD ST S / B The Alameda 33rd St The Alameda & 33rd St (39.3285013141, -
76.5953545714) 
5 E 33RD ST & THE ALAMEDA E / B 33rd The Alameda E 33rd & The Alameda (39.3283410623, 
-76.5953594625) 
6 ERDMAN AVE & N MACON ST E / B Erdman Macon St Erdman & Macon St (39.3068045671, 
-76.5593167803) 
> 
 
Considere que en esta función usted puede dar indicaciones sobre las particularidades de su 
archivo de entrada. Por ejemplo: el parámetro quote indica si hay un carácter que encierra los 
valores en el archivo, el parámetro na.strings permite conocer si faltan valores, y nrows es útil si 
desea obtener solo un cierto número de líneas. 
 
El archivo contiene datos de ubicación de cámaras de vigilancia en intersecciones de calles en la 
ciudad de Baltimore. Puede encontrar más información sobre la estructura de estos datos en la 
dirección web: https://dev.socrata.com/foundry/data.baltimorecity.gov/bi5d-g8q2 
También hay más formas de cargar todo tipo de datos en R, no solo desde una dirección web. 
 
Fuente de datos Función R a utilizar 
Excel read.xlsx, read.xlsx2 y el paquete XLConnect 
XML xmlTreeParse (Xpath / node, //node, node[@attr-name]) 
JSON fromJSON à Install.packages("jsonlite",repos=http://cran.r-
project.org) 
MySQL RMySQL, Bd=dbConnect (MySQL(), user= xx, host=yy) 
WebScrarpping 
http://cran.r-project.org/
http://cran.r-project.org/
 31 
Api’s 
 
INICIACIÓN A LA CONSOLA R 
Al iniciar R, aparece una ventana (la consola). El símbolo “>” indica que R está listo para ejecutar 
cualquier línea de comando. Escriba el comando > 8*6 y obtendrá un resultado. Ahora intente > 
2 ^ 16 que le dará la respuesta 65536. Si escribe 2 ^ y pulsa Enter, habrá un + que le indica que 
debe completar el comando. De lo contrario, presione Esc para salir de R. 
 
Las flechas en la parte superior y en la parte inferior se utilizan para regresar a un comando 
anterior. Vuelva a 8 * 6 y cambie el 6 por el 10; ahora da un resultado de 80. También tiene acceso 
a las funciones de R. Por ejemplo, a la función > sqrt (2), la cual obtiene la raíz cuadrada. Usted 
puede aprender más sobre los parámetros de una función consultando la ayuda, al añadir el signo 
de interrogación > ?sqrt 
 
Como en todos los lenguajes de programación, es posible crear variables. Escriba > SquareRoot2 
= sqrt (2), el resultado estará ahora en >SquareRoot2. El comando > ls () muestra todas las 
estructuras de datos, incluyendo las variables que están activas en su entorno de trabajo en este 
momento. En este punto de su sesión R, solo una estructura está en la memoria de R, la estructura 
" SquareRoot2 ". 
VECTORES, MARCOS DE DATOS Y LISTAS DE R 
 
Una estructura de datos fundamental y muy popular de R es el vector; este permite el 
almacenamiento de un conjunto ordenado de valores llamados elementos. Un vector puede 
contener cualquier número de elementos, pero todos deben ser del mismo tipo. Por ejemplo, un 
vector no puede contener números y texto. Una lista permite mayor flexibilidad. Para determinar 
el tipo de vector v, use el comando > typeof (v). 
 
Varios tipos de vectores se usan comúnmente para el desarrollo de modelos de aprendizaje 
automático: números enteros (sin decimales), dobles (con números decimales), caracteres (datos 
de texto) y lógicos (VERDADERO o FALSO). También hay dos valores especiales: NULL, utilizado 
para indicar la ausencia de cualquier valor, y NA que revela un valor faltante. 
 
Es tedioso introducir grandes cantidades de datos en R de forma manual. Sin embargo, se pueden 
crear pequeños vectores utilizando la función de combinación c (). El vector también puede ser 
nombrado usando el operador =. Por ejemplo, aquí está el comando para crear un vector > v = c 
(2,3,5,8,13). Ahora, construyamos dos vectores para almacenar datos de esperanza de vida de 
32 La inteligencia artificial con ejemplos. 
cinco países. Vamos a crear un vector de caracteres llamado Country y colocaremos los nombres 
de los cinco países, y un vector doble llamado LifeExpectancy para almacenar los valores de 
esperanza de vida de estos países. Echemos un vistazo al siguiente código para crear estos tres 
vectores: 
 
> Country = c ("Brazil ","China", "India", "Switzerland", "USA") 
> LifeExpectancy = c (74,76,65,83,79) 
 
Verifique el contenido de cada vector usando su nombre. Visualice el primer elemento del vector 
con el comando > Country[1]. 
 
La estructura de datos utilizada por R para sus modelos de aprendizaje es el marco de datos 
conocido como Data Frame, una matriz de n dimensiones. Resulta sencillo crear un data frame 
con nuestros dos vectores usando el siguiente comando: > CountryData = data.frame (Country, 
LifeExpectancy). El data frame CountryData ahora es una matriz de 2 columnas y 5 filas con el 
siguiente contenido: > CountryData 
 Country LifeExpectancy 
1 Brazil 74 
2 China 76 
3 India 65 
4 Switzerland 83 
5 USA 79 
 
Falta añadir la población por país, la cual está en otra fuente de datos. Para agregar esta variable 
en el data frame, escriba lo siguiente: > CountryData$Population = c (199000, 1390000, 1240000, 
79970, 318000). 
Ahora puede ver que la columna de población se encuentra ahí > CountryData 
 Country LifeExpectancy Population 
1 Brazil 74 199000 
2 China 76 1390000 
3 India 65 1240000 
4 Switzerland 83 79970 
5 USA 79 318000 
 
Al analizar estos datos, se recomienda agregar dos países: Australia y Greece. Vamos a crear tres 
nuevos vectores: Country = c ("Australia","Greece"), LifeExpectancy = c (82,81) y Population = c 
(23050, 11125). Ahora podemos crear un data frame para estos dos países: NewCountryData = 
data.frame (Country,LifeExpectancy,Population) y, finalmente, crear un nuevo data frame para 
 33 
unir el contenido de CountryData con NewCountryData: AllCountryData = rbind (CountryData , 
NewCountryData) 
 
> AllCountryData 
 Country LifeExpectancy Population 
1 Brazil 74 199000 
2 China 76 1390000 
3 India 65 1240000 
4 Switzerland 83 79970 
5 USA 79 318000 
6 Australia 82 23050 
7 Greece 81 11125 
 
Con lo anterior, se demuestraque es posible jugar con los datos de una tabla para incluir todos 
los datos necesarios antes de entrenar un modelo de aprendizaje automático. 
 
Para el siguiente ejercicio, use el archivo WHO.csv de un conjunto de indicadores sociales, 
económicos, de salud y políticos que recopilan datos de la Organización Mundial de la Salud y 
organizaciones asociadas. El conjunto de datos está disponible en un CSV (valores separados por 
comas) en el siguiente sitio http://www.exploredata.net/Downloads/WHO-Data-Set 
 
Busque el archivo WHO.csv y descárguelo en su directorio de trabajo. Luego, cargue el archivo en 
memoria usando el comando > WHO = read.csv ("WHO.csv"). Escriba el comando > str (WHO) para 
ver la estructura interna de los datos del archivo. Hay demasiada información para mostrarla aquí, 
pero la primera línea nos da un resumen: 
'data.frame': 'data.frame': 202 obs. of 358 variables. 
 
Puede ser útil enfocarse solo en un país. Por lo tanto, es posible extraer un subconjunto con el 
comando > India = subset (WHO, WHO$Country == WHO$Country[80]). 
 
Luego grabe el archivo > write.csv (India, "WHO_india.csv"). Ahora que el archivo está guardado 
en su área de trabajo en su computadora, podría eliminarlo de la memoria usando el comando > 
rm (WHO). 
 
Ahora veamos una variable de archivo. Por ejemplo, podemos ver la población después de 15 años 
en la India: > India$Population.proportion.under.15 y la respuesta es [1] 33, que significa el 33% 
de la población. Si queremos ver esa variable para todos los países, debemos escribir: > 
http://www.exploredata.net/Downloads/WHO-Data-Set
34 La inteligencia artificial con ejemplos. 
WHO$Population.proportion.under.15 y obtendremos todos los valores de los 202 países (es decir, 
datos de los países del 1 al 63 en la primera línea, 64 al 126 en la segunda línea, etc.): 
[1] 47 26 29 14 46 28 26 20 19 16 24 27 26 35 18 15 17 37 44 NA 32 38 17 35 28 29 14 46 45 
37 41 17 39 42 46 24 21 30 42 47 42 34 28 41 15 19 19 14 19 38 28 33 32 33 34 42 43 15 44 
33 17 18 NA 
[64] 35 41 18 14 39 14 33 43 43 48 31 38 39 NA 15 22 33 28 28 41 21 28 14 31 14 37 24 43 32 
24 18 24 30 39 14 28 40 47 30 16 18 NA 19 44 47 31 33 48 17 32 40 24 30 38 19 18 28 19 30 
44 27 38 32 
[127] 38 18 NA NA 21 37 48 44 34 19 33 36 32 30 40 35 31 36 16 16 NA 21 15 15 43 28 27 29 
40 14 41 34 42 18 24 43 19 16 14 40 44 32 14 24 40 29 39 17 16 36 NA 39 44 21 45 43 37 22 
25 28 31 34 49 
[190] 14 20 18 21 24 32 39 31 29 NA 45 46 39 
 
También, podemos mirar el promedio mundial usando la función: > mean 
(WHO$Population.proportion.under.15), pero el resultado da [1] NA porque algunos países no 
tienen ese dato. Usted puede ver que hay datos de tipo NA para algunos países. Por ejemplo: país 
= {63 , 77, 105, 130, 131, 148, 178, 200} causa este problema. Por lo tanto, se debe eliminar esos 
NA antes de realizar operaciones matemáticas, con el comando > mean 
(WHO$Population.proportion.under.15, na.rm = TRUE). Luego de esto, la respuesta es [1] 
30.11399, lo que confirma que India está un poco más allá del promedio mundial con su 33%. 
 
Así podríamos hacernos la siguiente pregunta: ¿Qué país tiene el porcentaje más bajo de jóvenes 
menores de 15 años? Con > which.min (WHO$Population.proportion.under.15), la respuesta es 
[1] 4. Entonces, ¿cuál es el país #4? Utilice el comando > WHO$Country [4] y da como resultado 
[1] Andorra. Haga lo mismo para el porcentaje más alto. ¿Cuál es el país? 
 
Queda demostrado que es posible investigar nuestros datos desde todos los ángulos para 
familiarizarse completamente con ellos. Ahora, intentemos relacionar dos variables de una manera 
gráfica. Sería interesante ver la relación entre el ingreso nacional bruto per cápita y el nivel de 
fertilidad de las mujeres en este país. Para utilizar plot (), tenemos que especificar dos vectores 
como parámetros de entrada: 
 
> plot (WHO$Gross.national.income.per.capita, WHO$Total.fertility.rate..per.woman) 
 35 
 
 Figure 2.1 Representación gráfica simple de dos variables con R 
 
La tendencia es que cuando los ingresos son más altos, hay menos hijos por familia. Los países 
de bajos ingresos todavía tienen altos niveles de fertilidad. Entonces, ¿cuáles son los países que 
tienen buenos ingresos, pero siguen teniendo muchos niños? Para ello, se crea una variable 
llamada Outliers para guardar esa información: 
 
> Outliers = subset (WHO,WHO$Gross.national.income.per.capita > 10000 & 
WHO$Total.fertility.rate..per.woman > 2.5) 
 
¿Cuántos países son? Son 9 
> nrow (Outliers) 
 [1] 9 
 
¿Cuáles son? 
> Countries = list 
(Outliers$Country,Outliers$Gross.national.income.per.capita,Outliers$Total.fertility.rate..per.wo
man) 
36 La inteligencia artificial con ejemplos. 
> Countries 
[[1]] 
[1] Botswana Equatorial Guinea Gabon Israel Libyan Arab 
Jamahiriya Malaysia Oman Saudi Arabia Venezuela 
 
[[2]] 
[1] 11730 16620 11180 23840 11630 12160 19740 22300 10970 
 
[[3]] 
[1] 3.0 5.4 3.1 2.8 2.8 2.7 3.1 3.5 2.6 
 
Una lista es una estructura de datos, al igual que un vector, ya que se utiliza para almacenar un 
conjunto ordenado de elementos. Mientras que un vector requiere que todos los elementos sean 
del mismo tipo, una lista permite tener elementos de tipos diferentes. Debido a esta flexibilidad, 
las listas se utilizan a menudo para almacenar diversos tipos de datos de entrada y salida, así 
como conjuntos de parámetros de configuración para el aprendizaje de máquina. 
GUARDAR, CARGAR Y DESTRUIR ESTRUCTURAS DE DATOS 
 
Uno de los desafíos en el uso de grandes conjuntos de datos es recopilar, preparar y administrar 
datos provenientes de una variedad de fuentes. En esta sección se destacan las funcionalidades 
básicas para ingresar y extraer datos de un entorno de trabajo en R. 
 
Cuando ha pasado mucho tiempo obteniendo una estructura de datos en el formato que desea, 
no tiene que volver a hacerlo cada vez que reinicie su sesión en R; puede guardar dicha estructura 
en un archivo para utilizarlo posteriormente. Para ello, use el comando save (). La función save () 
escribe una o más estructuras de datos en la ubicación especificada por el parámetro file. Los 
archivos de datos R tienen una extensión RData. 
 
Supongamos que tiene tres objetos llamados x, y, y z que desea guardar en un archivo 
permanente. Ya sea que sus datos sean vectores, factores, listas o data frames, podemos 
guardarlos en un archivo usando el siguiente comando: > save 
(Countries,file="OutliersCountries.RData"). 
 
Si quiere usar ese data frame en su próxima sesión de trabajo, escriba el comando > load 
("OutliersCountries.RData") para recrear todas las estructuras de datos guardadas en este archivo. 
 
 37 
Otro truco, si necesita cerrar rápidamente su sesión de R, puede usar el comando > save.image (), 
con lo cual grabará toda la sesión en un archivo de extensión RData. De manera predeterminada, 
R buscará ese archivo la próxima vez que se inicie, y su sesión se creará tal como la dejó. 
 
Después de trabajar en una sesión de R durante un tiempo, es posible que varias estructuras de 
datos estén acumuladas. La función ls () devuelve un vector de todas las estructuras de datos que 
se encuentran actualmente en memoria. Por ejemplo, si ha realizado todos los ejemplos de este 
capítulo, la función ls () devuelve lo siguiente: 
 
"AllCountryData" "cameraData" "Countries" "Country" "CountryData" "LifeExpectancy" 
"NewCountryData" "Outliers" "Population" "SquareRoot2" "WHO" 
 
R las eliminará automáticamente de la memoria cuando salga de la sesión. No obstante, si se trata 
de estructuras de datos grandes, es posible que desee liberar la memoria antes con el comando 
rm (). En el caso de usar > rm (cameraData), se eliminarán los datos de cameraData

Continuar navegando

Materiales relacionados