dataset: https://drive.google.com/drive/u/1/folders/1C9gMArnhfKOXoJFPkVT5rOK6sFnXj9Uo
Apropiar conceptos fundamentales de las redes neuronales
¿Qué es una red neuronal?
Identificar los principales Frameworks usados en la industria para el desarrollo de Deep Learning
Frameworks de Deep Learning
Comprender los modelos de representación de las redes neuronales artificiales usados en Deep Learning
Estructura de redes neuronales
Creando nuestra primer red neuronal
Entrenando nuestra primera red neuronal
Visualizando el proceso de entrenamiento
Funciones de activación
Funciones de costo o pérdidas
Inicialización y Entrenamiento de RN
Optimizadores en redes neuronales
Clasificación Binaria
Clasificación de potenciales clientes
Análisis de resultados
Métricas de desempeño: regresión y clasificación
Evaluando métricas de desempeño
Ajuste de redes neuronales: overfitting y regularización
Regularización
Ajuste de redes neuronales: Hiper parámetros
Crear un modelo de regresión a partir de un caso de uso real
Introducción a las regresiones con Deep Learning: Planteamiento del problema
Solución del problema de regresión
Ajustes finales al proyecto
Cierre del curso
Cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 11
Preguntas 0
notebooks para descargar: https://drive.google.com/drive/u/1/folders/1JsEnifaNjxR1VmzIFo07u5M_9wEdEfnh
Les comparto mi implementación:
https://drive.google.com/drive/folders/1QtyH3RAT3Rh1Guee_UF-txTnZKmAgx81?usp=sharing
Realice el flujo de trabajo en dos notebooks, en el primero hago la ingeniería de datos y en el segundo aplico la división de datos y configuración del modelo.
Creo que hubiera sido útil para los propósitos del reto haber visto una sección de implementación optimización de hiperparámetros en el curso, de modo que el diseño de la red fuera más fácil y no una cuestión de ensayo y error que implica tiempo y coste computacional. De todas maneras, me gustó el reto y siento que aprendí.
Mejor que nos den todo el codigo nomas xd.
Lo que hice fue hacer LabelEncoder a las columnas que contengan strings, y reemplazar los valores NaN por la media, en el caso de la columna cylinders existen tres tipos de datos:strings, NaN y uno raro que es “o”, asumi que los “o” son 0 y extraje los enteros.Lo malo es que la arquitectura de NN que hice me da una perdida altisima, se debe hacer una mejor configuracion, me gustaria que me ayuden en eso.Gracias, les dejo el codigo si les sirve.
import pandas as pd
import numpy as np
df = pd.read_csv("cc.csv")
from sklearn.preprocessing import LabelEncoder as Le
#Encoding
columnas = list(df.columns)
columnas.remove("cylinders")
columnas.remove("price")
columnas.remove("year")
print(columnas)
for column in columnas:
drop_nan = df[column].dropna()
le = Le()
le.fit(drop_nan)
mean = round(np.mean(le.transform(drop_nan)))
#Replace with mean if its NaN and encode if its string
#Nan type is float and the others' is string
df[column] = df[column].apply(lambda x: le.transform([x])[0] if type(x) == str else mean)
#We drop NaN values and get the mean
def get_int(value):
try:
return int(list(value)[0])
except:
return 0
cil = df["cylinders"].dropna().apply(get_int)
mean = round(np.mean(cil.values)))
#We fill the NaN with the mean, the "o" with 0 and extract the integer of the strings
def get_int_(value):
try:
return int(list(value)[0])
except:
if value == mean:
pass
else:
return 0
df["cylinders"] = df["cylinders"].fillna(mean).apply(get_int_)
#We turn all the columns into integer columns
for col in df.columns:
try:
df[col] = df[col].astype(int)
except:
pass
#We test it
print(df.dtypes)
df.head(4)
#We have all columns filled with integers!!!, lets build our NN:
from sklearn.model_selection import train_test_split
from keras.layers import Dense
from keras import Sequential
import tensorflow as tf
x = df.drop(["price"], axis = 1)
y = df["price"]
x_train,x_test, y_val, y_test = train_test_split(x,y,test_size = 0.2, random_state = 0 )
network = Sequential([
Dense(units = 11, kernel_initializer = 'normal' ,input_shape = (11,), activation = tf.nn.relu),
Dense(units = 6, activation = tf.nn.relu),
Dense(units = 3, activation = tf.nn.relu),
Dense(units = 1, activation = tf.keras.activations.linear)
])
_ , x_val, _ , y_val = train_test_split(x_train, y_train , test_size = 0.1, random_state = 0)
network.compile(optimizer = "adam", loss = "mean_squared_error", metrics = ['mean_absolute_percentage_error'])
network.fit(x_train, y_train, epochs = 100, batch_size = 32, validation_data = (x_val, y_val), verbose = 0)
network.evaluate(x_test, y_test)
df= cars.copy()
for col in categoricas:
df = pd.concat([df, (pd.get_dummies(df[col])).astype(int)], axis=1)
df.drop(columns=[col],inplace=True)
#Al crear las variables dummies se crean varias columnas referentes a categorias
# 'other' que no aportan ningún valor al dataset por lo cual las eliminamos
df.drop('other', axis=1, inplace=True)
print(df.shape)
df.head(3)
a mi no me funciona este codigo
Este curso esta muy loco
Hay como un error al final de la clase, ademas parece que ha sido cortada.
tube muchos problemas, voy a tener que re ver los cap anterior,es muy largo y es re pesado
me dio 0.4 menor o igual yo vi jajaja
igual le di mas epocas seguro es menor ahora
Chicos no hicimos ninguno optimisation de hiper parámetros
Les comparto unas notas y los notebooks que use, espero les sean de utilidad, sigamos haciendo comunidad.
https://github.com/rb-one/Curso_RedesNeuronales_ScikitLearn/blob/master/Notes/notes.md
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?