Intelligent+Process+Automation+con+Python Iván+Pinar

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 71

BLOQUE 1:

Introducción a Intelligent Process


Automation y Python
Lo que aprenderemos en este bloque….

¿Qué es Intelligent Process Automation (IPA)?

¿Cómo seleccionamos los procesos donde aplicar IPA?

¿Qué plataformas de IPA existen?

¿Cómo instalar Python?

¿Cómo importar librerías en Python?

© Iván Pinar Domínguez


1.1 ¿Qué es Intelligent Process Automation (IPA)?

Robotic
Process Inteligencia
Automation Artificial (AI)
(RPA) Intelligent Process
Automation
(IPA)
Automatización de tareas basadas en Algoritmos que permiten aprender
Tecnología para replicar y automatizar
automáticamente de los datos
tareas basadas en reglas decisiones inteligentes
- Mayor eficiencia Aprendizaje Supervisado permite realizar
Eficiencia en procesos repetitivos y - Mayor reducción de costes predicciones en base a nuevos datos de entrada
reducción de riesgos por fallo humano - Incrementar la calidad de los
Aprendizaje NO Supervisado permite identificar
procesos patrones
© Iván Pinar Domínguez - Aumento de la agilidad
1.2 Selección de procesos IPA
Objetivo: Automatizar procesos repetitivos aportando capacidad de decisión mediante
Inteligencia Artificial

Proceso Proceso
Automático 1 Automático 3
IPA Inicio
Fin

Proceso
Automático 2

Inteligencia Artificial

© Iván Pinar Domínguez


1.2 Selección de procesos IPA

¿Cómo priorizamos los procesos a automatizar y aplicar IA?

Puntuar los procesos en base a criterios RPA + IA

Priorizar los procesos con mayor puntuación para asegurar


Retorno de la Inversión (ROI)

© Iván Pinar Domínguez


1.3 Plataformas en IPA - ¿Por qué Python?
• Python es un lenguaje de programación orientado a objetos de alto nivel y de propósito
general.
• Python se basa en la simpleza y en la facilidad de lectura de código disminuyendo costes de
mantenimiento y facilitando su aprendizaje.
• Soporta módulos y librerías que favorecen la reutilización de código.
• Dispone de potentes librerías enfocadas en la automatización de procesos e IA:
• Pandas (estructuras de datos)
• BeautifulSoup (web scraping)
• Selenium (automatización web)
• PyPDF2 (parsear pdf)
• Imapclient / Smtplib (automatización de emails)
• Pyautogui (automatización interfaz de usuario)
• Scikit-learn (algoritmos de Machine Learning)
• Python es open source y multiplataforma (Windows, Linux, Mac,…).

Facilidad de uso

IPA
Librerías de Rapidez de
automatización ejecución
disponibles
© Iván Pinar Domínguez
1.3 Plataformas en IPA - ¿Por qué Python?

Librerías Open Source

Facilidad de uso Creación de procesos sencilla Creación de procesos compleja (desarrollador)


(interfaz “drag & drop”)

Gestión de colas Necesita de orquestador Necesario desarrollo (pero mayor flexibilidad)

Escalabilidad Muy buena Excelente (script desplegado en cloud)

Producto licenciado
Gratis (Open Source) aunque
Coste (orquestador + UiPath Studio +
mayor coste de desarrollo
Robot ~40k€)

Control plataforma

Posibilidad
IPA (RPA + IA)
© Iván Pinar Domínguez
1.4 Instalación Python + Jupyter
• ANACONDA: Distribución de Python con múltiples librerías pre-instaladas para Data
Science.

https://www.anaconda.com/distribution/#download-section

• Definir el PATH: Definir la ruta de la instalación (Python.exe / conda.exe) para mayor


facilidad de uso a la hora de instalar cualquier nueva librería:
• Ruta habitual de Python:
• C:\Users\tu_nombre_de_usuario\Anaconda3\Scripts
• Ruta habitual de “conda” (actualización de paquetes):
• C:\Users\tu_nombre_de_usuario\Anaconda3\Scripts

• Panel de Control> system > advanced > |Variables de Entorno| > system variables
© Iván Pinar Domínguez  Añadir a la variable PATH la ruta concreta con “;”
1.4 Instalación Python + Jupyter

IDE (Programación enfocada a scripts y JUPYTER NOTEBOOK (Programación interactiva)


desarrollos extensos)

© Iván Pinar Domínguez


1.5 Importación de librerías en Python
• Librerías en Python:

• Librería = Directorio de Scripts en Python (cada script un modulo con


funciones, métodos,..)

• Inmensa variedad de librerías ya definidas para procesos RPA y de


Inteligencia Artificial

• Para instalar librería: pip install <librería>

• Para importar un paquete:

• Ruta habitual librerías:


© Iván C:\Users\tu_nombre_de_usuario\Anaconda3\Lib\site-packages
• Pinar Domínguez
1.6 Presentación CASO PRÁCTICO ROBOT IPA
Proceso 1
Proveedores
Proceso 2
Proceso 3 Automatización
Lectura PDF
Automatización Organiza 500 facturas
Comerciales en formato pdf en
Organización Ficheros
Facturas diferentes carpetas
Facturas Facturas en función del
proveedor

Ventas diarias

Automatización
Lectura Ficheros Inserción de todas las
ventas diarias en CRM https://ventas27122020.bubbleapps.io/

Administrativo Automatización
Inserción Web
Automatización
Lectura Email
Comerciales

Automatización Búsqueda web marketplace Envío email a


comerciales
Navegación Web precio productos
Automatización
¿Precio óptimo producto?
MACHINE LEARNING (PREDICCIÓN POR REGRESIÓN) Envío Email
© Iván Pinar Domínguez ¿Qué beneficio obtendremos para las siguientes ventas de cada comercial?
BLOQUE 2:
Fundamentos del lenguaje
Python
Variables en Python
• ¿Cómo definimos una variable? • ¿Podemos crear nuevas variables a partir
de otras previamente definidas?

• EJERCICIO: Calcular el Índice de Masa Corporal


• ¿Cuáles son los tipos de datos a partir de 2 variables (altura y peso).
disponibles en Python?
𝑝𝑒𝑠𝑜 [𝑘𝑔]
- Int  Números enteros 𝐼𝑀𝐶 =
𝑎𝑙𝑡𝑢𝑟𝑎[𝑚]2
- Float  Números reales
- Str  Cadena de texto
- Bool  True / False

• ¿Es necesario definir el tipo de


dato de una variable?
• NO es necesario
© Iván Pinar Domínguez
Creación de listas y extracción de datos

• Definición de listas [a, b, c]: Colección de valores de cualquier tipo de dato.

• Selección dato • Slice [inicio (incluido) : final (excluido)]

• Creación

Posición: 0 , 1 , 2 , 3 , 4 , 5
Posición: -6 , -5 , -4 , -3 , -2 , -1
• EJERCICIO: Seleccionar en la lista
dimensiones desde 2º valor hasta el
penúltimo

© Iván Pinar Domínguez


Conceptos avanzados de creación de listas
• ¿Cómo modificar elementos en una lista? • ¿Podemos crear nuevas listas en base a otras?
• MODO 1: Crear una lista con un puntero

x y

2
58
• ¿Cómo añadir elementos en una lista?
6

• MODO 2: Crear una lista independiente


x y

• ¿Cómo eliminar elementos en una lista? 2 2


5 58
6 6
© Iván Pinar Domínguez
Uso de funciones en Python (in-built)
• Función: Código reusable que resuelve una tarea particular y nos evita escribir código.

• ¿Cómo utilizamos una función? • ¿Qué funciones built-in existen en Python?

Nombre_funcion(arg_1, arg_2,…)

Arg_1
Nombre_funcion() Resultado
Arg_2

• Ejemplo Función built-in de Python


Round(número, N_dígitos)
Round(2.78, 1)
https://docs.python.org/3/library/functions.html
Número = 2.78
Round() Resultado = 2.8
N_dígitos = 1
© Iván Pinar Domínguez
Creación de funciones en Python y argumentos flexibles
• Sintaxis • ¿Podemos crear argumentos por defecto?
Def nombre_funcion(arg_1, arg_2,…):
“”” docstrings “””
código_función
return valor

• Ejemplo Argumentos • ¿Es posible tener argumentos flexibles?


Ejemplo: Multiplicar todos los números insertados

Lógica docstring

• ¿Cómo invocamos a la función?

© Iván Pinar Domínguez


Creación de funciones en Python y argumentos flexibles
• EJERCICIO: Crear una función que calcule el área de un triángulo dados como
argumentos la base y la altura. Comprueba que el resultado es correcto para un
triángulo de base = 5 y altura = 3.

© Iván Pinar Domínguez


Funciones lambda
• Sintaxis

Nombre_función = lambda arg_1, arg_2,… : código_función

• Ejemplo (Elevar un número a una potencia)

• Función map: map(func, secuencia): Aplica la • EJERCICIO: Crear función lambda que
función a todos los elementos de una secuencia convierta de $ a € una lista de precios
(una lista, una columna de un dataframe,…) en $ (asumir que 1€ = 1,1$)
• Ejemplo (Elevar una lista de números al cuadrado)

© Iván Pinar Domínguez


Métodos en Python
• Método: Funciones que pertenecen a un tipo de objeto.
• Sintaxis
Nombre_objeto.nombre_método()
Tipo Objeto Ejemplo de método

Capitalize()
str
Replace(cad_ini
,cad_fin)

list Insert(pos,valor)

* Una librería contiene multiples funciones y métodos que podemos reutilizar.


© Iván Pinar Domínguez
Cómo crear diccionarios en Python
• Diccionario: Objeto que nos proporciona una listado <clave> : <valor>
• Sintaxis: Nombre_dic = {“clave_1” : valor_1, “clave_2”: valor_2,…}
• Ejemplo (Diccionario con las notas de cada alumno)

• ¿Qué nos aporta frente a una lista?


Listas Diccionario

¿Cómo obtenemos la nota de Rubén?

clave
valor

Muy poco intuitivo y dependiente del


© Iván Pinar Domínguez orden (indexación por número) Fácil de usar e indexación por claves
Uso de función zip para creación de diccionarios en base a listas
• ¿Podemos crear un diccionario a partir de 2 listas? Sí, con la función “zip”

• EJERCICIO: Crear 2 listas, una de nombre de país y otra de población. A partir de


estas listas, crear el diccionario “dic_pais” y mostrar el valor de “México”.

© Iván Pinar Domínguez


Operadores en Python
COMPARADORES BOOLEANOS

< Menor que Solo retorna Verdadero si ambas


and
<= Menor o igual que condiciones son verdaderas

> Mayor que Retorna Verdadero si alguna o ambas


or
de las condiciones son verdaderas
>= Mayor o igual que
Retorna Verdadero si la condición es
== Igual que not
falsa y viceversa
!= No igual que

Falso Verdadero Falso Verdadero

© Iván Pinar Domínguez


Bucles en Python
IF FOR
• Sintaxis: • Sintaxis:
Se evalúa expresión_1 si
condición_1 es Verdadera for var in sec: Se evalúa la expresión para
if condición_1: expresión cada “var” del objeto “sec”
expresión_1 Se evalúa expresión_2 si
elif condición_2: condición_1 es Falsa y • Ejemplo (Iterarar lista de longitudes)
expresión_2 condición_2 Verdadera
else: Se evalúa expresión_3 si
expresión_3 condición_1 y condición_2
son Falsas
• Ejemplo (Cálculo de áreas en función del tipo
de objeto geométrico)

© Iván Pinar Domínguez


Comprensión de listas en python
• Objetivo: Sintetizar un bucle for en una línea de código. • Sintaxis:
[expresión for var in sec]
• ¿Cómo podemos realizar un cálculo a cada elemento
de una lista? (Ejemplo sumar 5 a cada valor de una lista)

FOR Comprensión de listas

• ¿Podemos añadir condiciones? (Ejemplo • EJERCICIO: Crear lista que eleve al cuadrado
sumar 5 solo si el números es menor que 5) los valores pares de la lista (condiciones para
evaluar si es par: num % 2 == 0)

© Iván Pinar Domínguez


BLOQUE 3:
Automatización Excel, Word y PDF
Lo que aprenderemos en este bloque….

Automatizar la lectura y escritura de ficheros CSV / Excel

Automatizar la lectura, edición y creación de ficheros Word

Automatizar la lectura y combinación de ficheros pdf

Aplicar técnicas OCR (Optical Character Recognition) para lectura de imágenes

Automatizar la organización de ficheros en directorios

© Iván Pinar Domínguez


Cómo leer y escribir ficheros Excel
Cargar el libro Excel
• Librería: import openpyxl

Cargar pestaña
del libro

Obtener el valor
de una celda

DISTRITO Población_Distrito
Arganzuela 151965
Centro 149718
Chamberí 137401
Moncloa-Aravaca 116903
Latina 233808
Escribir en una celda

Crear una
pestaña nueva

© Iván Pinar Domínguez


Cómo importar una tabla completa de CSV o Excel con Pandas
• Librería: import pandas as pd

Importar de un CSV
df = pd.read_csv(r'file.csv', delimiter=“;“, encoding = "ISO-8859-1“, index_col = 0, nrows=5, header=None)

*Argumentos obligatorios
*Argumentos opcionales Defecto: “,” Defecto: None Defecto: All Defecto: 0

© Iván Pinar Domínguez


Cómo importar una tabla completa de CSV o Excel con Pandas

Importar de Excel
df = pd.read_excel(r'file.xlsx‘, sheet_name = “nombre_pestaña”)

Tablas de datos

Diferentes pestañas de datos

© Iván Pinar Domínguez


Cómo exportar una tabla completa a CSV/Excel con Pandas
Exportar a CSV
df.to_csv(r‘ruta_local/nombre_fichero.csv‘)

df_pais

Exportar a Excel
df.to_excel(r‘ruta_local/nombre_fichero.xlsx‘, ,sheet_name = nombre_pestaña)

© Iván Pinar Domínguez


Automatización de ficheros Word (lectura, edición y creación)
Cargar el fichero docx
• Librería: import docx

Leer párrafos

Leer segmentos de texto con mismo formato

Poner en negrita

Modificar texto

© Iván Pinar Domínguez


Lectura y edición de ficheros PDF
Cargar y lectura fichero pdf

• Librería: import PyPDF2


Extraer texto de la página del pdf

Crear objeto escritor

Recorrer cada página de


cada pdf para combinarlos

© Iván Pinar Domínguez


Lectura de ficheros mediante técnicas OCR
(Optical Character Recognition)

• Librería: pytesseract (motor OCR tesseract)

2. 3. Guardar 4. Reconocimiento
Transformación imágenes en de texto OCR
1. Instalación pdf a imagen ruta temporal
Pedidos Tesseract/Poppler

• Realizamos el reconocimiento
• Tesseract: • Cada página de texto de cada imagen con
https://github.com/UB- del fichero pdf el motor OCR Tesseract y lo
Mannheim/tesseract/wiki/ se transformará guardamos en un fichero de
• Poppler: a una imagen salida en formato texto
https://blog.alivate.com.a
u/poppler-windows/
• Definir en variable entorno
© Iván Pinar Domínguez
Cómo organizar automáticamente los ficheros en directorios
• Librería: import os / import shutil

Funcionalidad Método Ejemplo


Crear un nuevo directorio os.mkdir() os.mkdir( ".\Outputs\Proveedores”)
Retornar todos los ficheros y os.listdir() os.listdir(".\Inputs")
carpetas de un directorio
Cambiar el directorio activo os.chdir() os.chdir(".\Inputs")
Unir componentes con un os.path.join() Subcarpeta= “Proveedores“
separador “\” para crear una ruta os.mkdir(os.path.join(".\Outputs", Subcarpeta))
Copiar ficheros shutil.copyfile() shutil.copyfile(".\Inputs\Factura1.pdf”, ".\Outputs\Factura1.pdf”)

Documentación métodos librería os: https://docs.python.org/3/library/os.html

© Iván Pinar Domínguez


CASO PRÁCTICO ROBOT IPA – LECTURA Y ORGANIZACIÓN FICHEROS
Proceso 1
Proveedores
Proceso 2
Automatización
Lectura PDF
Automatización Organiza 500 facturas
Comerciales en formato pdf en
Organización Ficheros
Facturas diferentes carpetas
Facturas Facturas en función del
proveedor

Ventas diarias

Automatización
Lectura Ficheros Inserción de todas las
ventas diarias en CRM https://ventas27122020.bubbleapps.io/

Administrativo

© Iván Pinar Domínguez


BLOQUE 4:
Automatización Web
Lo que aprenderemos en este bloque….

Automatizar la lectura de recursos y tablas web con Requests y Pandas

Automatizar la extracción de datos web con BeautifulSoup

Automatizar la navegación web con Selenium

Automatizar la inserción de datos en portales web de manera masiva

© Iván Pinar Domínguez


Extracción de recursos y tablas web con Requests y Pandas
https://archive.ics.uci.edu/ml/datasets.php

OK URL: Universal Resource Locator

HTTP
• ¿Cómo importamos un recurso web a partir de una URL?

GET

© Iván Pinar Domínguez


Extracción de recursos y tablas web con Requests y Pandas
• ¿Qué ocurre si en lugar de tener un recurso en la
web con los datos existe una tabla dentro HTML?

https://es.wikipedia.org/wiki/Poblaci%C3%B3n_mundial

• SOLUCIÓN: Web scraping con Pandas

Mensaje GET HTTP a la URL

Parsea el texto HTML para identificar


todas las tablas y guardarla en una
© Iván Pinar Domínguez lista de dataframes
Descargar web con Request y Parsear HTML con librería Beautiful Soup
• ¿Qué ocurre cuando tenemos un campo concreto que <div id=“global”>
queremos extraer de una página web?
<div id=“cabecera”>
<div id=“gráficos”>

• SOLUCIÓN: Web scraping con BeautifulSoup <div id=“gráfico 1”> <div id=“gráfico 2”>

<div id=“pie de página”>

Extreaer precio vehículo


USO DE SELECTORES CSS

© Iván Pinar Domínguez


Automatización del navegador web e insertar datos con el módulo Selenium
• Librería automatización navegador: Selenium https://www.selenium.dev/documentation/

Abrir navegador driver = webdriver.Chrome()

Acceder a URL driver.get(“URL")

Ir atrás / adelante driver.back() / driver.forward()

Cerrar navegador driver.quit()

Seleccionar elemento elem = driver.find_element()

Clic en elemento elem.click()

Insertar texto en elemento elem.send_keys(‘Texto')


Pulsar botón asociado a elemento elem.submit()
Limpiar elemento elem.clear()
© Iván Pinar Domínguez
CASO PRÁCTICO ROBOT IPA – INSERCIÓN Y BÚSQUEDA WEB
Proceso 1
Proveedores
Proceso 2
Proceso 3 Automatización
Lectura PDF
Automatización Organiza 500 facturas
Comerciales en formato pdf en
Organización Ficheros
Facturas diferentes carpetas
Facturas Facturas en función del
proveedor

Ventas diarias

Automatización
Lectura Ficheros Inserción de todas las
ventas diarias en CRM https://ventas27122020.bubbleapps.io/

Administrativo Automatización
Inserción Web

Comerciales

Búsqueda web marketplace


precio productos
Automatización
Navegación Web
© Iván Pinar Domínguez
BLOQUE 5:
Automatización Email
Lo que aprenderemos en este bloque….

Automatizar la lectura de emails desde la bandeja de entrada

Filtrar automáticamente los emails obtenidos en base a condiciones

Envío automático de emails

© Iván Pinar Domínguez


Cómo descargar emails de tu bandeja de entrada
1. Ve a tu cuenta de Google.
2. Selecciona Seguridad.
3. En "Iniciar sesión en Google", selecciona Contraseñas de aplicación.

Si no tienes esta opción, puede deberse a lo siguiente:


a) La verificación en dos pasos todavía no está configurada en la cuenta.
b) La verificación en dos pasos solo está configurada para las llaves de
seguridad.
c) La cuenta pertenece a tu trabajo, centro educativo u otra organización.

4. En la parte inferior, elige Seleccionar aplicación y elige la aplicación y dispositivo


que utilizas.

5. Sigue las instrucciones para introducir la contraseña de aplicación. Esta contraseña


es el código de 16 caracteres que aparece en una barra amarilla en tu dispositivo y es
la que se debe utilizar desde la aplicación (robot, script de Python, etc) que quiera
acceder al correo.
Fuente: https://support.google.com/accounts/answer/185833?hl=es#zippy=%2Cpor-qu%C3%A9-es-posible-
© Iván Pinar Domínguez que-necesites-una-contrase%C3%B1a-de-aplicaci%C3%B3n
Cómo descargar emails de tu bandeja de entrada
• Librería lectura emails: imapclient

Establecer conexión imapclient.IMAPClient("imap.gmail.com", ssl=True)

Loguearse en cuenta con.login(“email",“password")


Seleccionar carpeta con.select_folder("INBOX")

Seleccionar email en base a ID con.fetch([ID], ["BODY[]","FLAGS"])


© Iván Pinar Domínguez
Filtrar descarga de emails en base a condiciones

Filtrar por fecha con.search("SINCE 21-Jun-2022")

Filtrar por no leídos con.search("UNSEEN")

Filtrar por contener asunto con.search("SUBJECT Solicitud")

https://imapclient.readthedocs.io/en/master/api.html#

© Iván Pinar Domínguez


Configuración y envío automáticos de emails
• Librería envío emails: smtplib

Conexión SMTP smtplib.SMTP('smtp.gmail.com',587)

Iniciar conexión con.ehlo()

Loguearse con.login(“email",“password")

Envío email con.sendmail(“email_from",“email_to","Subject:---


\n\n Cuerpo_email)

© Iván Pinar Domínguez


CASO PRÁCTICO ROBOT IPA – AUTOMATIZACIÓN EMAIL
Proceso 1
Proveedores
Proceso 2
Proceso 3 Automatización
Lectura PDF
Automatización Organiza 500 facturas
Comerciales en formato pdf en
Organización Ficheros
Facturas diferentes carpetas
Facturas Facturas en función del
proveedor

Ventas diarias

Automatización
Lectura Ficheros Inserción de todas las
ventas diarias en CRM https://ventas27122020.bubbleapps.io/

Administrativo Automatización
Inserción Web
Automatización
Lectura Email
Comerciales

Automatización Búsqueda web marketplace Envío email a


comerciales
Navegación Web precio productos
Automatización
¿Precio óptimo producto?
Envío Email
© Iván Pinar Domínguez
BLOQUE 6:
Automatización de la interfaz (GUI)
Lo que aprenderemos en este bloque….

Automatizar las acciones con el ratón

Automatizar la entrada por teclado

Realizar capturas de pantalla automáticamente

Reconocimiento de imágenes automática

© Iván Pinar Domínguez


Controlar y automatizar el ratón con Python
• Librería GUI: pyautogui

Obtener posición actual ratón pyautogui.position()

Mover ratón a una posición absoluta pyautogui.moveTo(x,y,duration)

Mover ratón a una posición relativa pyautogui.moveRel(x,y,duration)

Hacer clic en posición pyautogui.click(x,y)

Hacer doble clic en posición pyautogui.doubleClick(x,y)


Mover ratón mientras se pyautogui.dragRel(x,y,duration)
mantiene pulsado el clic izquierdo

Posición (0,0)

© Iván Pinar Domínguez


Controlar y automatizar el teclado con Python
• Librería GUI: pyautogui

Insertar cadena de texto pyautogui.typewrite("Hola Mundo")

Insertar tecla a tecla una combinación pyautogui.typewrite(['a','left','left','b'])

Pulsar una tecla pyautogui.press('f1')

Combinar teclas pyautogui.hotkey('ctrl','g')

Importante: Automatizar la ventana donde enfocar la escritura con el método pyautogui.click(x,y)

© Iván Pinar Domínguez


Cómo realizar capturas de pantalla automáticamente y reconocer
imágenes
• Librería GUI: pyautogui

Realiza una captura de pantalla pyautogui.screenshot(ruta,region)

Localizar una imagen en pantalla pyautogui.locateOnScreen(imagen)

Localizar el centro de una imagen en pantalla pyautogui.locateCenterOnScreen(imagen)

© Iván Pinar Domínguez


BLOQUE 7:
Aplicación Inteligencia Artificial
Lo que aprenderemos en este bloque….

Entender qué nos ofrecen los algoritmos de inteligencia artificial

Profundizar en el flujo que se sigue en Machine Learning aplicado a IPA

Aplicar los pasos de Machine Learning en base al conjunto de datos histórico

Unir las tecnologías RPA + Inteligencia Artificial para obtener procesos


automáticos e inteligentes con IPA

© Iván Pinar Domínguez


¿Qué nos ofrecen los algoritmos de Inteligencia Artificial?
• El aprendizaje automático o Machine Learning habilita a los computadores aprender en base a la
experiencia y el procesamiento de información sin ser explícitamente programados:
Programación Tradicional
Datos de entrada
(Inputs)
Computadora Datos de salida (Outputs)
Programa

Datos de entrada Machine Learning


(Inputs)
Computadora Programa (Modelo)
Datos de salida
(Outputs)

Dataset Generación de Predicción de


(Variables Inputs un modelo nuevos Outputs
Clave: Tener un dataset & Variables (mediante a partir del
Outputs) algoritmo) modelo
con un volumen de
datos considerable
MODELO MODELO

© Iván Pinar Domínguez


¿Qué nos ofrecen los algoritmos de Inteligencia Artificial?
Machine Learning

Clasificación El aprendizaje supervisado permite a la


Aprendizaje computadora aprender a resolver
problemas a partir de ejemplos.
Supervisado Es decir, predecir variable objetivo en
Regresión base a variables de entrada

El aprendizaje no supervisado nos ayuda a


Clustering encontrar patrones ocultos o relaciones
Aprendizaje No ocultas en los datos.
Supervisado Reglas de
Se aplica sobre conjuntos de datos no
etiquetados y no requiere conjunto de
Asociación ? entrenamiento.

© Iván Pinar Domínguez


¿Qué nos ofrecen los algoritmos de Inteligencia Artificial?
Ejemplo clasificación Modelo Predición de
Dataset entrada Peso Clasificación nuevos casos
Longitud Peso Tipo de Longitud Peso Tipo de
Pez Pez
50 12 Pez A 48 11 ?
22 18 Pez B 25 22 ?
45 13 Pez A 64 16 ?
Variable salida
Longitud
Ejemplo regresión
Precio viviendas
Valor Vivienda (y) vs Superficie (x)
X Y Predición de
250000
Superficie (m2) Valor (€) nuevos casos
85 177.000 200000
Y=a*X+b Superficie
110 210.000
Valor (€)
150000 (m2)
74 154.000 y = 1159,6x + 77 ?
88 183.000 100000 83
92 192.000 50000 ?
120
125 212.000
55 138.000 0
0 20 40 60 80 100 120 140
© Iván Pinar Domínguez
Flujo Machine Learning IPA
Análisis de datos Crear modelos en
Datos históricos (EDA) + Preprocesado base a algoritmos

1 2 3

Optimizar parámetros
modelo seleccionado Benchmarking selección
mejor algoritmo
6 5 4

División Train / Test


• 80% Entrenamiento
• 20% Test

7 8 Predecir nuevos datos


Entrenar el modelo con los datos
históricos y evaluación
© Iván Pinar Domínguez
CASO PRÁCTICO ROBOT IPA: MACHINE LEARNING PREDICCIÓN REGRESIÓN
Proceso 1
Proveedores
Proceso 2
Proceso 3 Automatización
Lectura PDF
Automatización Organiza 500 facturas
Comerciales en formato pdf en
Organización Ficheros
Facturas diferentes carpetas
Facturas Facturas en función del
proveedor

Ventas diarias

Automatización
Lectura Ficheros Inserción de todas las
ventas diarias en CRM https://ventas27122020.bubbleapps.io/

Administrativo Automatización
Inserción Web
Automatización
Lectura Email
Comerciales

Automatización Búsqueda web marketplace Envío email a


comerciales
Navegación Web precio productos
Automatización
¿Precio óptimo producto?
MACHINE LEARNING (PREDICCIÓN POR REGRESIÓN) Envío Email
© Iván Pinar Domínguez ¿Qué beneficio obtendremos para las siguientes ventas de cada comercial?
¿Qué comercial obtendría el mayor beneficio para un lote de productos concreto?
BLOQUE 8:
Despliegue de soluciones IPA
Lo que aprenderemos en este bloque….

Entender cómo desplegar las soluciones Intelligent Process Automation

Transformar y generar scripts de Python y ejecutarlos

Generar aplicaciones ejecutables para Windows

© Iván Pinar Domínguez


Despliegue de soluciones y robots IPA

Máquina local

Servidor on-premises
Instalar librerías

Script interactivo (.ipynb) Script Python (.py) Servidor cloud

Fichero requirements.txt

• https://www.heroku.com/
• https://medium.com/tech-insights/how-to-deploy-a-python-
Generar fichero requirements:
script-or-bot-to-heroku-in-5-minutes-a82de2d3ed40
1. Abrir cmd • https://aws.amazon.com/free
2. Ir a carpeta del entorno Python con el comando cd
3. Ejecutar: pip freeze > requirments.txt
• https://towardsdatascience.com/deploying-a-python-web-
© Iván Pinar Domínguez Aplicación Windows (.exe) app-on-aws-57ed772b2319
Generación de scripts python y ejecución

Generación Notebook
Jupiter

!jupyter nbconvert --to script nombre.ipynb


Exportado a script.py

Ruta del fichero .py

Ejecución script en
local o servidor remoto

© Iván Pinar Domínguez


Generación de aplicaciones ejecutables

1. Instalar librería pip install auto-py-to-exe

2. Descargar https://github.com/brentvollebregt/auto-py-to-exe

3. Ir a la ruta de la carpeta descargada de auto-py-to-exe con el comando cd

4. Ejecutar python -m pip install -r requirements.txt

5. Para lanzar la interfaz gráfica de conversion: python -m auto_py_to_exe

6. Seleccionar script.py

7. Pulsar en “convert py to exe”

8. Resultado en subcarpeta “Output”

© Iván Pinar Domínguez


BLOQUE:
CONCLUSIONES
Conclusiones
• Intelligent Process Automation nos permite aunar las ventajas de RPA e Inteligencia
Artificial consiguiendo:
• Mayor eficiencia
• Mayor reducción de costes
• Incrementar la calidad de los procesos
• Aumento de la agilidad

• Python es un lenguaje ideal para aplica IPA debido a que dispone de potentes librerías
enfocadas en la automatización de procesos e IA.

• Es posible realizar la automatización de procesos de diferente naturaleza:


• Automatizar lectura y escritura de ficheros Excel, CSV, Word, pdf, imagen..
• Automatizar la organización de ficheros
• Automatizar la extracción de datos desde la web
• Automatizar la inserción masiva de datos en portales web
• Automatizar la lectura y envío de emails
• Automatizar la interfaz GUI (ratón, teclado y pantalla)

• Es muy sencillo combinar estas automatizaciones con la aplicación de inteligencia


artificial gracias a librerías de Python como Scikit-learn.

• Python ofrece una alta versatilidad a la hora de desplegar las soluciones IPA (local,
servidor, cloud,…)
© Iván Pinar Domínguez
Gracias

• Iván Pinar Domínguez


• www.linkedin.com/in/ivanpinar

También podría gustarte