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 Batch K-Means

27

Implementaci贸n de Mean-Shift

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

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Prep谩rate para tu pr贸ximo empleo comprando hoy a precio especial

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

7 D铆as
20 Hrs
23 Min
39 Seg

Implementaci贸n de Mean-Shift

27/37
Recursos

Aportes 14

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Quiero agregar una manera de ver graficamente estos algoritmos de clustering
Adjunto el codigo, explico
Utilize PCA para tener mi dataset en 2 dimensiones para que me sea facil graficarlo,
y con meanshift.cluster_centers_ me devuelven las coordenadas de un centroide, al final bota el grafico de los puntos y como se dividen
NOTA: como baje mi dataset a 2 dimensiones supongo que perdi mucha informacion, por eso esto es mas algo ludico para entender mejor lo que hacemos

pca = PCA(n_components=2)
pca.fit(X)
pca_data = pca.transform(X)
    
meanshift = MeanShift().fit(pca_data)
plt.scatter(pca_data[:, 0], pca_data[:, 1], c=meanshift.predict(pca_data))
plt.scatter(meanshift.cluster_centers_[:, 0], meanshift.cluster_centers_[:, 1], c='black', s=200)
plt.show()

como funciona mean-shift

Piensa que cada punto tiene un peso y todo el espacio se curva con ese peso, por lo que lugares con muchos puntos tienen se hunden mas haciendo un hueco, despu茅s lanzas un monton de bolitas en lugares aleatorios y en donde se acumulen ahi estar谩n los clusters.

gift que ilustra el proceso

para entender mas a fondo este video te explica como las bolitas funcionana y este articulo te explica el metodo de clustering

Si es una cantidad 鈥渕oderada鈥 de datos para implementar MeanShift, se refiere a que tama帽o de la fuente? numero de Filas por n煤mero de Columnas, cantidad de registros, tama帽o del archivo en Kb, Mb, Gb?

Otra pregunta es, si la restricci贸n para usar es 煤nicamente al tama帽o de la fuente de datos ,o deben considerarse m谩s elementos para usarlos?

C贸digo:

import pandas as pd 

from sklearn.cluster import MeanShift 

if __name__ == "__main__":

   # Cargamos el dataset 
    dataset = pd.read_csv('./data/candy.csv') 
    #print(dataset.head(5))  

    # Vamos a eliminar la columna
    X = dataset.drop('competitorname', axis=1)

    meanshift = MeanShift().fit(X)
    # Aqu铆 el algoritmo nos devolvio 3 clusters, porque le pareci贸 que esa era la cantidad 
    # correcta teniendo en cuenta como se distrubuye la densidad de nuestros datos 
    print(max(meanshift.labels_))
    print("="*64)
    # Imprimamos la ubicaci贸n de los centros que puso sobre nuestros datos. Hay que recordar que estos algoritmos 
    # crean un centro y a partir de ah铆 se ajuztan a todos los datos que lo rodean  
    print(meanshift.cluster_centers_)
    
    # Los arreglos lo integramos a nuestros datasets 
    dataset['meanshift'] = meanshift.labels_  
    print("="*64)
    print(dataset)  
``

Si ambos modelos tienen K-3 clusters. Entonces podemos comparar sus predicciones

(df['KMeans'] == df['MeanShift']).sum() / df.shape[0]

#output = 0.5058823529411764

Y vemos que solo coinciden con el 50% de los datos

Hola a todos, me ayudar铆an mucho si me resolvieran esta duda que surgi贸 de esta clase. Al usar Mean-Shift o K-Means puedo tener variables dummy y continuas?. En la clase al parecer la tenemos pero vi un articulo que dec铆a que no se pod铆a. Gracias

Otra forma de identificar cuantos clusters cre贸 MeanShift es usando el constructor set()

print(set(meanshift.labels_))

Para ver las etiquetas:
Se tiene que importar la librer铆a de numpy.

np.unique(meanshift.labels_)

[0 1 2]
![](https://i.makeagif.com/media/4-07-2015/zOZVui.gif)
Mean Shift es un algoritmo de agrupamiento que no requiere la especificaci贸n previa del n煤mero de cl煤steres y puede encontrar autom谩ticamente los centroides de los cl煤steres en funci贸n de la densidad de los datos. Aqu铆 tienes una explicaci贸n m谩s detallada: * **Funcionamiento**: * Mean Shift es un algoritmo de agrupamiento basado en la densidad que busca los modos locales de densidad de los datos. * Comienza seleccionando aleatoriamente puntos de datos como centroides iniciales (semillas). * Luego, para cada punto de semilla, calcula el centro de masa ponderado de los puntos de datos vecinos dentro de un radio especificado (bandwidth) alrededor del punto de semilla. * Desplaza el centro de masa al nuevo punto calculado y repite el proceso hasta que converja a un punto donde ya no hay cambios significativos. * Los puntos de datos que convergen a los mismos centroides se asignan al mismo cl煤ster. * **Par谩metro Bandwidth**: * El par谩metro de ancho de banda (bandwidth) determina la influencia de los puntos de datos vecinos en el c谩lculo del centro de masa. * Un ancho de banda m谩s peque帽o significa que se considerar谩n menos puntos de datos en el c谩lculo del centro de masa, lo que puede conducir a cl煤steres m谩s peque帽os y detallados. * Por el contrario, un ancho de banda m谩s grande agrupar谩 m谩s puntos de datos y puede producir cl煤steres m谩s grandes y difusos. * **Ventajas**: * No requiere la especificaci贸n previa del n煤mero de cl煤steres, lo que lo hace adecuado para conjuntos de datos donde el n煤mero de cl煤steres no es conocido de antemano. * Puede manejar cl煤steres de cualquier forma y tama帽o y es resistente a la inicializaci贸n aleatoria, lo que lo hace m谩s robusto que K-Means en algunos casos. * **Desventajas**: * Puede ser computacionalmente costoso en conjuntos de datos grandes, ya que calcula la densidad para todos los puntos de datos en cada iteraci贸n. * Sensible al par谩metro de ancho de banda, y la selecci贸n incorrecta del mismo puede conducir a resultados sub贸ptimos. En resumen, Mean Shift es una t茅cnica de agrupamiento vers谩til que puede encontrar autom谩ticamente cl煤steres de cualquier forma y tama帽o en funci贸n de la densidad de los datos. Es 煤til cuando no se conoce el n煤mero de cl煤steres de antemano y se desea una mayor flexibilidad en la forma y el tama帽o de los cl煤steres identificados. Sin embargo, puede ser m谩s lento en conjuntos de datos grandes y sensibles a la selecci贸n del par谩metro de ancho de banda.
Aqu铆 les dejo un art铆culo en caso de que quieran profundizar un poco m谩s en el algoritmo <https://www.geeksforgeeks.org/ml-mean-shift-clustering/>

El algoritmo Mean-Shift es un algoritmo de agrupamiento que busca autom谩ticamente el n煤mero de cl煤steres en un conjunto de datos y asigna los puntos de datos a los cl煤steres en funci贸n de la densidad de puntos. El algoritmo funciona moviendo de manera iterativa los centroides de los cl煤steres hacia las regiones de mayor densidad de puntos hasta que converja a los m谩ximos locales.

Agregu茅 el resultado de los grupos creados en una nueva columna en el data frame original:

    meanshift_group_vector = meanshift.labels_

    dataset['meanshift_groups'] = meanshift_group_vector