0% encontró este documento útil (0 votos)
23 vistas24 páginas

PY020 Machine Learning

El documento proporciona una introducción al machine learning. Explica que el machine learning permite a las computadoras aprender de los datos y tomar decisiones sin programación explícita. Describe los tres tipos principales de aprendizaje (supervisado, no supervisado y por refuerzo), así como sus beneficios clave para la industria 4.0 como la automatización, predicción y optimización. También presenta algunas de las bibliotecas y herramientas de Python más populares para el machine learning, incluidas Pandas, NumPy, Scikit-Learn y XGBoost

Cargado por

Matías Errecart
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)
23 vistas24 páginas

PY020 Machine Learning

El documento proporciona una introducción al machine learning. Explica que el machine learning permite a las computadoras aprender de los datos y tomar decisiones sin programación explícita. Describe los tres tipos principales de aprendizaje (supervisado, no supervisado y por refuerzo), así como sus beneficios clave para la industria 4.0 como la automatización, predicción y optimización. También presenta algunas de las bibliotecas y herramientas de Python más populares para el machine learning, incluidas Pandas, NumPy, Scikit-Learn y XGBoost

Cargado por

Matías Errecart
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/ 24

1

2
3
4
Python.industria(4.0)
5
6
7 PY020
8 Machine Learning
9
10
11
12
13
14

Ln 2 Python en Industria 4.0 / PY020 - Machine Learning.py


X
Indice

1 Indice:
2
3 01 Introducción a Machine Learning
4
• Definiciones
5 • Beneficios
6 • Diferencias entre los tipos
7
8
02 Fundamentos
• Características
9 • Bibliotecas principales
10 • Proceso de desarrollo
11 03 Aplicaciones
12 • Ejemplos prácticos de aplicaciones
13
14

Ln 3 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

01(
1
2
3
4
5 Introducción a Machine
6
7 Learning
8
• Definiciones
9 • Beneficios
10 • Diferencias entre los tipos
11

)
12
13
14

Ln 4 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

1
2
import ML
3 El Aprendizaje Automático, o Machine Learning en
4 inglés, es una disciplina que se centra en el
5 desarrollo de algoritmos y modelos que permiten a las
computadoras aprender y tomar decisiones a partir de
6 datos.
7
En esencia, es la ciencia de hacer que las máquinas
8 adquieran la capacidad de aprender sin ser programadas
9 explícitamente
10
11
12 ¿En qué se diferencian con
13
la Inteligencia Artificial?
14

Ln 5 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

1
2
import ML
3 El aprendizaje automático se basa en la idea de que las
4 computadoras pueden aprender patrones a partir de datos y
5 utilizar esos patrones para tomar decisiones o hacer
predicciones.
6
7 La industria 4.0 se caracteriza por la
8 automatización avanzada, la interconexión de
dispositivos y la toma de decisiones inteligentes.
9
10 El aprendizaje automático desempeña un papel
11 fundamental en esta revolución, permitiendo
aplicaciones como el mantenimiento predictivo, la
12 optimización de la cadena de suministro y la
13 detección de fallas.
14

Ln 6 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

1
2
import ML
3 Aprendizaje •Regresión
4
supervisado
•Clasificación

5
6
7 Aprendizaje
•Reducción de
sin dimensionalidad
8 supervisión
•Clustering
9
10
11 Aprendizaje •Navegación
por
12 refuerzo •AI

13
14

Ln 7 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

1
2
def ML():
3
Automatización de tareas Predicción/Pronóstico
4
5 Toma de desiciones Optimización
6
7 Personalización Aprendizaje contínuo
8
Detección de anomalías Análisis complejo de datos
9
10
11
12
13
14

Ln 8 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_tools

02(
1
2
3
4

Fundamentos
5
6
7
8 • Características
• Bibliotecas principales
9 • Proceso de desarrollo
10
11

)
12
13
14

Ln 9 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

1
2
def ML():
A lo largo de nuestro trabajo, podemos encontrar múltiples bibliotecas que nos serán
3 útiles a la hora de analizar los datos y varias herramientas y algoritmos que permitan
4 una fácil implementación de tareas de aprendizaje:

5 Pandas Numpy Matplotlib – Seaborn Scikit-learn XGBoost

6
7
8
9
10 Utilizada para el Utilizada para realizar Matplotlib proporciona
análisis y la operaciones matemáticas una amplia variedad de Proporciona herramientas
11 manipulación de datos. en matrices y arreglos herramientas para la para el modelado de datos,
el preprocesamiento, la
Ofrece algoritmos de
aprendizaje automático
Ofrece estructuras de de datos creación de gráficos en avanzados que pueden ser
selección de
12 datos de alto
rendimiento y fácil de
multidimensionales.
Ofrece herramientas
2D y 3D, mientras que
Seaborn ofrece una
características y la
evaluación del modelo.
utilizados para tareas de
clasificación y regresión,
usar, como DataFrames y para realizar cálculos interfaz de alto nivel entre otras. XGBoost se
Ofrece una amplia variedad
13 Series, que permiten numéricos complejos, para la creación de de algoritmos de
aprendizaje automático para
enfoca en mejorar la
precisión del modelo y
trabajar con datos como álgebra lineal y gráficos estadísticos reducir el tiempo de
14
su uso en tareas de
tabulares. transformadas de más sofisticados. entrenamiento mediante el
clasificación, regresión y
Fourier. agrupación, entre otras.
uso de técnicas de
gradiente mejorado y
árboles de decisión.

Ln 10 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

1
2
def ML():
3 Antes de comenzar…
4
5 Como desarrolladores, es nuestro trabajo identificar
6 nuestra metodología de trabajo, y realizar las tareas
7 previas requeridas antes de comenzar a hacer nuestro
8 proyecto
9
1. Organizar nuestros datos y scripts en un solo directorio accesible
10 2. Preinstalar todos los módulos necesarios, y actualizar los paquetes
11 3. Determinar si vamos a trabajar en el entorno de Python, o si vamos a hacer
scripts y correrlos desde el bash
12
13
14

Ln 11 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

1
2
def ML(flow):
3
4
5 Evaluar el
Crear
Analizar los proceso y Generar el Entrenar el Realizar Enviar los
predicciones
6 datos preparar
datos
modelo modelo inferencias
/ resultados
datos

7
8
9
10
11
12 Usar modelo
preentrenado
13
14

Ln 12 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

def ML():
Evaluar el
Crear

1
Analizar los proceso y Generar el Entrenar el Realizar Enviar los
predicciones
datos preparar modelo modelo inferencias datos
/ resultados
datos

2
3
4 Usar
modelo
preentrenado

5
6 Cargamos nuestro módulo Pandas con el alias pd
7
import pandas as pd
8
9 Cargaremos nuestro archivo de datos en una variable con el
10 comando pd.read_csv()
11 csv = pd.read_csv(“PetroleoArg.csv", delimiter=",")

12
Convertimos nuestra variable a un DataFrame df
13
14 df = pd.DataFrame(csv)

Ln 13 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

def ML():
Evaluar el
Crear

1
Analizar los proceso y Generar el Entrenar el Realizar Enviar los
predicciones
datos preparar modelo modelo inferencias datos
/ resultados
datos

2
3 ¿Qué datos interesantes podemos extraer?
¿Cómo le damos “forma” a los datos?
4 ¿Cómo podemos graficar la información?
¿Qué modelo o algoritmo podemos utilizar?
Usar
modelo
preentrenado

5
6 De nuestro DataFrame, vamos a quedarnos sólo con algunas columnas interesantes

7 columnas_interesantes=["empresa","anio","mes","provincia","cantidad","indice_tiempo","areayacimiento","
concepto","cuenca"]
8 datos = df[columnas_interesantes]
9
A partir de aquí, tenemos nuestros datos listos para filtrarlos, agruparlos, y
10 graficarlos, revelando más información que la que hay disponible a simple vista
11 mirando el DataFrame:

12
13
14

Ln 14 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

def ML():
Evaluar el
Crear

1
Analizar los proceso y Generar el Entrenar el Realizar Enviar los
predicciones
datos preparar modelo modelo inferencias datos
/ resultados
datos

2
3 ¿Qué algoritmo o modelo describe mejor la tarea que debo
realizar?
¿Qué recursos dispone mi dispositivo?
4 ¿Necesito reentrenar el modelo constantemente?
¿Requiero flexibilidad para agregar o quitar elementos?
Usar
modelo
preentrenado

5
6
7
8
9
10
11
12
13
14

Ln 15 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

1
2
def ML():
 ¿Qué algoritmo o modelo describe mejor la tarea
3 que debo realizar?
4
Máquinas de
Árboles de K-Nearest Neighbors
Regresión5lineal: Redes neuronales: vectores de soporte Clustering K-means:
decisión: (KNN):
(SVM):
• Se utiliza6 para • Se utiliza para • imita el • se utiliza para • se utiliza para • se utiliza para
predecir valores clasificar funcionamiento del clasificar, categorizar, agrupar cosas que
numéricos7a partir elementos en cerebro humano encontrando la encontrando los k son similares
de datos, diferentes para procesar y mejor separación puntos de datos entre sí,
8
encontrando una
relación lineal
categorías,
dividiendo los
analizar
información,
entre los datos
utilizando un
más cercanos y
clasificando el
dividiendo los
datos en k
entre las
9
variables de
datos en ramas de
un árbol de
utilizadas para
una amplia
hiperplano en un
espacio de alta
punto de datos
desconocido en
clusters
diferentes.
entrada y la decisiones basadas variedad de dimensión. función de la
variable 10
• Ej.: Agrupar
de en diferentes tareas, desde el • Ej.: detectar spam mayoría de los clientes según sus
salida. características. reconocimiento de en correos vecinos cercanos. hábitos de compra
11 el
• Ej.: Predecir • Ej.: clasificar a imágenes hasta la electrónicos, • Ej.: Predecir si para mejorar la
precio de una casa los clientes de un traducción clasificando el un tumor es segmentación de
en función12de su banco en automática de correo electrónico maligno o benigno mercado.
tamaño y diferentes grupos idiomas. como spam o no en función de su
ubicación.13 en función de su • Ej.: reconocer spam. tamaño y otras
historial de objetos en características.
14 crédito y otros
datos.
imágenes y
etiquetarlos
automáticamente.

Ln 16 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

def ML():
Evaluar el
Crear

1
Analizar los proceso y Generar el Entrenar el Realizar Enviar los
predicciones
datos preparar modelo modelo inferencias datos
/ resultados
datos

2
En ésta ocasión, vamos a predecir la producción de
3 petróleo promedio en el total de la cuenca “GOLFO
SAN JORGE”.
4 Para ello utilizaremos una regresión con la
Usar
modelo
preentrenado
herramienta xgboost, ya que es un buen algoritmo
5 para utilizar cuando se tratan de series lineales en
el tiempo.
6
Le vamos a “ocultar” al algoritmo los últimos 10
7 valores de la serie, mientras que utilizaremos el
resto de los valores para entrenar y validar el
8 modelo.

9 GolfoSanJorge = datos.query("cuenca == 'GOLFO SAN JORGE'")


GolfoSanJorge_fl =
10 GolfoSanJorge.groupby("indice_tiempo").mean()
GolfoSanJorge_fl

11 plt.figure(figsize=(14,8))
sns.set(font_scale=0.5)
12 ax =
sns.lineplot(x="indice_tiempo",y="cantidad",data=GolfoSanJor

13 ge_fl)

plt.xlabel('Año')
14 plt.ylabel('Producción de petróleo real en Golfo San Jorge')
plt.xticks(rotation=45)

plt.show()

Ln 17 Python en Industria 4.0 / PY020 - Machine Learning.py


X X Y
com_intro

def ML():
Evaluar el
Crear

1
Analizar los proceso y Generar el Entrenar el Realizar Enviar los
predicciones
datos preparar modelo modelo inferencias datos
/ resultados
datos

2
Cargamos todas los módulos que vamos a usar a
3 continuación, y separamos los datos para utilizar
como comprobación más tarde
4 Usar
modelo
from sklearn.model_selection import preentrenado

5 train_test_split
import xgboost as xgb
6
7 df_ultimos_10 = GolfoSanJorge_fl.iloc[-10:]
df_sin_ultimos_10 = GolfoSanJorge_fl.iloc[:-10]
8
9  Ahora sí, preparamos los datos restantes (df_sin_ultimos_10) con algunas cosas en mente:

10  Tenemos 2 características, que predecirán un resultado. Mis 2 características, son el mes y el


año. Las denominaremos X, mientras que mis resultados (las cantidades de petróleo) las
11 denominamos Y

12  XGBoost va a necesitar que los índices (es decir, la fecha) esté en formato “datetime”.
Actualmente la fecha está en formato YYYY-MM
13
 XGBoost también necesita los datos en forma de Matriz, no de DataFrame. Es decir, tendremos una
14 matriz de 2 columnas para X, y una matriz (o array) de 1 columna para Y. Para tomar solamente
los valores de un dataframe y hacerlos “matriz” usamos el comando Values

Ln 18 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

def ML():
Evaluar el

1
Crear
Analizar los proceso y Generar el Entrenar el Realizar Enviar los
predicciones
datos preparar modelo modelo inferencias datos
/ resultados
datos

2
Como dijimos antes, primero debemos convertir el índice
3 en formato Datetime

4 GolfoSanJorge_fl.index = Usar
modelo
pd.to_datetime(GolfoSanJorge_fl.index,
5
preentrenado

format="%Y-%m")
6 X_train, X_test, y_train, y_test =
Luego, convertimos los valores que usaremos para X y
7 para Y
train_test_split(X, y, test_size=0.2,
random_state=42)
8 X = df_sin_ultimos_10.iloc[:, :-1].values
print("Tamaño de X_train:", X_train.shape)
print("Tamaño de y_train:", y_train.shape)
9 y = df_sin_ultimos_10.iloc[:, -1].values
print("Tamaño de X_test:", X_test.shape)
print("Tamaño de y_test:", y_test.shape)
10 De paso, hacemos lo mismo con mis datos que usaremos
para “validar”
11 Y generamos finalmente el modelo

12 X_valid = df_ultimos_10.iloc[:, :-1].values


y_valid = df_ultimos_10.iloc[:, -1].values modelo = xgb.XGBRegressor(
13 n_estimators = 500,
Por último, vamos a dividir nuestros datos en X e Y en objective='reg:squarederror',
14 2. Una parte para entrenar al modelo, y otra parte para random_state=42)
testear el entrenamiento.

Ln 19 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

def ML():
Evaluar el

1
Crear
Analizar los proceso y Generar el Entrenar el Realizar Enviar los
predicciones
datos preparar modelo modelo inferencias datos
/ resultados
datos

2
3 ¡Es hora de entrenar el modelo! Con un solo comando, el
algoritmo tomará todos los datos que tiene en su
4 entrada, los comparará con sus salidas, y hará todas las
cuentas internas necesarias para “ajustar” los Usar
modelo
parámetros internos de forma automática.
5
preentrenado

Con cada iteración del entrenamiento, el sistema se hace


6 más y más confiable, y será capaz de tomar el mes y el
año en su entrada, y decir exactamente qué cantidad de
7 petróleo tendrá en ese momento en su salida.

8 La pregunta es, ¿por qué debimos separar en datos de


entrenamiento y datos de test? ¿no es mejor usar todos
9 los datos disponibles para el entrenamiento?

10
11 X w
12 + Y
13
14 B

Ln 20 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

def ML():
Evaluar el

1
Crear
Analizar los proceso y Generar el Entrenar el Realizar Enviar los
predicciones
datos preparar modelo modelo inferencias datos
/ resultados
datos

2
3 La respuesta es no. Si usamos todos los datos
disponibles para entrenar el modelo, el modelo
4 podría ajustarse demasiado bien a los datos de Usar
entrenamiento (overfitting), pero no funcionar modelo
5
preentrenado
bien con nuevos datos.

6 Por lo tanto, dividimos los datos en conjuntos de


entrenamiento y prueba para evaluar la capacidad
7 del modelo para funcionar con nuevos datos y
ajustar el modelo en consecuencia.
8
Sin embargo, si nos excedemos y la cantidad de
9 datos de entrenamiento es insuficiente
(underfitting), el modelo puede no ser capaz de
10 entender la complejidad del problema y su
rendimiento en la práctica puede ser pobre.
11 modelo.fit(
Por ésta razón, dividimos en éste caso nuestros X_train, y_train,
12 datos en 80% entrenamiento, y 20% de pruebas (como eval_set=[(X_test, y_test)],
vimos anteriormente) eval_metric='rmse’,
13 verbose=True,
Ahora sí, correctamente dividido, enviamos el early_stopping_rounds=9
14 comando de entrenamiento )

Ln 21 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

def ML():
Evaluar el

1
Crear
Analizar los proceso y Generar el Entrenar el Realizar Enviar los
predicciones
datos preparar modelo modelo inferencias datos
/ resultados
datos

2
3 Al entrenar el modelo, vemos que el error baja en
función de la métrica utilizada, comparándolo
4 iteración a iteración con los datos de prueba, Usar
mientras que la precisión aumenta. modelo
5
preentrenado

Llegado a un punto, si seguimos iterando los


6 entrenamientos, no veremos ningún cambio
perceptible en el error, y por el contrario es muy
7 probable que empiece a aumentar (clara señal de
overfitting)
8
Por ello, utilizamos el parámetro
9 early_stopping_rounds=9 que lo que hace es, si en
9 iteraciones el error no baja, nos quedamos con
10 los valores que mejor resultado hayan dado

11
12
13
14

Ln 22 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

def ML():
Evaluar el

1
Crear
Analizar los proceso y Generar el Entrenar el Realizar Enviar los
predicciones
datos preparar modelo modelo inferencias datos
/ resultados
datos

2
3 Una vez entrenado nuestro modelo, es capaz de
admitir datos en la entrada y predecir resultados,
4 dependiendo de qué tan bien esté realizado el Usar
ajuste. modelo
5
preentrenado

Para ello, tomaremos los 10 puntos (fechas) que


6 dejamos fuera, y los enviaremos a nuestro modelo
para que trate de predecir las cantidades de
7 petróleo de ese período:

8 y_pred2 = modelo.predict(X_valid)
9
10
11 Lo que sale de nuestro modelo es un Array de
12 valores, lo vamos a convertir en un DataFrame y le
vamos a añadir las fechas correspondientes, además
13 de añadirle un nombre a la columna

14 y_pred_df = pd.DataFrame(y_pred2, columns=["cantidad_pred"])


y_pred_df.index = df_ultimos_10.index

Ln 23 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

def ML():
Evaluar el

1
Crear
Analizar los proceso y Generar el Entrenar el Realizar Enviar los
predicciones
datos preparar modelo modelo inferencias datos
/ resultados
datos

2
3 Lo último que haremos, será concatenar con el
comando concat el Dataframe original con nuestras
4 predicciones, para ver si realmente coinciden en Usar
algo. modelo
5
preentrenado

Atentos al eje axis=1 lo que significa que uniremos los dos


6 dataframes del lado de las columnas

7 df_compare = pd.concat([GolfoSanJorge_fl, ¡Hora de la verdad! Vamos a graficar


y_pred_df], axis=1) todo junto, para comprobar nuestros
8 resultados…

9
10 fig, ax = plt.subplots(figsize=(15,6))

df_compare['cantidad'].plot(ax=ax, label='Valores Reales')


11 df_compare['cantidad_pred'].plot(ax=ax, label='Predicción’)

12 ax.set_xlabel('Fecha')
ax.set_ylabel('Cantidad')
ax.set_title('Comparación de valores reales y predicción’)
13
ax.legend()
14 plt.show()

Ln 24 Python en Industria 4.0 / PY020 - Machine Learning.py


X
com_intro

1
2
def ML():
3
4
5
6
7
8
9
10
Éxito!
11
Si bien la predicción no es exacta, es capaz de capturar las dinámicas del sistema, como las repeticiones
12 por temporada u otras influencias o correlaciones que a simple vista no encontramos mirando los datos
crudos.
13
14 Aún tenemos margen para mejorar el modelo, modificando parámetros, seleccionando otro algoritmo, o
utilizando estrategias avanzadas como mapeos y escalados de los datos.

Ln 25 Python en Industria 4.0 / PY020 - Machine Learning.py

También podría gustarte