Aprender los conceptos clave

1

Todo lo que aprender谩s sobre MA con Scikit-Learn

2

驴C贸mo aprenden las m谩quinas?

3

Problemas que podemos resolver con Scikit-learn

4

Las matem谩ticas que vamos a necesitar

Iniciar un proyecto con sklearn

5

Configuraci贸n de nuestro entorno Python

6

Instalaci贸n de librer铆as en Python

7

Datasets que usaremos en el curso

Optimizaci贸n de features

8

驴C贸mo afectan nuestros features a los modelos de Machine Learning?

9

Introducci贸n al PCA

10

Preparaci贸n de datos para PCA e IPCA

11

Implementaci贸n del algoritmo PCA e IPCA

12

Kernels y KPCA

13

驴Qu茅 es la regularizaci贸n y c贸mo aplicarla?

14

Implementaci贸n de Lasso y Ridge

15

Explicaci贸n resultado de la implementaci贸n

16

ElasticNet: Una t茅cnica intermedia

Regresiones robustas

17

El problema de los valores at铆picos

18

Regresiones Robustas en Scikit-learn

19

Preparaci贸n de datos para la regresi贸n robusta

20

Implementaci贸n regresi贸n robusta

M茅todos de ensamble aplicados a clasificaci贸n

21

驴Qu茅 son los m茅todos de ensamble?

22

Preparaci贸n de datos para implementar m茅todos de ensamble

23

Implementaci贸n de Bagging

24

Implementaci贸n de Boosting

Clustering

25

Estrategias de Clustering

26

Implementaci贸n de Mean-Shift

27

Implementaci贸n de Batch K-Means

Optimizaci贸n param茅trica

28

Validaci贸n de nuestro modelo usando Cross Validation

29

Implementaci贸n de K-Folds Cross Validation

30

Optimizaci贸n param茅trica

31

Implementaci贸n de Randomized

32

Bonus: Auto Machine Learning

Salida a producci贸n

33

Revisi贸n de nuestra arquitectura de c贸digo

34

Importar y exportar modelos con Sklearn

35

Creaci贸n de una API con Flask para el modelo

36

Cierre del curso

37

Material adicional para consultar

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Preparaci贸n de datos para PCA e IPCA

10/37
Recursos

Aportes 13

Preguntas 9

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Les dejo el c贸digo comentado, por si no les corre compa帽eros:

# Importamos las bibliotecas generales
 
import pandas as pd
import sklearn
import matplotlib.pyplot as plt 
 
# Importamos los m贸dulos espec铆ficos
 
from sklearn.decomposition import PCA
from sklearn.decomposition import IncrementalPCA
 
from sklearn.linear_model import LogisticRegression
 
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
 
if __name__ == "__main__":
 
   # Cargamos los datos del dataframe de pandas
   dt_heart = pd.read_csv('data/heart.csv')
 
   # Imprimimos un encabezado con los primeros 5 registros
   print(dt_heart.head(5))
 
   # Guardamos nuestro dataset sin la columna de target
   dt_features = dt_heart.drop(['target'], axis=1)
   # Este ser谩 nuestro dataset, pero sin la columna
   dt_target = dt_heart['target']
 
   # Normalizamos los datos
   dt_features = StandardScaler().fit_transform(dt_features)
  
   # Partimos el conjunto de entrenamiento. Para a帽adir replicabilidad usamos el random state
   X_train, X_test, y_train, y_test = train_test_split(dt_features, dt_target, test_size=0.3, random_state=42)

Definitivamente me gusta m谩s Jupyter Notebook o Google Collab Jajaja

La estandarizacion que hace sklearn con StandardScaler es:
z = x-u / s
u:media
s:desviacion estandar

No me qued贸 muy claro lo de random_state, en cursos anteriores entend铆a que se deb铆a desactivar para no arrojar valores aleatorios. Tambi茅n me cuestiono, porque raz贸n X_train usa may煤scula y y_train usa min煤scula? supongo que es convenci贸n pero no comprendo la raz贸n.

驴Alguna vez se han preguntado por qu茅 en ML la 鈥淴鈥 se escribe en may煤sculas y la 鈥測鈥 en min煤sculas?

Este es el motivo:

Fuente: Introduction to Machine Learning with Python, de Andreas C. M眉ller & Sarah Guido

100% recomendado ese libro 馃槃

驴Qu茅 es normalizar los datos en ML?

Para que funcionen mejor muchos algoritmos de Machine Learning usados en Data Science, hay que normalizar las variables de entrada al algoritmo. Normalizar significa, en este caso, comprimir o extender los valores de la variable para que est茅n en un rango definido. Sin embargo, una mala aplicaci贸n de la normalizaci贸n, o una elecci贸n descuidada del m茅todo de normalizaci贸n puede arruinar tus datos, y con ello tu an谩lisis.

Ejemplo visto en clase:

Escalado est谩ndar (Standard Scaler)

Una alternativa al escalado de variables es usar otra t茅cnica conocida como escalado est谩ndar (a cada dato se le resta la media de la variable y se le divide por la desviaci贸n t铆pica).


脡ste m茅todo funcionar铆a para normalizar la se帽al de la fibra 贸ptica del ejemplo anterior, conservando su forma, pero, 驴qu茅 pasar谩 con otras se帽ales?. Los dos estad铆sticos que se usan (media y desviaci贸n t铆pica) son muy sensibles a valores an贸malos (muy grandes o muy peque帽os con respecto al resto).

Imaginemos otro ejemplo. Vamos a medir cu谩nto se usa la palabra 鈥渞esaca鈥 en publicaciones de Facebook (datos reales). La frecuencia de uso de esta palabra tiene picos durante el fin de semana y valles entre semana. Los datos tienen valores anormalmente altos en fiestas como Halloween y Navidad.

Antes de normalizar, calculamos la media (5.55) y la desviaci贸n t铆pica (10.53). Ya podemos ver que la media est谩 en torno a 5, cuando nuestros datos sin anomalias no pasan de valores en torno al 4 (mala se帽al). Si aplicamos ahora la normalizaci贸n est谩ndar, tenemos lo siguiente.

Lo primero que vemos es que no hemos conseguido normalizar entre 0-1 con este m茅todo. Adem谩s ahora tenemos valores negativos, cuando antes no los ten铆amos. Por si esto fuera poco, nuestros valores pico y valle han quedado muy atenuados por culpa de las anomal铆as. Una soluci贸n a esto ser铆a eliminar las anomal铆as antes de normalizar (tema para otro post).

An谩lisis similares se puede hacer para otros m茅todos de normalizaci贸n: escalar sobre m谩ximo, normalizer, escalado robusto, etc. Puedes consultar una versi贸n extendida de este an谩lisis en este enlace.


Bibliograf铆a:

.

import pandas as pd
import sklearn 
import matplotlib.pyplot as plt

from sklearn.decomposition import PCA
from sklearn.decomposition import IncrementalPCA

from sklearn.linear_model import LogisticRegression

from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split

if __name__ == "__main__":
    dt_heart = pd.read_csv('./data/heart.csv')

    print(dt_heart.head(5))

    dt_features  = dt_heart.drop(['target'], axis=1)
    dt_target = dt_heart['target']

    dt_features = StandardScaler().fit_transform(dt_features)

    X_train, X_test, y_train, y_test = train_test_split(dt_features, dt_target, test_size=0.3, random_state=42)```

El valor para 鈥渞andom_state鈥 puede ser cualquier n煤mero, sin embargo casi siempre se utiliza el n煤mero 42. Aparentemente el n煤mero 鈥42鈥 fue elegido como un tributo a 鈥淗itch-hiker鈥檚 Guide鈥 de Douglas Adams, ya que supuestamente era la respuesta a la gran pregunta de 鈥淟a vida, el universo y todo鈥 calculada por una super computadora con inteligencia artificial creada espec铆ficamente para resolver este misterio.
https://www.youtube.com/watch?v=tK0urw144cU

Buena explicaci贸n la de este profesor.

No me parece buena idea dar estos curos en Visual Studio. Principalmente porque no te das cuenta oportunamente d贸nde est谩 el error, tampoco puedes correr varias celdas a la vez para ir comparando, para explorar, para entender mejor el c贸digo.

Normalizar con un scaler.

Mi codigo en un NoteBook en git hub

Para los que est谩n en Linux, en Linux tenemos que poner el punto en el '.data/heart.csv
No as铆:

dt_heart = pd.read_csv('.data/heart.csv')

Sino, as铆:

dt_heart = pd.read_csv('data/heart.csv')

O les saldr谩 este espantoso error 馃槺:

Nota: La 煤ltima ejecuci贸n ya fue sin el punto y la antepen煤ltima fue con punto, jejeje.