Reto: procesando un dataset

5/16

Lectura

¡Hola! Te doy la bienvenida a esta clase donde comenzaremos a poner a prueba lo que has aprendido en los cursos previos de ciencia de datos e inteligencia artificial de Platzi y en este.

Recuerda que para avanzar con esta clase deberás haber tomado los siguientes cursos:

Te reitero que es muy importante que conozcas estos temas y ya tengas las habilidades para que puedas aprender con facilidad y seguir con el curso hasta el final. Aprender machine learning en un principio no es una tarea sencilla, pero con la preparación adecuada y dedicación podemos obtener este conocimiento de forma trascendental.

Let’s go for it! 💪

Nuestra notebook de ejercicios

Para esta clase tendrás una notebook en Google Colab donde encontrarás piezas de código con explicaciones sobre el paso a paso para procesar y analizar un dataset antes de comenzar a aplicar algoritmos de machine learning.

Accede al notebook aquí.

Crea una copia de este notebook en tu Google Drive o utilizalo en el entorno de Jupyter notebook que prefieras.

En el notebook también encontrarás ejercicios que deberás resolver por tu cuenta. Sigue las instrucciones dentro del notebook y comparte tus resultados en los comentarios de esta clase.

En dado caso de que tengas alguna duda o no puedas completar alguno de los ejercicios, al final del notebook encontrarás una sección con las respuestas, pero antes de revisarlas da el máximo esfuerzo para realizar los ejercicios. Así aprenderás mucho más.

De igual forma te invito a que dejes en comentarios cualquier duda, dificultad o pregunta que tengas al momento de seguir el notebook y realizar los ejercicios. Con mucho gusto la comunidad de Platzi te ayudará.


¡Te deseo mucho éxito y nos vemos en el próximo módulo! Comenzaremos a detallar los diferentes modelos que existen de machine learning. 🧠

Aportes 23

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Pienso que también se debería compartir Notebooks comentados para el resto de cursos, ayudan mucho.

Resultados de preguntas del reto 2a:
P1: variables categóricas.
P2: variables cuantitativas.
P3: variable cuantitativas.
Por favor feedback con respecto a las respuestas.

Hay una herramienta muy buena para gráficar llamada Seaborn. Es un wrapper de matplotlib pero considero tiene mejores funcionalidades y una mejor sintaxis, permite realizar gráficos más atractivos.

import seaborn as sns

data['Diabetes']=data.apply(
    lambda row: 'Diabetic' if row.Outcome == 1 else 'Notdiabetic', axis=1)

sns.scatterplot(x='BloodPressure', y='Age', hue='Diabetes', 
                data=data,
                style='Diabetes',
                alpha=0.80,
                palette=['purple', '#55CCCC']
               ).set(title='Blood Pressure v. Age range of patients')```

Resultados de preguntas del reto 4:
P1: vsupervisado-regresión.
P2: supervisado-clasificación.
P3: no supervisado-clustering.

De reto, los de dispersion

Si tiene diabetes no hay correlacion entre presion arterial y edad
PERO SI NO TIENE DIABETES SI HAY CORRELACION ENTRE EDAD BAJA Y PRESION ARTERIAL BAJA

Info del reto:

Este es mi código a los retos:

RETO 1:

binvalues = [20, 25, 30, 35, 40, 85]
plt.figure(figsize=(10,8))
plt.subplot(1,1,1)
plt.hist(data['Age'], bins=binvalues, facecolor="g", alpha=0.4,
         edgecolor='black', linewidth=2)
plt.title("Age range of patients")
plt.ylim([0,510])
plt.xlabel("Age")
plt.ylabel("Count")
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
plt.show()

Resultado:

RETO 2:

plt.figure(figsize=(10,8))
plt.subplot(1,1,1)
plt.hist(data['Age'], bins=5, facecolor="g", alpha=0.4,
         edgecolor='black', linewidth=2)
plt.title("Age range of patients")
plt.ylim([0,510])
plt.xlabel("Age")
plt.ylabel("Count")
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
plt.show()

Resultado:

RETO 3:

diabetic = data[data["Outcome"] == 1]
notdiabetic = data[data["Outcome"] == 0]

plt.rcParams['font.size'] = 15 
f = plt.figure(figsize=(8,8))
ax = f.add_subplot(2,1,1)
ax.scatter(diabetic["BloodPressure"], diabetic["Age"], alpha=0.25, c='r')
ax.set_title("Diabetic: Age range of patients v. Blood Pressure")
ax.set_ylabel("Age")
ax.set_xlabel("Blood Pressure")

ax = f.add_subplot(2,1,2)
ax.scatter(notdiabetic["BloodPressure"], notdiabetic["Age"], alpha=0.25, c='b')
ax.set_title("Not diabetic: Age range of patients v. Blood Pressure")
ax.set_ylabel("Age")
ax.set_xlabel("Blood Pressure")

ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

f.tight_layout() 

Resultado:

Es muy notable que las personas de menor edad están concentradas en la gráfica de Not diabetic. Además, su Blod Pressure ronda entre los 60 a 100.

Punto 4:
a) Tienes un conjunto de datos de una empresa de ropa y deseas predecir el volumen de ventas de vestidos en el próximo mes. ¿Qué tipo de problema es?
RTA: Aprendizaje supervisado

b) Al igual que en la primera pregunta, estás utilizando un conjunto de datos de ropa. En lugar de predecir el volumen de ventas, querrás saber si venderás al menos 1000 de un determinado tipo de vestido. ¿Qué tipo de problema es este?
RTA: Aprendizaje supervisado

c) Tienes información sobre cómo compran ropa los clientes en tu tienda. Tienes un conjunto de datos de sus compras, segmentado en categorías: la cantidad de pantalones, camisas, vestidos y faldas que compra cada cliente. Deseas segmentar a tus clientes en diferentes grupos para poder enviar anuncios a cada grupo, según lo que quieran usar. ¿Qué tipo de problema podría ser este?

RTA: Aprendizaje no supervisado

Mi análisis del Scatter, punto 3:

Al obtener los dos scatter (Con diabetes y sin diabetes) podemos deducir lo siguiente: No existe correlación en ninguno de los 2. (Pacientes sin diabetes y pacientes con diabetes), esto debido a que no forma ningún patrón que permita definir una correlación negativa, positiva u otras.
Nota: Llegué incluso a dudar del primer gráfico, sobre una posible baja correlación positiva, pero lo descarto debido a qué hay muchos puntos dispersos y no logro divisar un patrón claro.

Amo lo bien documentado qué está ese colab :3

Tienes un conjunto de datos de información de ventas sobre equipos electrónicos. Una de las columnas del conjunto de datos describe qué es el producto: tableta, teléfono inteligente, TV, computadora. ¿Qué tipo de datos es este?

Respuesta: El tipo de dato es una variable catégorica.

  1. A partir del mismo conjunto de datos de equipos electrónicos anterior, tienes información sobre el precio de cada artículo. ¿Qué tipo de datos es este?

Es un dato Cuantitativo y puede ser de tipo float

  1. Tienes información sobre el kilometraje (distancia recorrida) de varios automóviles en un concesionario. ¿Qué tipo de información es esta?

Es un dato cuantitativo y puede ser de tipo entero.

Pregunta 1

Tienes un conjunto de datos de una empresa de ropa y deseas predecir el volumen de ventas de vestidos en el próximo mes. ¿Qué tipo de problema es?

R: Supervisado

Pregunta 2

Al igual que en la primera pregunta, estás utilizando un conjunto de datos de ropa. En lugar de predecir el volumen de ventas, querrás saber si venderás al menos 1000 de un determinado tipo de vestido. ¿Qué tipo de problema es este?

R: Supervisado

Pregunta 3

Tienes información sobre cómo compran ropa los clientes en tu tienda. Tienes un conjunto de datos de sus compras, segmentado en categorías: la cantidad de pantalones, camisas, vestidos y faldas que compra cada cliente. Deseas segmentar a tus clientes en diferentes grupos para poder enviar anuncios a cada grupo, según lo que quieran usar. ¿Qué tipo de problema podría ser este?

R: No supervisado

Pregunta 1

Tienes un conjunto de datos de información de ventas sobre equipos electrónicos. Una de las columnas del conjunto de datos describe qué es el producto: tableta, teléfono inteligente, TV, computadora. ¿Qué tipo de datos es este?
R: Categoricas tipo string

Pregunta 2
A partir del mismo conjunto de datos de equipos electrónicos anterior, tienes información sobre el precio de cada artículo. ¿Qué tipo de datos es este?
R: float

Pregunta 3
Tienes información sobre el kilometraje (distancia recorrida) de varios automóviles en un concesionario. ¿Qué tipo de información es esta?
R: float

reto 1:

resultado reto 1:

reto 2:

resultado reto 2:

reto 3:

resultado reto 3:

2a:
pregunta 1:
variable categórica
pregunta 2:
variable cuantitativa
pregunta 3:
variable cuantitativa

I share the results of the challenge in my deepnote notebook.
Deepnote_notebook

Respuestas:

1- Int64 y categórical… depende de como lo clasifiquen
2-Float64
3- Float64

3a-1-
f = plt.figure(figsize=(8,4))
ax = f.add_subplot(1,1,1)
data[“Age”].hist(ax=ax, edgecolor=‘black’, linewidth=2, bins=85)
ax.set_title(“Age range of patients”)
ax.set_ylim([0, 510])
ax.set_xlabel(“Age”)
ax.set_ylabel(“Count”)
f.tight_layout()

3a-2-
f = plt.figure(figsize=(8,4))
ax = f.add_subplot(1,1,1)
data[“Age”].hist(ax=ax, edgecolor=‘black’, linewidth=2, bins=5)
ax.set_title(“Age range of patients”)
ax.set_ylim([0, 510])
ax.set_xlabel(“Age”)
ax.set_ylabel(“Count”)
f.tight_layout()

3b-1-
plt.rcParams[‘font.size’] = 15
f = plt.figure(figsize=(8,8))
ax = f.add_subplot(2,1,1)
ax.scatter(notdiabetic[“BloodPressure”], notdiabetic[“Age”], alpha=0.25, c=‘r’)
ax.set_title(“Diabetic: Age range of patients v. Blood Pressure”)
ax.set_ylabel(“Age”)
ax.set_xlabel(“Blood Pressure”)

4 -1- aprendizaje supervisado - Regresión
4-2- aprendizaje supervisado - Clasificación
4-3- aprendizaje no supervisado

respuesta a 3b: Ejercicio del reto 1:

diabetic = data[data["Outcome"] == 1]
notdiabetic = data[data["Outcome"] == 0]

plt.rcParams['font.size'] = 15 
f = plt.figure(figsize=(8,8))
ax = f.add_subplot(2,1,1)
ax.scatter(diabetic["BloodPressure"], diabetic["Age"], alpha=0.25, c='r')
ax.set_title("Diabetic: Age range of patients v. Blood Pressure")
ax.set_ylabel("Age")
ax.set_xlabel("Blood Pressure")

plt.rcParams['font.size'] = 15 
f = plt.figure(figsize=(8,8))
ax = f.add_subplot(2,1,1)
ax.scatter(notdiabetic["BloodPressure"], notdiabetic["Age"], alpha=0.25, c='b')
ax.set_title("Not Diabetic: Age range of patients v. Blood Pressure")
ax.set_ylabel("Age")
ax.set_xlabel("Blood Pressure")

f.tight_layout() 

2a: Preguntas del reto
A partir de las siguientes preguntas, debes identificar el tipo de datos que se usaría en cada situación. Deja tus resultados en los comentarios de la clase donde encontraste este notebook.

Pregunta 1
R: Object, variable categorica

Pregunta 2
R: float64, variable cuantitativa

Pregunta 3
R: float64, variable cuantitativa

La verdad estoy confundido por las respuestas de mis coompañeros, ya que preguntan que tipod e dato, no que tipo de variable, es curioso como se puede responder mal a una pregunta por malinterpretar la intencion de quien pregunta.

Me pareció muy buena idea la forma de enseñar de este curso deberían ponerlo en práctica en los demás

Solucion Preguntas 2a

1-. Son datos categoricos
2-. Son datos flotantes
3-. Son Datos Flotantes

Solucion 3a Reto 1

binvalues = [20, 25, 30, 35, 40, 85]
bins = binvalues
fig, ax= plt.subplots(1,1,figsize=(8,4))
data["Age"].hist(ax=ax, bins=bins, edgecolor="lightblue",
                 linewidth=2, color="darkblue")
plt.ylim(0,510)
plt.xlim(15,100)
plt.xlabel("Count")
plt.ylabel("Edad")
plt.title("Age Histogram")
plt.show()

Solucion 3a Reto 2

plt.figure(figsize=(8,4))
data["Age"].hist(bins=5, edgecolor="lightblue", 
                 linewidth=2, color="darkblue")
plt.subplot(1,1,1)
plt.ylim(0,510)
plt.ylabel("Count")
plt.xlabel("Age")
plt.title("Age Histogram V.2")

Solucion 3b Reto 1

diabetic = data[data["Outcome"] == 1]
notdiabetic = data[data["Outcome"] == 0]

plt.rcParams['font.size'] = 15 
f = plt.figure(figsize=(8,8))
ax = f.add_subplot(2,1,1)
ax.scatter(diabetic["BloodPressure"], diabetic["Age"], alpha=0.25, c='r')
ax.set_title("Diabetic: Age range of patients v. Blood Pressure")
ax.set_ylabel("Age")
ax.set_xlabel("Blood Pressure")

# Solucion
ax= f.add_subplot(2,1,2)
ax.scatter(notdiabetic["BloodPressure"], notdiabetic["Age"], alpha=0.25, c='b')
ax.set_xlabel("BloodPreassure")
ax.set_ylabel("Age")
ax.set_title("Not diabetic: Age range of patients v. Blood Pressure")

f.tight_layout() 

4 Respuestas Aprendizaje Supervisado y no Supervisado

Pregunta 1

Tienes un conjunto de datos de una empresa de ropa y deseas predecir el volumen de ventas de vestidos en el próximo mes. ¿Qué tipo de problema es?
Aprendizaje Supervisado Algoritmo de Regresion

Pregunta 2

Al igual que en la primera pregunta, estás utilizando un conjunto de datos de ropa. En lugar de predecir el volumen de ventas, querrás saber si venderás al menos 1000 de un determinado tipo de vestido. ¿Qué tipo de problema es este?
Aprendizaje Supervisado Algoritmo de Clasificacion

Pregunta 3

Tienes información sobre cómo compran ropa los clientes en tu tienda. Tienes un conjunto de datos de sus compras, segmentado en categorías: la cantidad de pantalones, camisas, vestidos y faldas que compra cada cliente. Deseas segmentar a tus clientes en diferentes grupos para poder enviar anuncios a cada grupo, según lo que quieran usar. ¿Qué tipo de problema podría ser este?
Aprendizaje no supervisado Algoritmo de Clusterizacion