0% encontró este documento útil (0 votos)
107 vistas26 páginas

Informe Machine Learning

Este documento describe los fundamentos del machine learning, incluyendo modelos supervisados y no supervisados. Explica conceptos como regresión lineal, regresión logística y máquinas de vectores de soporte, y provee ejemplos de su implementación en Python.

Cargado por

Santi Tapia
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
107 vistas26 páginas

Informe Machine Learning

Este documento describe los fundamentos del machine learning, incluyendo modelos supervisados y no supervisados. Explica conceptos como regresión lineal, regresión logística y máquinas de vectores de soporte, y provee ejemplos de su implementación en Python.

Cargado por

Santi Tapia
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 26

informe-machine-learning

March 5, 2024

0.1 INFORME DE INTRODUCCIÓN AL MACHINE LEARNING


0.1.1 SANTIAGO TAPIA BOLAÑOS
0.1.2 GABRIELLA KATHERINE ESPITIA OSORIO
Analítica de Datos
Facultad de Ingenieria
Fecha: 3/03/2024

Resumen: El presente informe destaca los fundamentos de Machine Learning (ML), un compo-
nente clave de la inteligencia artificial. ML permite a las máquinas aprender patrones a partir de
datos, facilitando la toma de decisiones sin intervención humana directa. Se presentan modelos
supervisados y no supervisados, seguido de un ejemplo de implementación en Python utilizando
regresión lineal con scikit-learn.
Palabras Clave: Machine Leraning, Python, Inteligencia Artificial, Automatización, Algoritmos

Introducción: El Machine Learning, parte esencial de la Inteligencia Artificial, capacita a sistemas


para aprender y mejorar sin programación explícita. Contrario al enfoque clásico, que implica reglas
estáticas, el Machine Learning se basa en la experiencia pasada para construir modelos.
En este proceso, el analista analiza el problema, entrena el algoritmo con datos y selecciona el
modelo adecuado. Algoritmos como Regresión Lineal o Redes Neuronales son fundamentales. La
evaluación del modelo, probándolo sin etiquetas, precede a la producción, donde se analizan los
errores y se asegura que los datos sean significativos.
Machine Learning brilla en problemas complejos y cambiantes, donde las soluciones basadas en re-
glas son ineficaces. Se aplica en aprendizaje supervisado o no supervisado. La clave es proporcionar
datos suficientes para que el algoritmo aprenda.

¿Qué es Machine Learning?


Machine Learning o aprendizaje automático, es un campo de la Inteligencia Artificial que busca
responder a dos interrogantes fundamentales para el desarrollo y la evolución del mundo: ¿Cómo
construir sistemas que mejoren y aprendan a través de la experiencia? Y ¿Cuáles son los prin-

1
cipios estadísticos, computacionales y de la información que fundamentan todos los sistemas de
aprendizaje que desarrollan las personas? (Jordan & Mitchell, 2015).
En esencia, para responder a estos interrogantes, el Machine Learning se encarga de desarrollar
algoritmos capaces de aprender de los datos, también conocidos como experiencia y de mejorar
constantemente su eficiencia sin la necesidad de ser programados explícitamente. Adicionalmente,
se pretende que estos modelos aprendan de manera autónoma, de manera similar a como lo hacen
los seres humanos. En consecuencia, el aprendizaje automático tiene gran potencial y se ha con-
vertido en una herramienta fundamental en diferentes campos de la industria como la medicina, la
educación, los negocios, entre otros.
¿Cuándo usar Machine Learning?
Los buenos escenarios de aprendizaje automático suelen tener las siguientes propiedades comunes:
1. Implican una decisión o evaluación repetidas que quiera automatizar y necesitan resultados
coherentes.
2. Es difícil o imposible describir explícitamente la solución o los criterios que hay detrás de una
decisión.
3. Tiene datos etiquetados o ejemplos existentes en los que puede describir la situación y asig-
narla al resultado correcto.

Para cumplir con el objetivo del Machine Learning a pesar de que no se requiere una programación
explicita, se requiere de un experto en datos que cumpla con una serie de pasos para lograr ejecutar
el proceso de manera exitosa y lograr los objetivos deseados. Es pro esto, que se deben realizar los
siguientes pasos:
Figura 1.
Diagrama de proceso de Machine Learning

Nota: Diagrama realizado con apuntes de clase (Santana,2024).


Modelos de Machine Learning: Hay varios modelos de machine learning, y se pueden clasificar
en diferentes categorías según el tipo de aprendizaje que utilicen.
1. Aprendizaje Supervisado:
• Regresión lineal
• Regresión logística
• Máquinas de vectores de soporte (SVM)
• Árboles de decisión
• Bosques aleatorios
• K-Vecinos más Cercanos (K-NN)
• Redes Neuronales Artificiales (ANN)
2. Aprendizaje No Supervisado:

2
• K-Means
• Agrupamiento jerárquico
• Análisis de componentes principales (PCA)
• Mapas autoorganizados (SOM)
• Algoritmo de Expectation-Maximization (EM)
3. Aprendizaje por Reforzamiento:
• Q-Learning
• SARSA (State-Action-Reward-State-Action)
• Policy Gradient
4. Aprendizaje Semi-Supervisado:
• Mixturas de Gaussiano
• Métodos de propagación de etiquetas
5. Aprendizaje Profundo (Deep Learning):
• Redes Neuronales Convolucionales (CNN)
• Redes Neuronales Recurrentes (RNN)
• Redes Neuronales de Convolución 1D (para secuencias temporales)
• Redes Generativas Adversariales (GAN)
• Redes Neuronales Transformer
#1. Aprendizaje Supervisado El aprendizaje supervisado es un enfoque en aprendizaje au-
tomático donde un modelo se entrena con datos etiquetados. Utiliza ejemplos con respuestas
conocidas para aprender a hacer predicciones o clasificaciones. Este método es común en tareas
como clasificación y regresión.

#####MODELOS DE MACHINE LEARNING DE APRENDIZAJE SUPER-


VISADO:
1. Regresión Lineal:
La regresión lineal es un método utilizado para modelar la relación lineal entre una variable de-
pendiente y una o más variables independientes. En este tipo de modelo la variable 𝑦 siempre es
númerica (Larispardo, 2022). Busca encontrar la mejor línea de ajuste que minimice la suma de los
cuadrados del error, es decir las diferencias entre los valores reales y los predichos. Esta regresión
lineal puede ser simple, en el que solo interfiere una variable 𝑥 independiente o puede ser múltiple,
en la que interfieren 𝑘 variables 𝑥 independientes.
• Aplicaciones de la regresión lineal:
– Salud : Es posible analizar la relación entre la edad y estatura en niños; el efecto de un
medicamento en el estado de salud de un paciente; cómo afecta la dieta y el ejercicio
sobre pacientes con enfermedades cardíacas y a partir de esto crear planes estratégicos
de salubridad y bienestar para la población.
– Agricultura: Se puede analizar cómo la lluvia, temperatura y uso de fertilizantes afecta
e interviene en el rendimiento de los cultivos. Se esta manera se podrá identificar cuál o
cuáles son los fertilizantes apropiados y que manejo se le debe dar al cultivo.

3
– Finanzas : Es posible analizar cómo el crecimiento salarial puede afectar inflación en las
tasas de préstamos hipotecarios; cómo se ven afectadas las utilidades de una empresa
de acuerdo a el área en el que se desempeñan, el lugar de sus operaciones. Así, las
compañias podrán realizar planes para preveer caídas en sus operaciones y al mismo
tiempo incrementar sus ventas.
Código en Python:
[ ]: from sklearn.linear_model import LinearRegression #Importamos la librería␣
↪necesaria.

# Crear un modelo de regresión lineal


modelo = LinearRegression()

# Entrenar el modelo con datos de entrenamiento


modelo.fit(X_entrenamiento, y_entrenamiento)

# Realizar predicciones
predicciones = modelo.predict(X_prueba)

2. Regresión Logística:
La regresión logística se utiliza para problemas de clasificación binaria. Estima la probabilidad de
que una observación pertenezca a cierta clase. (Romero, 2020).
Los dos principales usos del modelo de regresión logística son: • Interpretar las estimaciones de
los parámetros del modelo. • Calcular la probabilidad de que la variable respuesta tome el valor
1 (éxito).
• Aplicaciones de la regresión logística:
– Producción: estimar la probabilidad de fallo o defectos en las piezas que se elaboren en
una planta para luego planificar estrategias que eviten estos fallos en el futuro.
– Medicina: predicciones de la probabilidad de que un paciente sufra o contraiga alguna
enfermedad, para la preparación de planes de prevención de enfermedades.
– Finanzas: evaluar solicitudes para realizar prestamos, créditos, ventas, transacciones
fraudulentas o aprobaciones de seguros.De esta manera las empresas podrán crear planes
sólidos financieros para evitar pérdidas.
– Marketing: realizar predicciones para evaluar si el anuncio creado es verdaderamente
atractivo para el cliente y si va a hacer clic en el mismo cuando lo vea. Así, las compañias
crearán campañas de marketing estratégicas enfocadas en los gustos de los clientes.
(Amazon,s.f)
Código en Python:
[ ]: from sklearn.linear_model import LogisticRegression #Importamos la librería␣
↪necesaria.

# Crear un modelo de regresión logística

4
modelo = LogisticRegression()

# Entrenar el modelo con datos de entrenamiento


modelo.fit(X_entrenamiento, y_entrenamiento)

# Realizar predicciones
predicciones = modelo.predict(X_prueba)

3. Maquinas de Vectores de Soporte (SVM):


Las Máquinas de Vectores de Soporte (SVM,por sus siglas en inglés) buscan encontrar el hiperplano
óptimo que mejor separa las clases en un espacio multidimensional. Este sistema es muy útil tanto
para procesos de regresión como de clasificación (Resendriz, 2006).Este modelo es útil para analizar
datos con gran cantidad de campos predictores y tiene múltiples aplicaciones.
• Aplicaciones de las SVM:
– Gestión de relaciones con los clientes (CRM):se utiliza para predecir el comportamiento
del cliente y personalizar las estrategias de marketing.
– Reconocimiento facial y de otras imágenes:clasifica y reconoce patrones en imágenes para
aplicaciones como seguridad, identificación y análisis de imágenes médicas.
– Detección de fraudes: identifica actividades maliciosas o anómalas en sistemas infor-
máticos para proteger contra ciberataques.
– Reconocimiento de voz: lasifica patrones de señales de audio para transcripción de
voz, sistemas de identificación de locutores y otras aplicaciones de procesamiento de
voz.(IBM, 2021)
Código en Python:
[ ]: from sklearn.svm import SVC #Importamos la librería necesaria.

# Crear un modelo de SVM


modelo = SVC()

# Entrenar el modelo con datos de entrenamiento


modelo.fit(X_entrenamiento, y_entrenamiento)

# Realizar predicciones
predicciones = modelo.predict(X_prueba)

4. Arboles de Decisión:
Los Árboles de Decisión dividen el conjunto de datos en subconjuntos más pequeños basándose
en características específicas, buscando la mejor separación posible. El árbol de decisión es una
estructura formada por ramas y nodos de distintos tipos:
a. Nodos internos representan cada una de las características o atributos a considerar para tomar
una decisión.

5
b. Ramas representan la decisión en función de una determinada condición.
c. Nodos finales representan el resultado de la decisión.( Rivero, 2022).
• Aplicaciones de los árboles de decisión:
– Diagnóstico médico: Se utiliza para analizar síntomas del paciente y sugerir posibles
diagnósticos.
– Aprobación de créditos: Analiza el riesgo crediticio de los solicitantes y tomar decisiones
sobre la aprobación de préstamos.
– Marketing: Segmenta el mercado y determina qué productos o servicios ofrecer a cada
segmento.
– Análisis de riesgos: Se utiliza para evaluar los riesgos de una decisión o proyecto y sugerir
estrategias para mitigarlos.(IBM, s.f.)
Código en Python:
[ ]: from sklearn.tree import DecisionTreeClassifier #Importamos la librería␣
↪necesaria.

# Crear un modelo de árbol de decisión


modelo = DecisionTreeClassifier()

# Entrenar el modelo con datos de entrenamiento


modelo.fit(X_entrenamiento, y_entrenamiento)

# Realizar predicciones
predicciones = modelo.predict(X_prueba)

5. Bosques Aleatorios:
Los Bosques Aleatorios son conjuntos de árboles de decisión que trabajan juntos para mejorar la
precisión y reducir el sobreajuste. En este modelo, se seleccionan aleatoriamente una cantidad de
variables con las que se construyen los árboles individuales, posteriormente se cakcula la clase más
votada y se hace la predicción del modelo.(Medina-Merino & Ñique-Chacón, 2017). Estos modelos
son aptos cuando se tienen una gran cantidad de datos y se requiere un modelo facil de interpretar.
• Aplicaciones de bosques aleatorios:
– Finanzas: evaluación rápida y precisa de clientes con alto riesgo crediticio evaluando
diferentes características.
– Medicina: Análisis de datos para comprender diferentes causas de enfermedades, y así
desarrollar tratamientos y personalizar la atención médica.
– E- comerce: Mejora la experiencia del cliente y aumenta las ventas a través de recomen-
daciones personalizadas, después de estudiar como se comportan estas bajo diferentes
factores.(IBM, s.f)
– Clima: Predicción precisa del clima para la toma de decisiones estratégicas empresas
dedicadas a la agricultura, agronomía u otras actividades de campo.
Código en Python:

6
[ ]: from sklearn.ensemble import RandomForestClassifier #Importamos la librería␣
↪necesaria.

# Crear un modelo de bosque aleatorio


modelo = RandomForestClassifier()

# Entrenar el modelo con datos de entrenamiento


modelo.fit(X_entrenamiento, y_entrenamiento)

# Realizar predicciones
predicciones = modelo.predict(X_prueba)

6. K-Vecinos más Cercanos (K-NN):


El método K-NN clasifica un punto de datos según la mayoría de votos de sus k vecinos más cercanos
en el espacio de características. El desempeño de este modelo depende en gran medida del tamaño
del vecinadario definido como 𝑘 (Álvarez, 2021).Para definir de manera adecuada el tamaño del
vecinadario, existen diferentes métodos en la actualidad que buscan que este párametro sea el más
óptimo.
• Aplicaciones de K-NN:
– Prepocesamiento de datos: Se utiliza para estimar valores faltantes en las bases de datos
y facilitar el procesamiento.
– Motores de recomedación: Se utiliza para recomendar automáticamente a los usuarios
cierto tipo de contenido teniendo en cuenta historiales de compra, visualizaciones y
demás.
– Finanzas: se utiliza para ayudar a las organizaciones y bancos a preever el mercado de
valores, el cambio de las divisas y comercios futuros.
– Reconocimiento de patrones: se utiliza para identificar números escritos a mano que se
puedan encontrar en documentos de correo o encomiendas. (IBM,s.f).
Código en Python:
[ ]: from sklearn.neighbors import KNeighborsClassifier #Importamos la librería␣
↪necesaria.

# Crear un modelo de K-NN


modelo = KNeighborsClassifier()

# Entrenar el modelo con datos de entrenamiento


modelo.fit(X_entrenamiento, y_entrenamiento)

# Realizar predicciones
predicciones = modelo.predict(X_prueba)

7. Redes Neuronales Artificiales (ANN):

7
Las Redes Neuronales Artificiales son modelos inspirados en la estructura del cerebro, que buscan
imitar el comportamiento del mismo, compuestas por capas de nodos interconectados. Es impor-
tante destacar que, el modelo de Redes Neuronales Artificiales puede ser combinado con otro tipo
de modelos para resolver problemas y ejecutrar tareas de clasificación e identificación
• Aplicaciones de las ANN:
– EVI para problemas visuales: Diseñar un modelo de ojo humano para ilustrar problemas
visuales como hipermetropía, miopía y astigmatismo.
– Estratificación de riesgo de mortalidad hospitalaria: Comparar la capacidad de predic-
ción de mortalidad hospitalaria de una RNA con el APACHE II y la regresión logística.
– Cardiología clínica: Aplicar análisis para diagnostocar y hacer tratamientos de enfer-
medades cardíacas.
– Ingeniería neuromórfica: Diseñar sistemas artificiales de computación inspirados en el
sistema nervioso biológico.(Rivas & Mazón, 2017).
Código en Python:
[ ]: from sklearn.neural_network import MLPClassifier #Importamos la librería␣
↪necesaria.

# Crear un modelo de red neuronal


modelo = MLPClassifier()

# Entrenar el modelo con datos de entrenamiento


modelo.fit(X_entrenamiento, y_entrenamiento)

# Realizar predicciones
predicciones = modelo.predict(X_prueba)

#Resumen

Descripción Algoritmo
Utiliza ejemplos etiquetados para predecir resultados. -
Regresión Lineal Aprendizaje Supervisado
- Modelo que establece una relación lineal entre variables de Regresión lineal
entrada y salida.
Regresión Logística Aprendizaje Supervisado
- Utilizada para problemas de clasificación binaria, estima la Regresión logística
probabilidad de pertenencia a una clase.
Máquinas de Vectores de Soporte (SVM) Aprendizaje Supervisado
- Busca el hiperplano que mejor separa las clases en un Máquinas de vectores de
espacio de alta dimensión. soporte (SVM)
Árboles de Decisión Aprendizaje Supervisado
- Estructura de árbol que toma decisiones basadas en Árboles de decisión
condiciones en nodos.
Bosques Aleatorios Aprendizaje Supervisado

8
Descripción Algoritmo
- Conjunto de árboles de decisión que mejora la precisión y Bosques aleatorios
evita sobreajuste.
K-Vecinos más Cercanos (K-NN) Aprendizaje Supervisado
- Asigna una etiqueta según la mayoría de las k instancias K-Vecinos más Cercanos
más cercanas en el espacio de características. (K-NN)
Redes Neuronales Artificiales (ANN) Aprendizaje Supervisado
- Modelo inspirado en la estructura y función del cerebro, Redes Neuronales Artificiales
utilizado para aprender patrones complejos. (ANN)

#2. Aprendizaje No Supervisado


El aprendizaje no supervisado es un enfoque en el aprendizaje automático donde el modelo se
entrena con datos no etiquetados. A diferencia del aprendizaje supervisado, no se proporcionan
respuestas correctas durante el entrenamiento. En lugar de eso, el modelo busca patrones o estruc-
turas inherentes en los datos por sí mismo. Este enfoque es utilizado para descubrir la estructura
subyacente o relaciones en conjuntos de datos sin etiquetas previas, como agrupamiento (clustering)
o reducción de dimensionalidad.

#####MODELOS DE MACHINE LEARNING DE APRENDIZAJE NO SUPER-


VISADO:
1. K-Means:
El algoritmo K-Means agrupa los datos en k grupos basándose en similitudes, donde k es un número
predefinido. Este modelo, representa cada uno de los grupos por la media de sus puntos y permite
reconcer una aproximación de las características de cada grupo. (González et al.(2017))
• Aplicaciones de K-means:
– Segmentación de clientes: Agrupar clientes con características similares para realizar
estrategias de marketing efectivas.
– Clasificación de texto: Clasificar documentos o artículos en categorías según su contenido
o carcaterísticas puntuales.
– Detección de anomalías: Identificar patrones anormales en un conjunto de datos y señalar
posibles problemas en fases de preprocesamiento de datos.
– Redes sociales: Permite agrupar usuarios en comunidades con intereses y comportamien-
tos compartidos (Ramírez, 2023).
Código en Python:
[ ]: from sklearn.cluster import KMeans #Importamos la librería necesaria.

# Crear un modelo K-Means con 3 clusters


modelo = KMeans(n_clusters=3)

# Entrenar el modelo con datos de entrada


modelo.fit(datos)

9
# Obtener las etiquetas de cluster para cada punto de datos
etiquetas = modelo.labels_

2. Agrupamiento Jerárquico:
El agrupamiento jerárquico construye una jerarquía de clusters, representada comúnmente en
un dendrograma. Este método clasifica en subconjuntos cada vez mayores hasta que se todos
pertenecen a un mismo conjunto por lo tanto, no representa el agrupamiento sino las relaciones de
proximidad entre estos subconjunto
• Aplicaciones del agrupamiento jerárquico:
– Agrupar genes en redes de coexpresión: Se utiliza para identificar genes que se expresan
de manera similar en diferentes condiciones o tipos de células.
– Segmentar imágenes: Se utiliza para dividir una imagen en diferentes regiones con car-
acterísticas similares.
– Clasificar clientes en marketing: Se utiliza para identificar grupos de clientes con necesi-
dades o comportamientos similares.
– Identificar especies en biología: Se utiliza para agrupar organismos en diferentes especies
en función de sus características físicas o genéticas.- Optimizar la producción en la in-
dustria: Se utiliza para identificar grupos de productos con características similares para
optimizar la producción y el marketing. (Rokach & Maimon, 2010)
Código en Python:
[ ]: from scipy.cluster.hierarchy import linkage, dendrogram #Importamos las␣
↪librerías necesarias.

import matplotlib.pyplot as plt

# Calcular la matriz de enlace jerárquico


enlace = linkage(datos, method='ward')

# Crear un dendrograma
dendrogram(enlace)

# Mostrar el dendrograma
plt.show()

3. Análisis de Componentes Principales (PCA):


PCA reduce la dimensionalidad de los datos al proyectarlos en un espacio de menor dimensión,
manteniendo la mayor varianza posible. Este método, aprovecha las relaciones existentes entre las
variables para eliminar el problema de la colinealidad (Gonzalez & Taborda, 2015).
• Aplicaciones de PCA:
– Reducción de dimensionalidad: transforma un conjunto de datos con variables correla-
cionadas en un conjunto de variables no correlacionadas maneteniendo las características

10
más importantes.
– Visualización de datos: Los componentes principales se pueden utilizar para crear gráfi-
cos que representen la estructura de los datos en un espacio de menor dimensionalidad.
– Identificación de patrones: El ACP puede ayudar a identificar patrones y relaciones entre
las variables de un conjunto de datos.
– Selección de variables: Los componentes principales se pueden utilizar para seleccionar
las variables más importantes para un análisis posterior.
Código en Python:
[ ]: from sklearn.decomposition import PCA #Importamos la librería necesaria.

# Crear un modelo PCA con 2 componentes


modelo = PCA(n_components=2)

# Aplicar PCA a los datos


datos_reducidos = modelo.fit_transform(datos)

4. Mapas Autoorganizados (SOM):


SOM es una red neuronal no supervisada que mapea datos de alta dimensión en una cuadrícula
bidimensional, preservando las relaciones topológicas. Este método, clasifica valores similares en la
misma categoría que por tanto deben activar la misma neurona de salida, estas categorías deben
ser creadas por el mismo modelo
• Aplicaciones de SOM:
– Detección de fallos: Los SOM se pueden utilizar para detectar fallos en los vehículos
antes de que ocurran.
– Visualización de datos: Los SOM se pueden utilizar para crear mapas bidimensionales
que representen la estructura de los datos en un espacio de alta dimensionalidad.
– Optimización de la producción: Los SOM se pueden utilizar para optimizar la producción
de vehículos y reducir los costes (Rodríguez, 2020).
Código en Python:
[ ]: from minisom import MiniSom #Importamos la librería necesaria.

# Crear un mapa SOM con una cuadrícula de 5x5


som = MiniSom(5, 5, input_len=datos.shape[1])

# Inicializar y entrenar el mapa SOM


som.random_weights_init(datos)
som.train_random(datos, num_iteration=100)

5. Algoritmo de Expectation-Maximization (EM):


El algoritmo EM es utilizado para estimar parámetros en modelos estadísticos cuando parte de la
información es no observada, los datos están incompletos o faltan puntos en los datos que se van a

11
trabajar.
• Aplicaciones de EM:
– Segmentación de imágenes - Medicina : Los modelos EM se pueden utilizar para seg-
mentar imágenes en diferentes regiones, como primer plano y fondo. Un ejemplo es la
segmentación de imágenes médicas para identificar tumores u otro tipo de enfermedades.
– Análisis de datos financieros: Los modelos EM se pueden utilizar para analizar datos
financieros, como los precios de las acciones, y para identificar patrones en el mercado
de divisas por ejemplo.
– Prealistamiento de datos: Es posible utilizar este tipo de modelos EM para llenar
los datos no observados en el conjunto de datos y luego facilitar su análisis y proce-
samiento.(Benites, 2022)
Código en Python:
[ ]: from sklearn.mixture import GaussianMixture #Importamos la librería necesaria.

# Crear un modelo de mezcla gaussiana con 2 componentes


modelo = GaussianMixture(n_components=2)

# Ajustar el modelo a los datos


modelo.fit(datos)

#Resumen

Descripción Algoritmo
Descubre patrones sin etiquetas, útil en exploración de -
datos.
K-Means Aprendizaje No Supervisado
- Agrupa datos en k clústeres basados en similitudes en K-Means
características.
Agrupamiento Jerárquico Aprendizaje No Supervisado
- Construye una jerarquía de clústeres de manera recursiva. Agrupamiento jerárquico
Análisis de Componentes Principales (PCA) Aprendizaje No Supervisado
- Transforma variables originales en un nuevo conjunto de Análisis de Componentes
variables no correlacionadas (componentes principales). Principales (PCA)
Mapas Autoorganizados (SOM) Aprendizaje No Supervisado
- Red neuronal que asigna datos a ubicaciones en un mapa Mapas Autoorganizados
bidimensional. (SOM)
Algoritmo de Expectation-Maximization (EM) Aprendizaje No Supervisado
- Algoritmo iterativo utilizado para encontrar parámetros en Algoritmo de
modelos estadísticos cuando se tienen datos incompletos o Expectation-Maximization
variables latentes. (EM)

#3. Aprendizaje por Reforzamiento

12
El aprendizaje por refuerzo es un enfoque de aprendizaje automático donde un agente aprende a
tomar decisiones en un entorno para maximizar recompensas, sin ejemplos etiquetados. Se utiliza
en situaciones donde las acciones afectan al entorno y busca aprender una política óptima a través
de la interacción. Ejemplos incluyen juegos y robótica.

####MODELOS DE MACHINE LEARNING DE APRENDIZAJE PRO RE-


FORZAMIENTO:
1. Q- Learning:
Q-Learning es un algoritmo de aprendizaje por refuerzo que busca aprender la función Q, que
evalúa la calidad de una acción en un estado específico. El objetivo en este modelo, es maximizar
la recompensa, por lo tanto, cuanto mayor sea el valor esperado registrado en Q., mejor creemos
que será ejecutada esa acción.
• Aplicaciones de Q-Learning:
– Control de semáforos: Permite realizar una gestión óptima de los semáforos en función
del estado del táfico y sus variaciones en el día.
– Refrigeración de centros de datos: Se aplica el método Q-Learning para encontrar el
porcentaje de energía necesaria para refrigerar los servidores.
– Carros autónomos: Gestionan rutas según el táfico y optimiza diferentes tareas en los
carros para que se realicen de la manera más eficiente posible.
– Gaming: Los desarrolladores utilizan ese sistema para reducir la cantidad de errores en
los juegos(Monroy, 2023).
Código en Python:
[ ]: import numpy as np #Importamos la librería necesaria.

# Inicializar la tabla Q con valores arbitrarios


Q = np.zeros([num_estados, num_acciones])

# Parámetros del algoritmo


alfa = 0.1
gamma = 0.9
epsilon = 0.1

# Algoritmo Q-Learning
for episodio in range(num_episodios):
estado = estado_inicial
while no_terminal:
# Elegir una acción con estrategia epsilon-greedy
if np.random.rand() < epsilon:
accion = accion_aleatoria()
else:
accion = np.argmax(Q[estado, :])

13
# Realizar la acción y observar el nuevo estado y la recompensa
nuevo_estado, recompensa, no_terminal = ejecutar_accion(accion)

# Actualizar la tabla Q
Q[estado, accion] = Q[estado, accion] + alfa * (recompensa + gamma * np.
↪max(Q[nuevo_estado, :]) - Q[estado, accion])

estado = nuevo_estado

2. SARSA (State-Action-Reward-State-Action):
SARSA es otro algoritmo de aprendizaje por reforzamiento que ajusta los valores Q, teniendo en
cuenta la acción siguiente que el agente realmente elige.Es un algoritmo donde, en el estado actual
(S), se realiza una acción (A) y el agente obtiene una recompensa (R), termina en el siguiente estado
(S1) y realiza una acción (A1) en S1. En el algoritmo SARSA, el valor Q se actualiza teniendo en
cuenta la acción A1 realizada en el estado S1. (Gautam, 2023)
• Aplicaciones SARSA:
– Robótica: El robot aprende a navegar y manipular objetos mediante la exploración del
entorno y la interacción con objetos. -Procesamiento del lenguaje natural: El modelo
aprende a analizar sentimientos, traducir idiomas y resumir textos mediante el análisis
de grandes cantidades de datos textuales.
– Telecomunicaciones: El modelo aprende a optimizar redes y gestionar recursos mediante
el análisis de datos de tráfico y rendimiento.
– Reconocimiento facil: El modelo aprende a detectar objetos, reconocer rostros y segmen-
tar imágenes mediante el análisis de imágenes y videos.
Código en Python:
[ ]: import numpy as np #Importamos la librería necesaria.

# Inicializar la tabla Q con valores arbitrarios


Q = np.zeros([num_estados, num_acciones])

# Parámetros del algoritmo


alfa = 0.1
gamma = 0.9
epsilon = 0.1

# Algoritmo SARSA
for episodio in range(num_episodios):
estado = estado_inicial
accion = accion_inicial
while no_terminal:
# Elegir una acción con estrategia epsilon-greedy
if np.random.rand() < epsilon:
nueva_accion = accion_aleatoria()

14
else:
nueva_accion = np.argmax(Q[estado, :])

# Realizar la acción y observar el nuevo estado y la recompensa


nuevo_estado, recompensa, no_terminal = ejecutar_accion(nueva_accion)

# Actualizar la tabla Q
Q[estado, accion] = Q[estado, accion] + alfa * (recompensa + gamma *␣
↪Q[nuevo_estado, nueva_accion] - Q[estado, accion])

estado = nuevo_estado
accion = nueva_accion

3. Policy Gradient:
Policy Gradient es un enfoque de aprendizaje por reforzamiento que optimiza directamente la
política del agente, buscando maximizar la recompensa esperada.El objetivo principal es minimizar
lo errores entre los resultados reales y los previstos anterioirmente.
• Aplicaciones de Policy Gradient:
– Entrenamiento de un agente en un juego: entrenar a un agente en un juego, ajustando
los parámetros de la política para maximizar las recompensas.
– Seguridad cibernética: Sistemas de detección de intrusos aprenden a identificar y pre-
venir ataques.
– Energía: Sistemas de gestión energética optimizan el consumo de energía para reducir
costes y emisiones.
– Fabricación: Robots industriales aprenden a realizar tareas de fabricación con mayor
precisión y eficiencia (IBM, s.f).
Código en Python:
[ ]: import numpy as np #Importamos la librería necesaria.
import tensorflow as tf

# Definir la estructura de la red neuronal


modelo = tf.keras.Sequential([
tf.keras.layers.Dense(units=128, activation='relu',␣
↪input_shape=(num_estados,)),

tf.keras.layers.Dense(units=num_acciones, activation='softmax')
])

# Compilar el modelo con el optimizador de Policy Gradient


modelo.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.01),␣
↪loss='categorical_crossentropy')

# Algoritmo Policy Gradient


for episodio in range(num_episodios):

15
estados, acciones, recompensas = recopilar_datos_entrenamiento()

# Convertir las acciones en one-hot encoding


acciones_one_hot = tf.keras.utils.to_categorical(acciones,␣
↪num_classes=num_acciones)

# Calcular la recompensa acumulativa descontada


recompensas_acumulativas = calcular_recompensas_acumulativas(recompensas,␣
↪gamma)

# Multiplicar la recompensa acumulativa por las acciones tomadas


recompensas_ponderadas = recompensas_acumulativas * acciones_one_hot

# Entrenar el modelo usando el gradiente de la política


modelo.train_on_batch(estados, recompensas_ponderadas)

#Resumen

Descripción Algoritmo
Aprende acciones para maximizar recompensas en -
entornos dinámicos.
Q-Learning Aprendizaje por Reforzamiento
- Aprende una función Q que evalúa la acción óptima Q-Learning
para un estado en función de las recompensas pasadas.
SARSA (State-Action-Reward-State-Action) Aprendizaje por Reforzamiento
- Actualiza la función Q teniendo en cuenta la política SARSA (State-Action-Reward-
actual y las recompensas observadas. State-Action)
Policy Gradient Aprendizaje por Reforzamiento
- Optimiza directamente la política, aprendiendo Policy Gradient
acciones que maximizan la recompensa esperada.

#4. Aprendizaje Semi-Supervisado


El aprendizaje semi-supervisado es un enfoque en el aprendizaje automático que combina datos
etiquetados y no etiquetados durante el entrenamiento de un modelo. A diferencia del aprendizaje
supervisado, donde se utilizan solo datos etiquetados, y del aprendizaje no supervisado, que trabaja
solo con datos no etiquetados, el aprendizaje semi-supervisado busca aprovechar ambos tipos de
datos. Esto es útil cuando obtener etiquetas para todo el conjunto de datos es costoso o laborioso.
En el aprendizaje semi-supervisado, el modelo se entrena inicialmente con datos etiquetados y luego
utiliza información de los datos no etiquetados para mejorar su rendimiento. Este enfoque puede
mejorar la generalización del modelo al proporcionarle una comprensión más amplia del espacio de
características.

16
#####MODELOS DE MACHINE LEARNING DE APRENDIZAJE SEMI-
SUPERVISADO:
1. Mixturas de Gaussiano:
Las Mixturas de Gaussiano asumen que los datos provienen de una combinación de varias distribu-
ciones gaussianas, permitiendo modelar la estructura subyacente de los datos.
• Aplicaciones de Mixtura de Gaussiano:
– Conjuntos de Datos desbalanceados:clasifican datos en conjuntos desbalanceados, donde
hay pocas muestras etiquetadas y muchas no etiquetadas.
– Modelado de densidad de probabilidad: Es una herramienta fundamental para la esti-
mación de riesgos y la toma de decisiones.
– Agrupamiento: Es una herramienta poderosa para la segmentación de mercado y el
análisis de datos.(MATLAB & Simulink, s.f.)
Código en Python:
[ ]: from sklearn.mixture import GaussianMixture #Importamos las librerías␣
↪necesarias.

from sklearn.model_selection import train_test_split


import numpy as np

# Dividir el conjunto de datos en datos etiquetados y no etiquetados


datos_etiquetados, datos_no_etiquetados = train_test_split(datos, test_size=0.
↪8, random_state=42)

# Crear un modelo de Mixturas de Gaussiano


modelo = GaussianMixture(n_components=num_clases, covariance_type='full')

# Entrenar el modelo con datos etiquetados


modelo.fit(datos_etiquetados)

# Obtener etiquetas para datos no etiquetados


etiquetas_no_etiquetados = modelo.predict(datos_no_etiquetados)

2. Métodos de Propagación de Etiquetas:


Los Métodos de Propagación de Etiquetas aprovechan la información contenida en un conjunto
pequeño de datos etiquetados para propagar etiquetas a datos no etiquetados. Después de varias
iteraciones, las etiquetas tienden a ser dominantes en comunidades muy conectadas y tienen prob-
lemas para cruzar a otras regiones del gráfico que estén menos conectadas(ArcGIS Pro, s.f.).
• Aplicaciones de métodos de propagación de etiquetas:
– Detección de comunidades en redes sociales: Se pueden usar para detectar comunidades
de usuarios en redes sociales a partir de las interacciones entre ellos.
– Recomendación de productos: Se pueden usar para recomendar productos a los usuarios
a partir de sus compras y calificaciones anteriores.

17
– Detección de fraudes: Se pueden usar para detectar transacciones fraudulentas a partir
de un conjunto de datos de transacciones normales.

– Análisis de sentimientos: Se pueden usar para analizar el sentimiento de los tweets a


partir de un conjunto de tweets con etiquetas de sentimiento.
Código en Python:
[ ]: from sklearn.semi_supervised import LabelPropagation #Importamos las librerías␣
↪necesarias.

from sklearn.feature_extraction.text import TfidfVectorizer


from sklearn.model_selection import train_test_split

# Dividir el conjunto de datos en datos etiquetados y no etiquetados


datos_etiquetados, datos_no_etiquetados = train_test_split(datos, test_size=0.
↪8, random_state=42)

# Vectorizar los datos de texto


vectorizer = TfidfVectorizer()
X_etiquetados = vectorizer.fit_transform(datos_etiquetados)
X_no_etiquetados = vectorizer.transform(datos_no_etiquetados)

# Crear un modelo de Propagación de Etiquetas


modelo = LabelPropagation(kernel='knn', n_neighbors=5)

# Entrenar el modelo con datos etiquetados


modelo.fit(X_etiquetados, etiquetas_etiquetados)

# Obtener etiquetas para datos no etiquetados


etiquetas_no_etiquetados = modelo.predict(X_no_etiquetados)

#Resumen

Descripción Método
Combina datos etiquetados y no etiquetados para mejorar -
rendimiento.
Mixturas de Gaussiano Aprendizaje Semi-Supervisado
- Modela la distribución de datos como una mezcla de Mixturas de Gaussiano
varias distribuciones gaussianas.
Métodos de Propagación de Etiquetas Aprendizaje Semi-Supervisado
- Propaga etiquetas desde datos etiquetados a datos no Métodos de Propagación de
etiquetados en función de similitudes. Etiquetas

#5. Aprendizaje Profundo (Deep Learning):


El aprendizaje profundo, también conocido como deep learning, es una rama del aprendizaje au-

18
tomático que utiliza redes neuronales profundas para aprender y realizar tareas complejas. Estas
redes, llamadas redes neuronales profundas, contienen capas múltiples que aprenden representa-
ciones jerárquicas de los datos. El aprendizaje profundo ha demostrado ser eficaz en áreas como
reconocimiento de imágenes, procesamiento del lenguaje natural y juegos, logrando avances signi-
ficativos en la resolución de problemas complejos.

#####MODELOS DE MACHINE LEARNING DE APRENDIZAJE PROFUNDO:


1. Redes Neuronales Convolucionales (CNN):
Las Redes Neuronales Convolucionales se especializan en procesar datos con una estructura de
cuadrícula, como imágenes, utilizando capas de convolución para extraer características. Estas
redes están compuestas de capas de nodos, que contienen una capa de entrada, una o más capas
ocultas y una capa de salida.Si la salida de cualquier nodo individual está por encima del valor del
umbral especificado, ese nodo se activa y envía datos a la siguiente capa de la red
• Aplicaciones de CNN:
– Robótica: Guia robots en tareas de navegación, manipulación de objetos y re-
conocimiento del entorno.
– Procesamiento del lenguaje natural: Ayuda a las máquinas a entender el lenguaje hu-
mano a través del análisis de imágenes y texto.
– Generación de imágenes: Puede imágenes realistas a partir de descripciones textuales.
-Superresolución: Mejora la calidad de imágenes de baja resolución a través de técnicas
de aprendizaje profundo(IBM, s.f).
Código en Python:
[ ]: from tensorflow.keras import Sequential #Importamos las librerías necesarias.
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# Crear un modelo CNN básico


modelo = Sequential()
modelo.add(Conv2D(32, (3, 3), activation='relu', input_shape=(img_alto,␣
↪img_ancho, canales)))

modelo.add(MaxPooling2D((2, 2)))
modelo.add(Conv2D(64, (3, 3), activation='relu'))
modelo.add(MaxPooling2D((2, 2)))
modelo.add(Flatten())
modelo.add(Dense(128, activation='relu'))
modelo.add(Dense(num_clases, activation='softmax'))

# Compilar y entrenar el modelo con datos de imágenes


modelo.compile(optimizer='adam', loss='categorical_crossentropy',␣
↪metrics=['accuracy'])

modelo.fit(datos_entrenamiento, etiquetas_entrenamiento, epochs=num_epocas,␣


↪validation_data=(datos_validacion, etiquetas_validacion))

2. Redes Neuronales Recurrentes (RNN):

19
Las Redes Neuronales Recurrentes son aptas para datos secuenciales, permitiendo la retroali-
mentación de información en capas. Este modelo, está entrenado para procesar y convertir una
entrada de datos secuencial en una salida de datos secuencial específica (amazon, s.f).
• Aplicaciones de RNN:
– Reconocimiento de voz: RNNs transcriben audio a texto, analizando la secuencia de
sonidos.
– Predicción de series de tiempo: RNNs predicen valores futuros en series de tiempo, como
el clima o el tráfico, analizando datos pasados.
– Asistentes virtuales: RNNs potencian a asistentes virtuales como Siri o Alexa, permi-
tiéndoles responder a preguntas y seguir conversaciones.
– Análisis de datos financieros: RNNs predicen tendencias en el mercado financiero anal-
izando secuencias de datos históricos.
Código en Python:
[ ]: from tensorflow.keras import Sequential #Importamos las librerías necesarias.
from tensorflow.keras.layers import SimpleRNN, Dense

# Crear un modelo RNN básico


modelo = Sequential()
modelo.add(SimpleRNN(50, activation='relu', input_shape=(pasos_temporales,␣
↪características)))

modelo.add(Dense(1))

# Compilar y entrenar el modelo con datos de series temporales


modelo.compile(optimizer='adam', loss='mse')
modelo.fit(datos_entrenamiento, etiquetas_entrenamiento, epochs=num_epocas,␣
↪validation_data=(datos_validacion, etiquetas_validacion))

3. Redes Neuronales de Convolución 1D (para secuencias temporales):


Las Redes Neuronales de Convolución 1D extienden el concepto de convolución a datos unidimen-
sionales, como series temporales.Estas redes extraen características clave de los datos de entrada, lo
que las hace muy efectivas en tareas de visión por computadora, como el reconocimiento de objetos,
segmentación de imágenes y detección de patrones visuales
• Aplicaciones de redes neuronales de Convolución:
– Vehículos autónomos: para detección y clasificación visual de objetos en tiempo real.
– Búsqueda visual: hallando y categorizando imágenes y videos según su contenido.
– Reconocimiento facial: verificando identidades en sistemas de seguridad y redes sociales.
– Procesamiento de audio y lenguaje natural mediante CNN 1D (Bogado, 2023).
Código en Python:
[ ]: from tensorflow.keras import Sequential #Importamos las librerías necesarias.
from tensorflow.keras.layers import Conv1D, GlobalMaxPooling1D, Dense, Embedding

# Crear un modelo de Convolución 1D para análisis de sentimientos

20
modelo = Sequential()
modelo.add(Embedding(tamaño_vocabulario, dim_embedding,␣
↪input_length=longitud_secuencia))

modelo.add(Conv1D(128, 5, activation='relu'))
modelo.add(GlobalMaxPooling1D())
modelo.add(Dense(1, activation='sigmoid'))

# Compilar y entrenar el modelo con datos de análisis de sentimientos


modelo.compile(optimizer='adam', loss='binary_crossentropy',␣
↪metrics=['accuracy'])

modelo.fit(datos_entrenamiento, etiquetas_entrenamiento, epochs=num_epocas,␣


↪validation_data=(datos_validacion, etiquetas_validacion))

4. Redes Generativas Adversariales (GAN):


Las Redes Generativas Adversariales consisten en un generador y un discriminador que compiten
entre sí, aprendiendo a generar datos realistas. La red generativa va produciendo muestras de
aquello que queramos crear (imágenes, textos, sonidos…) y la red discriminadora decide si cada
instancia de datos que revisa pertenece o no al conjunto de datos de entrenamiento (Merino, 2019).
• Aplicaciones de redes GAN:
– Generación de imágenes: Crear imágenes realistas a partir de descripciones textuales o
bocetos.
– Edición de imágenes: Modificar imágenes de forma creativa, como cambiar el color
de pelo o agregar objetos. -Superresolución: Mejorar la calidad de imágenes de baja
resolución.-Traducción de imágenes: Traducir el contenido de una imagen a otro estilo
o género.
– Videojuegos: Desarrollar personajes, escenarios y objetos para videojuegos.
– Realidad virtual: Crear experiencias de realidad virtual más inmersivas y realistas. Esta
es una de las redes más complejas y utulizadas en las últimas decadas.
Código en Python:
[ ]: from tensorflow.keras import Sequential #Importamos las librerías necesarias.
from tensorflow.keras.layers import Dense, Reshape, Flatten
from tensorflow.keras.optimizers import Adam

# Crear un modelo GAN básico


modelo_generador = Sequential()
modelo_generador.add(Dense(100, input_shape=(dim_entrada,)))
modelo_generador.add(Dense(784, activation='sigmoid'))
modelo_generador.add(Reshape((28, 28, 1)))

modelo_discriminador = Sequential()
modelo_discriminador.add(Flatten(input_shape=(28, 28, 1)))
modelo_discriminador.add(Dense(1, activation='sigmoid'))

21
modelo_gan = Sequential()
modelo_gan.add(modelo_generador)
modelo_gan.add(modelo_discriminador)

# Compilar y entrenar el modelo GAN para generación de imágenes


modelo_generador.compile(optimizer=Adam(learning_rate=0.0002, beta_1=0.5),␣
↪loss='binary_crossentropy')

modelo_discriminador.compile(optimizer=Adam(learning_rate=0.

#Resumen

Descripción Red Neuronal


Modela patrones complejos y representa datos en -
múltiples capas.
Redes Neuronales Convolucionales (CNN) Aprendizaje Profundo
- Diseñadas para procesar datos estructurados en Redes Neuronales Convolucionales
mallas (imágenes). (CNN)
Redes Neuronales Recurrentes (RNN) Aprendizaje Profundo
- Adecuadas para datos secuenciales, mantienen Redes Neuronales Recurrentes (RNN)
una memoria interna.
Redes Neuronales de Convolución 1D (para Aprendizaje Profundo
secuencias temporales)
- Aplican convoluciones en una dimensión, útiles Redes Neuronales de Convolución 1D
para secuencias temporales.
Redes Generativas Adversariales (GAN) Aprendizaje Profundo
- Consiste en un generador y un discriminador, Redes Generativas Adversariales (GAN)
utilizadas para generar datos realistas.
Redes Neuronales Transformer Aprendizaje Profundo
- Basadas en mecanismos de atención, utilizadas en Redes Neuronales Transformer
tareas de procesamiento de lenguaje natural.

#TABLA DE RESUMEN DE CADA CATEGORIA

Aprendizaje Aprendizaje Aprendizaje


Aprendizaje No por Aprendizaje Profundo (Deep
Supervisado Supervisado ReforzamientoSemi-Supervisado
Característica Learning)
Ejemplos Clasificación, Agrupamiento,Juegos, Traducción Reconocimiento
de Regresión Reducción Control de Automática, de Imágenes,
Aplicaciones de Robots Clasificación con Procesamiento
Dimensionalidad datos parcialmente de Lenguaje
etiquetados Natural

22
Aprendizaje Aprendizaje Aprendizaje
Aprendizaje No por Aprendizaje Profundo (Deep
Característica
Supervisado Supervisado ReforzamientoSemi-Supervisado Learning)
Tipo de Datos Datos no Secuencias Combinación de Datos
Datos etiquetados etiquetados de datos etiquetados y complejos, a
Utilizados acciones y no etiquetados menudo no
recompensas estructurados
Objetivo Predecir Descubrir Aprender Utilizar datos Modelar
Principal la salida patrones y acciones a etiquetados y no patrones
correcta estructuras tomar en etiquetados para complejos y
basada en en datos no un mejorar el representaciones
ejemplos etiquetados entorno rendimiento de datos
etiquetados para
maximizar
recompensas
Supervisión Etiquetas Sin Feedback Algunos datos Requiere
de Datos proporcionadas
etiquetas basado en etiquetados, otros grandes
recompensas no etiquetados cantidades de
datos
etiquetados
Ejemplos Regresión K-Means, Q- Métodos de Redes
de Algo- Lineal, Análisis de Learning, propagación de Neuronales
ritmos Máquinas Compo- Algorit- etiquetas, Modelos Convolucionales,
Comunes de Soporte nentes mos de Generativos Redes
Vectorial Principales Política Neuronales
Recurrentes
Desafíos Necesidad Dificultad Exploración Dificultad en la Necesidad de
Comunes de datos en la inter- y ex- obtención de datos grandes
etiqueta- pretación plotación etiquetados, conjuntos de
dos, de bal- Rendimiento datos y recursos
Sensibili-resultados, anceadas, variable con datos computacionales
dad al Dependen- Problema no etiquetados
ruido en cia de la de crédito
los datos calidad de asignado
los datos
Ejemplos ReconocimientoAgrupamientoControl de Clasificación de Reconocimiento
de facial, de clientes, juegos, documentos, de voz,
Implementación
Clasifi- Análisis de Robótica Etiquetado de Traducción
cación de redes autónoma imágenes con datos automática
correos sociales parcialmente avanzada
electrónicos etiquetados

#Conclusión:
La variedad de algoritmos y modelos presentados proporciona una amplia gama de opciones para
abordar diferentes tipos de problemas, desde la clasificación y regresión hasta la generación de
contenido y el aprendizaje secuencial. La clave para seleccionar el enfoque adecuado radica en

23
entender la naturaleza del problema, la disponibilidad de datos y los objetivos específicos de la
tarea. Cada categoría de aprendizaje ofrece soluciones especializadas, y la combinación estratégica
de métodos puede llevar a resultados más robustos y efectivos. En este contexto, la experimentación
y la adaptación a las características particulares de cada problema son esenciales. Además, la
comprensión profunda de los algoritmos, sus parámetros y el impacto de las decisiones de diseño
son fundamentales para el éxito en la implementación de soluciones de aprendizaje automático.
REFERENCIAS
• Reinforcement Q-Learning from Scratch in Python with OpenAI Gym. (n.d.).
https://www.learndatasci.com/tutorials/reinforcement-q-learning-scratch-python-openai-
gym/
• Selvaraj, N. (2022, September 16). 8 machine learning models explained
in 20 minutes. https://www.datacamp.com/blog/machine-learning-models-
explained?utm_source=google&utm_medium=paid_search&utm_campaignid=21057859163&utm_adgrou
517318242147:dsa-2222697810918&utm_loc_interest_ms=&utm_loc_physical_ms=1029289&utm_conten
Learning&utm_campaign=230119_1-seadsa tofu_2-b2c_3-es-lang-en_4-prc_5-na_6-na_7-
le_8-pdsh-go_9-na_10-na_11-na-feb24&gad_source=1&gclid=CjwKCAiA3JCvBhA8EiwA4kujZmJZxl8aX
V4SWQ6kbdzuSt2hy-HeB5fyGkMQcxoC-7gQAvD_BwE
• Zambrano, R. (2023, April 21). Modelos de Machine Learning. OpenWebinars.net.
https://openwebinars.net/blog/modelos-de-machine-learning/
• GraphEverywhere, E. (2022, September 21). Machine Learning | Qué es, tipos, ejemplos
y cómo implementarlo. GraphEverywhere. https://www.grapheverywhere.com/machine-
learning-que-es-tipos-ejemplos-y-como-implementarlo/
• De Los Santos, P. R. (2023, June 29). Tipos de aprendizaje en Machine Learning: supervisado
y no supervisado. Telefónica Tech. https://telefonicatech.com/blog/que-algoritmo-elegir-en-
ml-aprendizaje
• Keyrus. (2023, June 21). Machine Learning y sus modelos lineales “For Dummies.”
https://es.linkedin.com/pulse/machine-learning-y-sus-modelos-lineales-dummies-keyrus
• QuinnRadich. (2023, November 7). ¿Qués es un modelo de aprendizaje automático?
Microsoft Learn. https://learn.microsoft.com/es-es/windows/ai/windows-ml/what-is-a-
machine-learning-model
• Machine Learning: Aplicado a Python y Data Science. (n.d.). Udemy.
https://www.udemy.com/course/machine-learning-aplicado-a-python-y-data-
science/?utm_source=adwords&utm_medium=udemyads&utm_campaign=DSA-
WebIndex_la.ES_cc.LATAM&utm_term=._ag_120316893258._ad_504879908808_._kw_._de_c._dm_.
93451758763_._li_1029289_._pd.&matchtype=&gad_source=1&gclid=CjwKCAiA3JCvBhA8EiwA4
• Machine Learning (en Python), con ejemplos - Jarroba. (2016, October 30). Jarroba.
https://jarroba.com/machine-learning-python-ejemplos/
• Machine Learning con Python y Scikitlearn. (n.d.).
https://cienciadedatos.net/documentos/py06_machine_learning_python_scikitlearn.html
• Santana, A (2024). Machine_Learning [colab]. Analítica de datos. Universidad de la Sabana.

24
• Larispardo. (2022, 10 febrero). ¿Qué es y para qué sirve una regresión lineal en machine
learning? Platzi. https://platzi.com/blog/que-es-regresion-lineal/
• Resendriz,J. (2006). Las máquinas de vectores de soporte para identificación en linea.
Centro de investigación y de estudios avanzados del instituto politécnico nacional. chrome-
extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.ctrl.cinvestav.mx/~yuw/pdf/MaTesJAR.pdf
• IBM. (2021). https://www.ibm.com/docs/es/spss-modeler/saas?topic=models-about-svm
• Rivero, F. ( 20222). Árbol de Decisión en Aprendizaje Automático. In-
stituto de Estadística Teórica y Aplicada, Universidad Mayor de San Andrés.
https://ojs.umsa.bo/ojs/index.php/revistavarianza/article/download/433/365
• IBM. (s.f.). ¿Qué es un árbol de decisión? https://www.ibm.com/es-es/topics/decision-trees
• IBM. (s.f.). ¿Qué es un bosque aleatorio? https://www.ibm.com/mx-es/topics/random-forest
• Talamantes Álvarez, A. (2021). Análisis del Potencial de Random Forest para la
Detección de Fraude en Transacciones con Tarjeta de Crédito. Tesis de Maestría,
Centro de Investigación Científica y de Educación Superior de Ensenada (CICESE).
https://cicese.repositorioinstitucional.mx/jspui/bitstream/1007/3603/1/Tesis_Ariana%20Talamantes%20A
• IBM. (s.f.). ¿Qué es KNN? https://www.ibm.com/mx-es/topics/knn
• Rivas,W & Mazón, B. (2017).Generalidades de las redes neuronales artificiales. En J. C.
Chávez & L. A. Morocho (Eds.), Redes neuronales artificiales: Fundamentos y aplicaciones
(pp. 1-14). UTMACH: Editorial Universitaria.
• Gutiérrez González, I., Gutiérrez Cruz, D., Juan Ramírez, J. E., Rodríguez Páez, L.,
Rico Molina, R., & Sánchez Medina, M. (2017). Aplicación del algoritmo K-means
para el análisis de resultados de la prueba PLANEA 2017. Universidad Autónoma
del Estado de México, Centro Universitario UAEM Nezahualcóyotl, México.chrome-
extension://efaidnbmnnnibpcajpcglclefindmkaj/https://rcs.cic.ipn.mx/2020_149_8/Aplicacion%20del%20a
means%20para%20el%20analisis%20de%20resultados%20de%20la%20prueba%20PLANEA%202017.pdf
• Ramírez, L. (2023, 5 enero). Algoritmo k-means: ¿Qué es y cómo funciona? Thinking For In-
novation. https://www.iebschool.com/blog/algoritmo-k-means-que-es-y-como-funciona-big-
data/
• Rokach, Lior, and Oded Maimon. “Clustering methods.” Data mining and knowledge dis-
covery handbook. Springer US, 2010. 321-352.
• González, N., & Taborda, A. (2015). “Análisis de Componentes Prin-
cipales Sparse: Formulación, algoritmos e implicaciones en el análisis de
datos.” Trabajo de Fin de Máster. Departamento de Estadística, Máster en
Análisis Avanzado de Datos Multivariantes,Universidad de Salamanca.chrome-
extension://efaidnbmnnnibpcajpcglclefindmkaj/https://gredos.usal.es/bitstream/handle/10366/126046/TFM
• Díaz Rodríguez, M. (2020). “Mapas autoorganizados para clasificación en tiempo real:
Implementación digital sobre FPGAs” (Gradu Amaierako Lana / Trabajo Fin de Grado
Ingeniaritza Elektronikoko Gradua / Grado en Ingeniería Electrónica). Leioa. chrome-
extension://efaidnbmnnnibpcajpcglclefindmkaj/https://addi.ehu.es/bitstream/handle/10810/49091/TFG_D
• Benites, L. (2022, mayo 4). Algoritmo EM (expectativa-maximización): definición simple.
Statologos. https://statologos.com/maximizacion-de-la-expectativa-del-algoritmo-em/

25
• Monroy, S. (2023, 23 marzo). ¿Qué es el reinforcement learning? Usos y ejemplos de aplica-
ciones. APD España. https://www.apd.es/que-es-reinforcement-learning/
• MATLAB & Simulink. (s.f.). https://la.mathworks.com/help/stats/gaussian-mixture-
models.html
• Bogado, U. (2023, 19 septiembre). Redes neuronales convolucionales: ¿Qué son y como
funcionan? - NodoExo. Nodo Exo. https://nodoexo.com/redes-neuronales-convolucionales/
• ArcGIS Pro. (s.f.). Detectar comunidades en un gráfico de vínculos.
https://pro.arcgis.com/es/pro-app/3.1/help/data/knowledge/detect-communities-in-a-link-
chart.htm#:~:text=El%20m%C3%A9todo%20Propagaci%C3%B3n%20de%20etiquetas,utiliza%20la%20may
• GraphEverywhere, E. (2019, 29 octubre). Algoritmo de propagación de etiquetas. GraphEv-
erywhere. https://www.grapheverywhere.com/algoritmo-de-propagacion-de-etiquetas/

26

También podría gustarte