0% encontró este documento útil (0 votos)
65 vistas95 páginas

Modelización 4

Este documento describe cómo Python y el aprendizaje automático (machine learning) pueden usarse para la modelización y análisis de datos en agricultura de precisión. Explica que Python es un lenguaje de programación popular para científicos e ingenieros debido a su facilidad de uso, códigos simples y gran variedad de bibliotecas para análisis de datos y aprendizaje automático. Además, describe algunas de las bibliotecas y herramientas de Python más utilizadas para el aprendizaje automático como scikit
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)
65 vistas95 páginas

Modelización 4

Este documento describe cómo Python y el aprendizaje automático (machine learning) pueden usarse para la modelización y análisis de datos en agricultura de precisión. Explica que Python es un lenguaje de programación popular para científicos e ingenieros debido a su facilidad de uso, códigos simples y gran variedad de bibliotecas para análisis de datos y aprendizaje automático. Además, describe algunas de las bibliotecas y herramientas de Python más utilizadas para el aprendizaje automático como scikit
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/ 95

Modelización y análisis de

datos para la agricultura


de precisión

Machine
Learning
con Python
MACHINE LEARNING CON
PYTHON
Identificación de patrones y realización de predicciones
Computación en ciencias e ingeniería
• El trabajo del científico e
ingeniero requiere…
– Modelización matemática de
fenómenos y procesos
– Gestión eficiente de datos
– Manejo de herramientas
computacionales de altas
prestaciones
– Dominio de lenguajes de
programación
Uso de lenguajes deprogramación

• Permite una comunicación efectivahombre-máquina


– Decimos a la máquina lo que queremos que haga
• El diseño e implementación de un algoritmo permite
– Un mejor conocimiento del propioproblema
• “Si no puedes implementarlo es que no lo conoces”
– Entender todos los posibles escenarios de ejecución
– Experimentación
¿Qué herramienta utilizar?

• Tipo de herramienta:
– Software específico
– Lenguaje de programación de propósito general
• Características:
– Software propietario, cerrado y de pago
– Software abierto y libre
• ¿Qué herramienta utilizar?
– Conocer las fortalezas y debilidades de cada opción
– Necesidades de infraestructura (capacidades de
almacenamiento, transmisión y transformación de datos)
– Necesidades de explotación o analítica de datos
Lenguajes de programación
“Si sólo tienes un martillo, todo
parece un clavo",
Abraham Maslow (1966), "The
Psychology of Science"
¿Por qué Python?
• Lenguaje interpretado de propósito general, gratuito y “open source”
• Facilidad de uso yaprendizaje
• Codificación simple
– Estructura de anidación basada en sangría
• Portabilidad
• Módulos y paquetes para una gran variedad de tareas
• Colección de bibliotecas analíticas:
– Computación numérica
– Análisis dedatos
– Análisis estadístico
– Visualización
– Aprendizaje automático
¿Por qué Python?
• Lenguaje orientado a objetos
• Permite simplificar las operaciones de datos
– Estructuras de datos avanzadas (listas, conjuntos, diccionarios,…)
• Lenguaje de gran demanda entre las compañías de Big Data
– Compatibilidad con Hadoop
• Lenguaje de mayor crecimiento
• Comunidad de usuarios muy activa y dinámica
• Disponibilidad de herramientas de desarrollo
– Plataforma Anaconda
– Disponibilidad de diferentes IDEs (Integrated Development
Environment)
– Posibilidad de ejecución en servicios on-line: Google Colab, Jupyter
TIOBE
Programming
Community Index

https://www.tiobe.com/tiobe-index/
Tecnologías populares

Lenguajes más
utilizados por los
programadores

Encuesta realizada a
más de 80.000
desarrolladores de
todo el mundo

https://insights.stackoverflow.com/survey/2021
Lenguajes más utilizados por los científicos de datos

• Encuesta de
Kaggle
– Octubre 2019
– 19,717
profesionales
relacionados
con analítica
de datos

https://www.kag
gle.com/c/kaggl
e-survey-2019
• https://www.kdnuggets.com/2019/05/poll-top-data-science-machine-
learning-platforms.html
El lenguaje Python
• Lenguaje interpretado de propósito general
• Nació de la mano de Guido van Rossum,
programador holandés que desarrolló este
lenguaje de programación a finales de los 80
– Primera versión pública en 1991
– Python 3 desde 2008
• Python Software Foundation
– Misión: promover, proteger y avanzar el lenguaje de
programación Python, y apoyar y facilitar el
crecimiento de una comunidad diversa e internacional
de programadores de Python.
Recursos
• Página oficial del lenguaje
– https://www.python.org/
• Python Package Index (PyPI): miles de módulos de terceros
– https://pypi.org/
• Google Colab: entorno online para la ejecución de “notebooks”
– https://colab.research.google.com/
• Anaconda: plataforma de Data Science para Python y R
– https://www.anaconda.com
Recursos
• https://www.kdnuggets.com/
– Recursos, referencias a software, tutoriales, datasets
• https://www.kaggle.com/
– 50000 datasets y 400000 notebooks
• http://archive.ics.uci.edu/ml/datasets.php
– Machine Learning Repository
• https://www.cs.ubc.ca/labs/beta/Projects/autoweka/datasets/
– Datasets
Principales paquetes Python para machine learning
• Paquetes básicos
– NumPy: librería numérica
– SymPy: rutinas de cálculo simbólico
– SciPy: técnicas matemáticas avanzadas (algoritmos de optimización,
integración numérica,…)
– Pandas: librería de análisis de datos
– Matplotlib: rutinas gráficas y de visualización
– Seaborn: librería de visualización estadística avanzada basada en
Matplotlib
Principales paquetes Python para machine learning
• Aprendizaje automático
– scikit-learn: librería de machine learning (https://scikit-
learn.org/stable/tutorial/basic/tutorial.html)
– TensorFlow: librería de machine learning desarrollada por Google
– Keras: librería de redes neuronales. En 2017, el equipo de TensorFlow de Google
decidió ofrecer soporte a Keras en su librería
– MDP: algoritmos de aprendizaje supervisados y no supervisado
– Mlpy: técnicas de machine learning
– NetworkX: análisis de grafos
• Paquetes de procesamiento de lenguaje natural
– NLTK (Natural Language Toolkit): minería de texto
– TextBlob: procesamiento de texto
– BeautifulSoup: WebScrapping
Modos de trabajo con Python

• Python es un lenguaje interpretado, lo que implica que pueden


enviarse órdenes individuales a un intérprete de Python.
• También pueden generarse ficheros con la extensión .py
conteniendo el código completo de un programa
• Las sentencias también pueden integrarse en cuadernos
computacionales (notebooks)
– Formados por celdas de contenido multimedia y celdas de código
• La ejecución de las sentencias o programas puede hacerse…
– Localmente en un equipo que tenga instalado el intérprete Python
– Mediante servicios de computación en la nube
• En este caso el usuario no necesita instalar nada en su propio equipo
Entorno Anaconda
• Plataforma de Data Science para Python y R
– Sistema para gestionar entornos virtuales
• Diferentes paquetes o versiones dentro de cada entorno
– Colección de paquetes de software
• Incluye más de 300 paquetes para ciencias de datos
• Se pueden instalar paquetes adicionales que no vienen preinstalados (por
ejemplo, TensorFlow)

• Terminal Anaconda Prompt


– Arrancar el intérprete Python: ipython https://www.anaconda.com/

• conda: herramienta de gestión de paquetes y entornos


virtuales
• Suite de herramientas Anaconda Navigator:
– Qt Console
– Spyder IDE (Integrated Development Environment)
– Jupyter Notebooks
Google Colab
• Servicio de computación en la nube alojado por Google
• Uso de prestaciones de cómputo de los servidores de Google
– Acelerador por hardware: GPU, TPU (en función de la disponibilidad)
– Recursos compartidos
– Límite en los tiempos de computo
• Código se almacena en Google Drive
– Seguridad
– Compartirlo con otros usuario
• Cuenta con librerías de machines learning/data science preinstaladas
– Sklearn, TensorFlow, Numpy, Scipy, Matplotlib, Pandas, Torch, Seaborn,
Wordcloud, Bs4, Request, Theano,…
• No se necesita configurar un entorno propio
• Introducción a Python para la ciencia de datos
– Principios básicos del lenguajey el paquete NumPy
• https://colab.research.google.com/drive/1rCWWMaceDvftHHQ9175W2xy46An-1C3k?usp=sharing
– Paquetes Pandas, Matplotlib
• https://colab.research.google.com/drive/1_F_fx4SizNAT9MV6MrTwoX8A0s0-XaTb?usp=sharing
• https://colab.research.google.com/drive/1c5teTudzn0AQVe9T-bAtYtI4zMuk9BkV?usp=sharing
Introducción al machine
learning
Contexto
• La era del “Big Data”
– “Estamos ahogados en información y
hambrientos de conocimiento” (John Naisbitt,
1982)
– Crecimiento exponencial en la generación de
nuevos datos e información
• Avances en…
– Almacenamiento de datos
– Sistemas distribuidos / cloud platforms
– Nuevos modelos computacionales
– Inteligencia Artificial
– Computación a escala
– Data Driven Decision Making – DDDM
• Trabajo multidisciplinar
Octubre 2012

Noviembre 2011
“A pesar de su abundancia, los
El valor de losdatos datos no son la fuerza
definitoria de nuestro tiempo.
Los datos sin contexto no son
información y como tal son
simplemente la materia en bruto
de la que partimos para la
comprensión, igual que un
bloque de granito no es una
escultura hasta que se retira la
piedra sobrante, aunque la
escultura esté allí ” [Dürsteler,
2002]
Inteligencia
• La esencia de la inteligencia
reside en la capacidad del
cerebro para predecir el futuro a
partir de la ingente cantidad de
información sobre el mundo que
va acumulando en su memoria
(memory-based model)
• Ese mismo principio está detrás Jeff Hawkins (2004). “On
del Machine Learning (ML), Intelligence: How a New
también conocido como Understanding of the Brain
will Lead to the Creation of
aprendizaje automático. Truly Intelligent Machines”
Machine learning (aprendizaje automático)
• Disciplina del campo de la Inteligencia Artificial (IA) que
mediante algoritmos dota a los computadores de capacidad de
identificar patrones en datos y elaborar predicciones.
• Este aprendizaje permite a los computadores realizar tareas
específicas de forma autónoma.
• El término se utilizó por primera vez en 1959, sin embargo, ha
ganado relevancia en los últimos años debido al aumento de la
capacidad de computación y el desarrollo de big data.
– Las técnicas de ML son, de hecho, una parte fundamental del Big Data.
– Uno de los pilares sobre los que descansa la transformación digital
Definiciones
• Machine learning:
– Disciplina que tiene como objetivos diseñar, entender y aplicar
programas de computador que aprendan a partir de la experiencia
(datos) con el propósito de modelizar, realizar predicciones o controlar
procesos
• Toma de decisiones automáticas a partir de los datos
• Predecir en nuevos ejemplos → GENERALIZACIÓN
– Automatización y mejora de los procesos aprendizaje de los
computadores basados en la experiencia, sin ser programados y sin
intervención humana. El proceso comienza con la alimentación de
datos de calidad y entrenar las máquinas mediante modelos que usen
los datos y algoritmos
¿Para qué sirve el MachineLearning?
• Predicción de tendencias
• Identificación de hábitos de compra y desarrollo de sistemas
recomendadores
• Vehículos inteligentes: ajuste de la configuración interna a las
preferencias del conductor, conducción automática,
identificación de señales, detección de obstáculos,…
• Identificación de spam, fake-news,…
• Procesamiento de Lenguaje Natural (PLN): asistentes virtuales,
traductores automáticos, reconocimiento de voz, análisis de
sentimientos,…
¿Para qué sirve el MachineLearning?
• Optimización en motores de búsqueda
• Detección de enfermedades
• Detección de fraudes (uso de tarjetas de crédito, siniestros
simulados, acometidas ilegales a servicios,…), ciberseguridad e
identificación de malware, blanqueo de capitales,…
• Identificación de patrones de fuga de clientes
• Gestión de recursos humanos y selección de personal
Términos relacionados

Data Science

Business Predictive
Analytics analytics

Deep learning

Data mining
Deep learning y machine learning
• Ambos son subcampos de la Inteligencia Artificial
• Deep learning  Machine Learning
• Deep learning puede considerarse un "aprendizaje automático
escalable“
– Deep learning automatiza gran parte de la extracción de características del
proceso, elimina parte de la intervención humana manual necesaria y permite el uso
de conjuntos de datos más grandes.
• Puede usar datos no estructurados en formato bruto (por ejemplo, texto, imágenes) y
determinar automáticamente el conjunto de características que distinguen las distintas
categorías de datos entre sí.
– El machine learning clásico o "no profundo" depende más de la intervención
humana para aprender.
• Los expertos determinan las características necesarias para comprender las diferencias
entre las entradas de datos y, por lo general, requieren más datos estructurados para
aprender.
La minería de datos dentro de la ciencia de datos
• Google Trends (2004-Feb 2023)

Machine learning

Deep learning
Google Trends (2004-feb 2023)
Machine learning
Data Science

Big data
Deep learning

Machine learning

Data Mining
Aspectos metodológicos
Objetivo del Machine Learning

Información Predicciones
•Datos •Información
históricos susceptible de
generar
•Datos actuales acciones
Fundamentos del Data Science
• Proceso dinámico de generación de insights a partir de los datos
– Insight = visión interna o percepción

Análisis
Datos Insight Acción
Cuestión objeto
de investigación
Ejemplo: recomendación automática de productos
Datos demográficos
del cliente
¿Qué producto puede Recomendación de
Compras anteriores interesar al cliente? productos
Revisiones de
productos

Modelo de
preferencias del
cliente
¿Para qué clientes puede Acciones de
ser interesante el nuevo Marketing
producto?
Información de un
nuevo producto
Proyecto de Data Science
1. Definición del problema
– “Un problema bien definido es un problema
medio resuelto” (Charles F. Kettering)
2. Evaluación de la situación
– Riesgos
– Beneficios
– Contingencias
– Regulaciones
– Recursos
– Requerimientos
3. Definición de objetivos y criterios
Fases de un proceso demachine learning

Razones del Entender los Familiarización


Entendimiento del problema Análisis exploratorio
proyecto datos con los datos
Definir criterio deevaluación Medida de error

Evaluación de la soluciónactual
Selección, integración y
Preparación dedatos Pre-procesado
transformación
Modelado Aplicación de algoritmos

Evaluación En términos del problema Análisis deerrores


que se busca resolver
Presentación del Implementación de
Despliegue
conocimiento soluciones

Basadas en la metodología CRISP-DM


(Cross-Industry Standard Process for
Data Mining)
Etapas clave en todo proceso de ciencia de datos
• PASO 1: Adquirir
– Identificación de datasets,
recuperación y selección Actuar Adquirir
• PASO 2: Preparar
– Explorar
• Análisis preliminar
• Entender la naturaleza de losdatos
– Preprocesar
• Limpiar, formatear, integrar,… Informar Preparar
• PASO 3: Analizar
– Seleccionar técnicasanalíticas
– Construcción de modelos Analizar
– Análisis de resultados
• PASO 4: Informar
• PASO 5: Actuar
Pasos básicos de todo proceso de machine Datos
learning
1. Cargar datos
2. Dividir los datos en dos Selección de una
técnica de análisis
conjuntos
– Entrenamiento
– Validación
3. Construir un modelo
Modelo
4. Ajustar el modelo
5. Evaluar el modelo
6. Realizar predicciones
Output
Evaluación de modelos
• Comprobar la efectividad del modelo
– La evaluación depende del tipo de técnica utilizada
• Clasificación/Regresión: output correcto vs predicción
• Clustering: sentido de los gruposcreados

• Diferentes métricas o indicadores de calidad de los modelos


• Datos para laevaluación
– Nuevo dataset
– Estrategia habitual: dividir los datos en dos conjuntos
• Datos deentrenamiento
• Datos de prueba
• Estratificación: mantener la proporción de los datos en las diferentes categorías
– Evitar el problema del sobreajuste (overfitting)
• La evaluación puede plantear un cambio en el modelo o la técnica utilizada
Técnicas de aprendizaje automático
• Aprendizaje supervisado
– Predicción a partir de ejemplos con la respuesta correcta
(datos etiquetados) Aprendizaje Aprendizaje no
– Datos con variables de entrada y de salida supervisado supervisado
– Etiquetas discretas o continuas

• Aprendizaje no supervisado
– Descubrir relaciones en losdatos
– No existe una salidadeseada

• Aprendizaje por refuerzo (reinforcement learning)


– Aprender de la propia experiencia
– Tomar la mejor decisión ante diferentes situaciones de
acuerdo a un proceso de prueba y error en el que se Aprendizaje por
recompensan las decisiones correctas refuerzo
– Determinar qué acciones debe escoger un agente de software (reinforcement
en un entorno dado con el fin de maximizar la "recompensa"
o premio acumulado learning)
– Objetivo: optimizar la secuencia de acciones
Ejemplos de aprendizaje

• SUPERVISADO:
– Detección de spam dependiendo de los patrones que ha aprendido
del histórico de correos (remitente, relación texto/imágenes,
palabras clave en el asunto, etc.).

• NO SUPERVISADO:
– Identificar grupos de clientes que respondan a un mismo patrón de
compra.

• APRENDIZAJE POR REFUERZO:


– En la actualidad se está utilizando para posibilitar el reconocimiento
facial, hacer diagnósticos médicos o clasificar secuencias de ADN.
Técnicas de análisis dedatos
• Clasificación
Supervisado – Objetivo: predicción de categoría (datos etiquetados)

• Regresión
– Objetivo: predicción de una variable numérica

• Clustering
– Objetivo: identificar grupos de objetos similares
No supervisado

• Reducción de dimensión
– Identificar conjuntos de características que muestren la
estructura de los datos
• Análisis de asociaciones
– Objetivo: capturar asociaciones entre ítems o eventos

• Análisis de grafos
– Objetivo: encontrar conexiones entre entidades
Clasificación de las técnicas

Técnicas de
extracción de
conocimiento
de los datos

Descriptivas Predictivas

Detección
Reglas de valores
Agrupamiento otras Clasificación Regresión otras
asociación anómalos
https://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/
Actuar

Adquirir Preparar Analizar Informar


Adquisición de datos
• Identificar los datos necesarios Herramientas ETL
(Extract, Transform &
• Recuperar todos los datos disponibles
Load), lenguajes de
relevantes para el problema
programación, lenguajes
– Fuentes locales o remotas de consulta de bases de
• Bases de datos: relacionales (lenguajes SQL) y datos, APIs de acceso a
no relacionales (NoSQL)
• Portales de open data de administraciones fuentes abiertas,…
públicas y organismos internacionales
• Web y redes sociales
• …
– Datos estructurados y no estructurados
– Ficheros en diferentes formatos (TXT, Datasets
CSV, JSON, XML,…)
Conjuntos de datos (datasets)
• Un dataset describe un determinado aspecto del
mundo real y viene definido por:
– Muestras (samples) o instancias, que representan
objetos reales (p.e. libros, personas, prendas de vestir,
alimentos,…)
– Rasgos (features) que describen la muestra (p.e,
nombre, edad, precio,…).
• Dentro de los rasgos puede aparecer una “etiqueta” o rasgo de
clase.
Ejemplos
• Muestras o instancias: estudiantes cursando una materia
• Rasgos: nombre, domicilio, edad, titulación, número de
expediente, promedio de calificación,…
• Posible etiqueta: materia superada o no superada

• Muestras o instancias: frutas de una cosecha


• Rasgos: peso, diámetro, color,…
• Posible etiqueta: estado de maduración o
adecuación para su comercialización
Datos etiquetados
• Cuando un “supervisor” aporta una etiqueta para cada instancia,
se pueden aplicar técnicas de aprendizaje supervisado
– Conjunto de entrenamiento: instancias con rasgos y etiquetas de clase
– Objetivo: predecir el valor de la clase para una futura instancia no
etiquetada
• El aprendizaje no supervisado se plantea cuando no hay un
conjunto de datos etiquetado
– Objetivo: descubrir grupos de instancias similares
Representación matricial de los datos
• Los datos pueden representarse frecuentemente en una matriz
de dimensión n×d
– n: cardinalidad (número de instancias)
– d: dimensión (número de rasgos)

R1 R2 … Rd
𝑥𝑥11 ⋯ 𝑥𝑥1𝑑𝑑 I1 x11 x12 … x1d
𝐷𝐷= ⋮ ⋱ ⋮ I2 x21 x22 … x2d
𝑥𝑥𝑛𝑛1 ⋯ 𝑥𝑥𝑛𝑛𝑑𝑑 … … … … …
In xn1 xn2 … xnd
Tipos de datos
• Variables binarias/dicotómicas
– 0/1, True/False
• Variables categóricas (cualitativas): el atributo toma valores dentro de un
conjunto finito de estados
– Nominales (no hay relación de orden)
• Color={rojo,verde,azul,amarillo}
– Ordinales (los posibles estados tienen un orden)
• CalificacionEnergetica={A,B,C,D,E,F,G}
• Valoracion={1,2,3,4,5}
• Medallas={oro,plata,bronce}

• Variables numéricas (cuantitativas)


– Discretas o continuas
• Variables alfanuméricas (cadenas de caracteres)
Datos de entrenamiento y de prueba
• En los procesos de machine learning es
habitual dividir los datos en dos
conjuntos:
– Datos de entrenamiento
– Datos de prueba o validación
• Analizar la calidad del aprendizaje
• Identificar situaciones de sobre-ajuste o infra-
ajuste
Estructuras para la gestión de datos en
Python
• Además de los tipos básicos, se dispone de una serie de tipos
compuestos:
• Listas: secuencias mutables de valores.
• Tuplas: secuencias inmutables de valores.
• Conjuntos: conjuntos únicos de elementos
• Diccionarios: datos con elementos a los que se accede a partir de una clave única.

• El paquete Numpy:
– Arrays unidimensionales (vectores), bidimensionales (matrices) y
multidimensionales
• El paquete Pandas:
– Estructuras:
• Serie: Estructuras unidimensionales indexadas mediante un índice
• DataFrame: Estructuras bidimensionales (index: etiquetas de filas; columns:
etiquetas de columnas)
– Disponibilidad de funciones para integración y transformación de
datos, además de estadísitica descriptiva y funciones de
visualización gráfica
Ejemplos de datoscompuestos
• Estructuras básicas:
lista = [1, 2, 3, 8, 9]
tupla = (1, 4, 8, 0, 5)
conjunto = set([1, 3, 1, 4])
diccionario = {'a': 1, 'b': 3, 'z': 8}

• Arrays con el paquete Numpy:


import numpy as np
a = np.array([0, 1, 2, 3])
b = np.array([[0, 1, 2], [3, 4, 5]])
Generación de Dataframes con el paquete Pandas
import pandas as pd Import numpy as np

datos = {
"calorias": [420, 380, 390],
"duracion": [50, 40, 45]
}
df = pd.DataFrame(datos)

datos = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])


df2 = pd.DataFrame(datos)

df3 = pd.read_csv('data.csv')
Adquisición de datos con Pandas

https://pandas.pydata.org/pandas-docs/stable/reference/index.html
• Carga de datos de diversas fuentes y formatos
– https://colab.research.google.com/drive/1pU1u33s9I
WhLfXSypOdtMaB0Q9aq6dKK?usp=sharing
Comparación de instancias: noción de distancia
• Un espacio métrico es un conjunto dotado de una función de distancia d(x,y)
– Propiedades de la función de distancia:
• 𝑑(𝑥, 𝑦) = 0 ⟺ 𝑥 = 𝑦𝑦
• Simetría: 𝑑𝑑 𝑥𝑥, 𝑦𝑦 = 𝑑𝑑 𝑦𝑦, 𝑥𝑥
• Desigualdad triangular: 𝑑𝑑 𝑥𝑥, 𝑧𝑧 ≤ 𝑑𝑑 𝑥𝑥, 𝑦𝑦 + 𝑑𝑑(𝑦𝑦, 𝑧𝑧)
• De las propiedades anteriores se deduce: 𝑑𝑑(𝑥𝑥, 𝑦𝑦) ≥ 0

• Disponer de una medida de distancia, o de forma equivalente, una medida de


similitud, es esencial para muchos de los algoritmos de ML.
– Analizar diferencias entre instancias
– Buscar instancias más próximas
– Aprendizaje basado en instancias
• Dificultades:
– Presencia de datos de diversos tipos
– Efecto de la escala
Distancias más habituales en minería de datos
• Distancia euclídea

– Inconvenientes:
• Sensible a escalas → normalización/escalado
• Si las variables están correlacionadas amplifica las
diferencias
– Apropiada con variables homogéneas, con
unidades similares
– En algunos algoritmos se considera la
distancia al cuadrado
• Distancia Manhattan:
• Distancia Minkowski

– p=1 → distancia Manhattan


– p=2 → distancia Euclídea
• Distancia de Chebyshev

– También se denomina distancia del tablero de ajedrez: representa


el número mínimo de movimientos que el rey necesita para
moverse entre dos casillas (pues el rey en el ajedrez puede moverse
horizontalmente, verticalmente y en diagonal)

– Métrica 𝐿𝐿∞
• Distancia del coseno:
– Apropiada cuando hay muchas
diferencias de escala de unos rasgos a
otros o con datos con muchos valores
– Se calcula el coseno del ángulo entre
los dos vectores (medida de
similitud)

Distancia:
• Distancia de Hamming:
– Calcula el número de rasgos en los que las dos instancias difieren
– Se suele dividir por el número total de rasgos
• Ratio de rasgos en los que ambas instancias difieren
– Se puede aplicar sobre vectores binarios, en ese caso:
Instancia x
• Distancia de Jaccard:

Instancia y
1 0
– Sobre vectores binarios
1 CTT CTF
0 CFT CFF

A1 A2 A3 A4 A5 A6
x 0 0 0 1 0 1 CTT=1, CTF=1 CFT=2, CFF=2
y 1 0 0 1 1 0
• Distancia sobre atributos categóricos: coeficiente de coincidencia
simple
– Si n es el número total de atributos y m el número de atributos en los que los
valores coinciden:

– Alternativa: uso de variables dummies y métricas sobre vectores booleanos

Color Tamaño Material Temporada


x Rojo XL Algodón Verano
y Azul XL Algodón Invierno
Criterios de selección de la métrica a utilizar
• Adaptada al tipo de datos
• Para datos continuos y densos suele ser frecuente usar la
distancia Euclídea
• Para datos dispersos (sparse) se suelen usar métricas que
ignoran las coincidencias 0-0
• Es importante un conocimiento del campo concreto de
aplicación
– Análisis de posibles estudios comparativos
• Combinación de métricas para atributos heterogéneos
Implementación en Python de diferentesdistancias
• Dentro del paquete SciPy:
https://docs.scipy.org/doc/scipy/reference/spatial.distance.html
Distancias sobre vectoresnuméricos Distancias sobre vectoresbooleanos
braycurtis(u, v[, w]) dice(u, v[, w])
canberra(u, v[, w]) hamming(u, v[, w])
chebyshev(u, v[, w]) jaccard(u, v[, w])
cityblock(u, v[, w]) kulsinski(u, v[, w])
correlation(u, v[, w,centered]) rogerstanimoto(u, v[, w])
cosine(u, v[, w]) russellrao(u, v[, w])
euclidean(u, v[, w]) sokalmichener(u, v[, w])
jensenshannon(p, q[, base]) sokalsneath(u, v[, w])
mahalanobis(u, v, VI) yule(u, v[, w])
minkowski(u, v[, p, w])
seuclidean(u, v, V)
sqeuclidean(u, v[, w])
wminkowski(u, v, p, w)
• Distancias y similitudes con Python
– https://colab.research.google.com/drive/1RB5AtNtr
TDar4l1zraa2PBu3yhAnKcNF?usp=sharing
Actuar

Adquirir Preparar Analizar Informar


“Afilar el hacha por más tiempo
puede facilitar el corte de la
leña”
Proverbio chino
La importancia de la preparación de los datos
• La preparación de datos
consume una parte muy
importante del tiempo
total de un proceso de
ciencia de datos
¿Qué incluye la preparación dedatos?
– Auditoría de los datos -exploración
• Entender los datos

– Pre-procesamiento: limpieza ytransformación


• Los datos reales son“sucios”:
• Inconsistentes La resolución de los
• Duplicados problemas se debe basar en
• Incompletos un conocimiento del
problema (domain
• Inválidos knowledge)
• Outliers
• Transformación:
• Formato adecuado para elanálisis
Auditoría de los datos
• Objetivo: comprobar si la calidad de los
datos es suficiente
– Análisis de datos ausentes (missing values)
– Comprobación de los tipos de datos
– Análisis exploratorio descriptivo
• Medias, valores máximos, desviaciones típicas,
cuartiles,…
• Análisis de la varianza
• Correlaciones
• No implica necesariamente causa-efecto
– Visualización de datos
Limpieza de datos
• Fusionar instancias duplicadas
• Homogeneizar formatos para facilitar el análisis
– Datos pueden venir de diferentes fuentes y estar en formatos diferentes o con unidades de medida
diferentes
• Fecha: 20/Abril/21, 20/04/2021, 04/20/21
• Lugar: New York, Nueva York, N.Y.
• Altura: 174cm, 1.74m
• Temperatura: grados C o F
• Distancia: millas, kilómetros, metros
• Datos de consumos: millas/galón, litros/100km

• Generar estimaciones para datos erróneos


– Ejemplo: Fechas de nacimiento y edades

• Conversiones de tipo
• Eliminación de outliers
– No necesariamente se corresponden con datos erróneos
Análisis exploratorio descriptivo de los datos
• Medidas decentralidad
– Media aritmética / media ponderada (se ve influida por outliers)
– Mediana
• Medidas de simetría
– Coeficiente de asimetría deFisher
• Medidas dedispersión
– Varianza
– Desviación típica (raíz cuadrada de la varianza)
Visualización gráfica
• Histogramas
• Boxplots
• …
Relaciones entre variables
• Correlaciones
– Datos numéricos → coeficiente decorrelación
- Pearson
– Datos categóricos → chi-cuadrado
– Datos categóricos y numéricos → ANOVA
• Correlación no necesariamente implica relacióncausa-efecto
– Correlación: las variables cambian juntas
– Causalidad: una variable afecta a la otra
Tratamiento de datos ausentes
• Posibles opciones de tratamiento de datos ausentes
– Mantener los datos como ausentes
– Eliminación de las instancias con atributos ausentes
– Eliminación del atributo para todo el conjunto
• Establecimiento de porcentajes máximos admisibles
– Imputación de valores:
• Uso de valores por defecto
• Valor ‘o’ para atributos numéricos
• Valor promedio en el resto de instancias o en un grupo de ellas con características
comunes
• Asignación del valor más frecuente en la muestra completa (moda)
• Uso de técnicas de regresión
Transformación de los datos
– Formato adecuado para el análisis
• Reducción de datos:
• Selección de rasgos relevantes para la tarea
de análisis.
• Agregación
• Reducción de la dimensión
• Escalado
• Normalización La preparación de datos puede
generar un conjunto de datos
• Estandarización más pequeño que el original,
mejorando la eficiencia del
• Discretización proceso de Minería de Datos.
• Escalado de los datos dentro de un rango especificado
– [0,1],[-1,1],…
– Reducir el impacto de las diferencias de escalas en los atributos
– Evitar trabajar con números muygrandes

Valores
escalados

SALARIO
EDAD
Nombre Edad Salario
• Distancias euclídeas:
Juan 23 años 2600 € – d(Juan,María) = 600.02
María 28 años 2000 € – d(Juan,Pedro) = 402.20
Pedro 60 años 3000 €

Escalado x/xmax

Nombre Edad Salario


• Distancias euclídeas:
Juan 0.35 0.87 – d(Juan,María) = 0.21
María 0.43 0.67 – d(Juan,Pedro) = 0.66
Pedro 1.00 1.00
Transformaciones de escala
• Escalado:
x/xmax
• Estandarización z-score

• Normalización min-max
• Otras técnicas de normalización
– Normalización por escalamiento decimal: desplazamiento del punto
decimal de los valores.
• Ejemplo: 256500o0 → 25.65 millones
– Normalización Sigmoidal: realiza una transformación no lineal de los
datos de entrada en el rango -1 a 1, usando una función sigmoidal.
• Ejemplo: función logística
• Características:
• Función creciente
• Tiende a 1 cuanto t tiende a infinito
• Tiende a 0 cuando t tiende a menos infinito
• Otras técnicas de normalización
– Normalización Softmax
• Generalización de la función logística
• También conocida como función exponencial normalizada
• “Comprensión” de los datos en el intervalo (0,1)
• Se llama así porque llega suavemente hacia su valor máximo y mínimo, sin nunca
llegar absolutamente.
• Dado un vector de datos 𝑥𝑥 = 𝑥𝑥1, 𝑥𝑥2, … , 𝑥𝑥𝑛𝑛
Otras transformaciones sobre los datos
• Transformaciones lógicas
– Las variables de intervalo se pueden convertir en ordinales como las
variables Talla o en nominales como Color, y crear variables ficticias o
dummy
Conversión de variables categóricas en cuantitativas
• La mayoría de modelos estadísticos no trabajan con datos categóricos
• Alternativas:
– Codificación mediante enteros (Rojo→1, Verde→2,Azul→3,…)
– Variable dummy para cada categoría (valores 0, 1)

Vehículo Motor Gasolina Diesel Eléctrico


A Diesel 0 1 0
B Eléctrico 0 0 1
C Gasolina 1 0 0
D Eléctrico 0 0 1
E Diesel 0 1 0
F Eléctrico 0 0 1
Discretización
• Útil cuando se trabajacon atributos numéricos
• Transformar los datos numéricos encategóricos
– Peso → [0, 10), [10,30), [30,50}, [50-100]
– Precio → [0,1000), [1000-5000), >=5000 → Bajo, Medio, Alto
– Edad → “joven”, “adulto”, “anciano”
– Temperatura → “muy frio”, “frio”, “templado”, “caliente”, “muy caliente”
• Divide el rango de valores del atributo en intervalos (bins)
• Reduce la variabilidad de los datos y puede mejorar su comprensión
• Algunos algoritmos solo aceptan datos ordinales o categóricos
– Reglas de asociación
– Clasificación
Optimización de la gestión de datos
• Especialmente necesario en datos masivos
– Modelos distribuidos
– Programación paralela
• Otras técnicas sencillas
– Gestión de matrices dispersas (sparse)
Reducción de datos
• Agregación (ej.: considerar ventas
semanales en lugar de diarias)
– Reducción de la variabilidad
• Selección de rasgos
– Eliminar rasgos redundantes o irrelevantes
• Ejemplo: rasgos con alta correlación
(precio/impuesto valor añadido)
– Combinar rasgos
– Crear nuevos rasgos
– Algoritmos de selección de atributos
• Reducción de la dimensión
– Análisis de componentes principales
• Auditoría y transformación de datos con
Python
– https://colab.research.google.com/drive/1bI7Lguq
wJlrJ51RsdQKJk0x-CHSxC73A?usp=sharing

También podría gustarte