0% encontró este documento útil (0 votos)
55 vistas67 páginas

Clase 6 - Teoria General DS, Python - Setup

Este documento presenta una introducción a los conceptos fundamentales de ciencia de datos y aprendizaje automático. Explica que el aprendizaje automático no es mágico y que los modelos no son perfectos. También describe los diferentes tipos de tareas de aprendizaje automático como clasificación, regresión y agrupamiento, así como los diferentes enfoques de aprendizaje como supervisado, no supervisado y reforzado.

Cargado por

dap05ori
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)
55 vistas67 páginas

Clase 6 - Teoria General DS, Python - Setup

Este documento presenta una introducción a los conceptos fundamentales de ciencia de datos y aprendizaje automático. Explica que el aprendizaje automático no es mágico y que los modelos no son perfectos. También describe los diferentes tipos de tareas de aprendizaje automático como clasificación, regresión y agrupamiento, así como los diferentes enfoques de aprendizaje como supervisado, no supervisado y reforzado.

Cargado por

dap05ori
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/ 67

Intro Data science &

Machine Learning
Teoría general DS, Python, Numpy, Pandas & setup
Recapitulando…

1. No es magia!
Recapitulando…

1. No es magia!
Recapitulando…

2. No son perfectos...
Recapitulando…

2. No son perfectos… En serio no lo son.


Recapitulando…

2. Desde hace décadas ejecutando tareas específicas:


a. OCR
b. Búsquedas webs
c. SPAM
d. Recomendaciones
e. Procesamiento de
voz & NLP
Recapitulando…

2. The science and art of programming computers so they can learn from data.
3. En un proyecto DS no es solo programar modelos: incluye metodología,
prácticas, técnicas, investigación, prueba, error & corrección.

2. ¿Qué es qué una computadora aprenda?


Recapitulando…

“Machine learning algorithms can figure out how to perform important tasks by
generalizing from examples…
As more data becomes available, more ambitious problems can be tackled“

- Pedro Domingos
A Few Useful Things to Know about Machine Learning
Recapitulando…

“Computer program is said to learn from experience E with respect to some task T
and some performance measure P, if its performance on T, as measured by P,
improves with experience E.”

Training set Modelo Measure


(Experiencia) (Programa) (Desempeño)

- Instance / sample 1
- Instance / sample 2
...
- Instance / sample n
Ejemplo

Tarea (T): Filtro de Spam, detectar nuevos emails que sean spam.

Conjunto de emails Ejecutar tarea T de Evaluar qué tantos


pasados o anteriores clasificar emails. emails detectó
ya clasificados. correctamente del total.

Training set Modelo Measure


(E) (Programa) (P)

- email 1 ➝ Es spam
- email 2 ➝ No Spam
...
- email n ➝ label n
Desarrollo tradicional de SW

1. Investigar el dataset con mails ya clasificados.


2. Identificar patrones comunes
3. Diseñar el pseudocódigo / lógica para identificar patrones del paso 2.
4. Escribir programa de detección:
Programa
Escribir programa de
Training set Ejecuta T
detección

Revisar error Deploy

5. Probar el programa, volviendo a paso 2 si no funciona correctamente.


Desarrollo tradicional de SW

Escribir programa de
detección
Desarrollo DS/ML

Modelo o programa SW es quien define las reglas de dirección:

Programa
Escribir programa de
Training set Ejecuta T
detección

Revisar error Deploy

Programas:
- Más cortos.
- Fáciles de mantener.
- Adaptables al cambio.
Entrenamiento del modelo

Existen diversos algoritmos.

Generalizar los datos:


Buscar los parámetros del
modelo óptimos.
Buenos para...

1. Situaciones donde lógica de programa se vuelve demasiado


compleja o imposible para programar y mantener de forma
tradicional.
2. Patrones cambiantes en el tiempo.
3. Extraer patrones y conocimiento de datos complejos y con
gran volumen (Data mining).
Un poco de taxonomía...
Clasificación de algoritmos

1. Tipo de tarea (T) que resuelve:


Clasificación, Regresión, Clusterización, Reducción de Dimensiones, Asociación…

2. Forma de generalizar a nuevos datos

3. Aprendizaje incremental vs batch.

4. Supervisión del aprendizaje:


Supervisado, No supervisado, Reforzado

Criterios no son excluyentes.


Regresión

Busca predecir un valor cuantitativo,


por ejemplo el precio de venta de una
casa, el valor de una acción, una
temperatura, etc.
Clasificación

1. Dividir en grupos predefinidos o categorías (categorial labels).


2. Datos de entrenamiento para los cuales se conoce a qué grupo pertenecen.
3. Modelo es entrenado y luego predice a qué grupo pertenecen nuevos
elementos.
4. Algunos usos:
- Identificar transacciones fraudulentas.
- Categorizar clientes riesgosos.
Basado en Instancias vs. basado en Modelos

Instance based learning Model based learning


Basado en Instancias vs. basado en Modelos

Instance based learning ● Generaliza mediante comparación (función de


distancia) a instancias conocidas (aprendidas de
memoria).

● Complejidad del algoritmo atada a cantidad de


instancias.

● Peor caso: Hipótesis es la lista de n instancias y


complejidad predecir es O(n).

● Fácil de adaptar a nuevas observaciones.

● Algoritmos de reducción de instancias (Reducir


ruido y evitar overfitting).

Ej: K-nearest neighbor


Basado en Instancias vs. basado en Modelos

● Generaliza mediante mediante un modelo.


Model based learning

● Complejidad del algoritmo depende del


modelo seleccionado y parámetros;
independiente de cantidad de instancias
(overfitting).

● Limitar complejidad del modelo con


funciones de regularización (Reducir ruido
y evitar overfitting).

Ej: Regresiones lineales, árboles de decisión.


Batch Learning vs. Online Learning

Batch / offline learning Incremental / online learning


Batch Learning vs. Online Learning

Batch / offline learning


● Todos los datos disponibles.

● Lento & costoso.

● Entrenado, luego deploy.

● Se ejecuta sin aprender datos


nuevos.

● Guardar todo el dataset.


Batch Learning vs. Online Learning

● Datos parciales. Alimentar con nuevas Incremental / online learning


instancias:

○ Stream

○ Minibatch

● Rapido y barato.
Batch Learning vs. Online Learning

Situaciones: Incremental / online learning

● Patrón cambiante.

○ Learning rate (Memoria).

○ Alto/Bajo vs. susceptibilidad.

● Dataset demasiado grande (Out-of-core).

○ Entrenar por partes.

○ Descartar dataset ya entrenado.


Aprendizaje Supervisado

Data Scientist actúa como guía para enseñarle al algoritmo.


Algoritmos:
● Labeled data (Datos de ejemplos para el alg.) - k-Nearest Neighbors
- Regresión Lineal
Muestra N + Resultado deseado N - SVMs
- Árboles de decisión
● Uso: Predecir un valor. - Algunas redes
Neuronales
● Más usado.
● Tipos de tareas:
○ Clasificación (predecir una clase/discreto)

○ Regresión (predecir un valor continuo)


Aprendizaje No supervisado
Identificar patrones sin ayuda humana.
● Unlabeled data: Algoritmos:
Muestra N - K-Means
- Apriori
● Uso: Encontrar relaciones/patrones. - Principal Component
Analysis
● Más difíciles de evaluar y entender.
● Tipos de tareas:
○ Clustering

○ Reglas de asociación

○ Visualización & Dimension Reduction


Aprendizaje No supervisado

Reglas de asociación
Aprendizaje No supervisado

Visualización & Dimensional reduction: Preservar características, reduciendo


dimensiones.
- Entrenamientos más veloces
- Menores requerimientos de espacio.
- Mejores resultados.
- Algoritmo limitados por cantidad de
dimensiones.
Aprendizaje No supervisado

Visualización & Dimensional reduction: Preservar características, reduciendo


dimensiones.
Ejemplo:

Reconocer la actividad de una persona:


- Caminando, Parado, Sentado, Acostado,
Subiendo escaleras, Bajando escaleras.

Input:
- 7352 samples de 30 individuos.
- Sample con 561 atributos o dimensiones.

Output:
Gráfico para explorar visualmente.
Aprendizaje No supervisado
Aprendizaje Semi-Supervisado

Componente Supervisada + Componente No supervisada


● Labeled data + Unlabeled Data
Muestra N + Resultado deseado N (para algunas)
● Uso: Extender predicción de un valor a otros similares.
● Combinaciones de algoritmos supervisados y no supervisados.
Aprendizaje Semi-Supervisado
Aprendizaje Semi-Supervisado
Aprendizaje Semi-Supervisado
Aprendizaje Semi-Supervisado
Aprendizaje Reforzado

Algoritmo aprende en base a las acciones que realiza.


● Aprende de recompensas y penalidades.
● Uso: Predecir mejor acción a tomar.
● Aprende a lo largo de intentos/tiempo.
● Estados y acciones
● Función de Recompensa: F(a,e) = reward
Aprendizaje Reforzado

Casos de Uso/Áreas:
● Vehículos autónomos.
● Juegos de estrategia.
● Robótica.
Desafíos & problemas
Principales problemas

- Calidad & cantidad de datos

Ruido, outliers, valores faltantes, falta de


estandarización (Consumen bastante tiempo).

Complejidad del Modelo vs. Tamaño del Dataset.


Principales problemas

Features Irrelevantes
- Cantidad de features disponibles y relevancia.

- Menos features irrelevantes, más features relevantes


-> mejor performance.

- Feature Engineering:
- Feature selection
- Feature extraction
- New features
Principales problemas

Generalización: Overfitting
- Algoritmo aprende de memoria -> Mala generalización.

- Mayor susceptibilidad en modelos complejos.

- Buscar balance:

- Complejidad del modelo usado & regularización.

- Patrones a detectar vs. ruido en los datos.

- Cantidad de datos.

Algoritmos de ML se basan en inferencia de los datos. Lógica inductiva ≠ deducción.


Principales problemas

Generalización: Underfitting
- Modelo demasiado simple para la naturaleza de los datos.

- Buscar:

- Modelo más poderoso

- Feature Engineering

- Reducir restricciones del modelo.


No Free Lunch

NFL Theorem [Wolpert ‘97]:


"Promediados sobre todos los problemas posibles dos algoritmos
de optimización cualesquiera son equivalentes"

1. Un modelo es una simplificación de la realidad, las simplificaciones se realizan


descartando detalles innecesario para enfocarse en el aspecto que se quiere
analizar.
2. Simplificaciones se basan en suposiciones que pueden aplicar a algunas
situaciones y no a otras.
3. Esto implica que modelos que expliquen bien una situación pueden fallar en
otras.
No Free Lunch

NFL Theorem [Wolpert ‘97]:


"Promediados sobre todos los problemas posibles dos algoritmos
de optimización cualesquiera son equivalentes"

- No existe un modelo que funcione mejor de otro, si medimos su performance


en todos los problemas posibles.
- Todo modelo funciona mal en algún problema o set de datos particular.
- Para un set de datos cualquier algoritmo puede ser el mejor.
No Free Lunch

NFL Theorem [Wolpert ‘97]:


"Promediados sobre todos los problemas posibles dos algoritmos
de optimización cualesquiera son equivalentes"

- Siempre se considera un problema particular y no todos los posibles


problemas:

Buscar el modelo que funciona bien para el problema objetivo particular.


Resumiendo

Teoría & conceptos.


Metodologia /
Tareas y
prácticas de
un proyecto SciKit-learn mLib RappidMiner TensorFlow
DS.
Terms and Conditions (Enfoque)
- Funcionamiento matemático
- Profundizacion matematica teorica y background estadistico:
https://web.stanford.edu/~hastie/ElemStatLearn/

- Creación de algoritmos desde cero.


- Utilización de algoritmos existentes y aspectos
prácticas.
Terms and Conditions (Enfoque)

Razones:
- Curso introductorio en Data Science.
- Punto de partida a otros temas…

- Base para 3ra parte (conceptos se reutilizan)


- Tendencia del Mercado, herramientas commodities y barreras de entrada.
Resumiendo

- ML permite a un sistema realizar una tareas aprendiendo de los datos, sin estar
explícitamente programado con un conjunto de reglas.
- Existen diferentes tipos de algoritmos y de problemas que resuelven.
- El modelo no puede ser ni muy simple ni muy complejo.
- Un proyecto de DS consta de:
a. Recolección de datos.
b. Limpieza de datos.
c. Alimentar el algoritmo con dichos datos.
d. Validar resultados midiendo performance.
e. Optimizar modelo.
Herramientas & Tecnologías
NumPy

- El utils o tools para calculos cientificos.


- Contiene entre otras cosas:
- Objeto de Array N-dimensional.
- Funciones útiles para álgebra lineal, generación de
números aleatorios.
- Integración performante con diversas DBs.
- Alta performance.

- Open source, licencia BSD.


- http://www.numpy.org/
Explotación & análisis de datos

- Provee:
- Estructuras de alto de alta performance de
interfaz simple.
- Herramienta de exploración y análisis de datos.

- Open source, licencia BSD.


- http://pandas.pydata.org/
Librería Machine Learning

- Herramientas simple para machine learning,


data mining y análisis de datos:
- Limpieza y preproceso de datos.
- Algoritmos de clasificación, regresión,
clusterización entre otros.
- Validación & medición de performance.
- Construida sobre NumPy, SciPy.

- Proyecto Open source, licencia BSD.


- http://scikit-learn.org/
“IDE”

- Crear y compartir documentos que


contienen código ejecutable, ecuaciones,
visualizaciones y anotaciones.
- Utilizado entre otras cosas para limpieza y
transformación de datos, simulación
numérica, modelado estadístico, machine
learning.

- Open source.
- http://jupyter.org/
Librería de graficación

- Generar gráficos a partir de código python:


- Gráficos de barra, histogramas, scatterplots,
errorcharts, etc...
- Puede ser usados en distintos entornos
como:
- Scripts de python
- Web servers
- Jupiter notebooks

- Open source, licencia PSF.


- https://matplotlib.org/
Python

Data Science Platform, basada en python.

Contiene cientos de paquetes orientados a


cálculos científicos, análisis y explotación
de datos.
Gestor de paquetes Conda

¡ - Gestor de paquetes y ambientes.


- Lenguages:
- Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++,
FORTRAN.
- Windows, Mac OS y Linux
- Por default, trabaja con el repositorio
construido y mantenido por Anaconda.

- Open source, licencia BSD.


- https://conda.io/
Características

- Foco en una sintaxis que favorezca un código legible.


- Lenguaje interpretado.
- Tipado dinámico.
- Multiparadigma:
- Orientación a objetos
- Imperativa
- Funcional
Server jupyter

Arranquemos el server de jupyter con:


$ mkdir ~/ProgDisYds
$ cd ~/ProgDisYds
$ jupyter notebook
Acceder a localhost:8888 y crear un nuevo notebook.
En el notebook...

1. Funciones básicas del notebook:

- Crear un notebook y kernel (Runtime).

- Celdas: código ejecutable & texto formateado.

- Hola mundo!

2. Un poco de python, numPy & pandas

Python, NumPy & Pandas:


Resumen y utilización
Setup & configuración
Instalación Anaconda

Python3:

Descargar python para windows: https://www.python.org/downloads/release/python-363/

Anaconda:

windows (x64):

1. Descargar: https://repo.continuum.io/archive/Anaconda3-5.0.1-Windows-x86_64.exe
2. Doble-clic en archivo .exe.
3. Seguir las instrucciones en pantalla:
a. Aceptar terminos y condiciones.
b. Instalar en un path que no tenga espacio y caracteres unicode.
c. Ejecutar sin modo admin a menos que se requiera.
d. Utilizar con python3.
4. Ejecutar desde el menú inicio.

Guia completa en https://conda.io/docs/user-guide/install/index.html#regular-installation


Instalación en VM

En Ubuntu / VM del curso:

python3 -V

# Si fuese necesario: sudo apt install -y python3

wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh

chmod a+x Anaconda3-5.0.1-Linux-x86_64.sh

./Anaconda3-5.0.1-Linux-x86_64.sh
Instalación en VM
Guia completa en https://conda.io/docs/user-guide/install/index.html#regular-installation
Durante la ejecución del script:

- Revisar licencia y confirmar con “yes”.

- Confirmar el path de instalación con “Enter”.

- Confirmar la opción de agregar al path con “yes”.

Abrir y cerrar terminal.

Ejecutar:

conda list
Instalación en VM
Para verificar la instalación, ejecutar:
Guia completa en https://conda.io/docs/user-guide/install/index.html#regular-installation

conda list

Para iniciar jupyter:

jupyter notebook

También podría gustarte