Pienso que también se debería compartir Notebooks comentados para el resto de cursos, ayudan mucho.
Introducción a machine learning
Introducción a machine learning
Qué es machine learning y su historia
Framework de ciencia de datos: herramientas para machine learning
Tipos de modelos de machine learning
Reto: procesando un dataset
Algoritmos simples de machine learning
La “receta” para aplicar algoritmos de machine learning
Regresión lineal
Regresión logística
Árboles de decisión
Algoritmos de aprendizaje no supervisado
Reto: explora diferentes ejemplos de modelos y qué pueden hacer
Deep learning
Cómo funcionan las redes neuronales
Cómo es el entrenamiento de las redes neuronales
Cómo mejorar las predicciones de redes neuronales
Conclusiones
Qué más aprender de inteligencia artificial
Cómo profundizar en machine learning y deep learning
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! 💪
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.
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
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.
Es un dato Cuantitativo y puede ser de tipo float
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
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.