No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Análisis de resultados del modelo de regresión

27/28
Recursos

Aportes 6

Preguntas 2

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Cambié la arquitectura de la red y 80 epochs:

def build_model_regression(input_data):
    model = models.Sequential()
    model.add(layers.Dense(50,activation='relu',input_shape=(input_data,)))
    model.add(layers.Dropout(0.5))
    model.add(layers.Dense(50,activation='relu'))
    model.add(layers.Dropout(0.5))
    model.add(layers.Dense(1))
    model.compile(optimizer='rmsprop', loss='mse',metrics=['mae'])
    return model


loss: 19.8648 - mae: 3.1667

Holis, les presento otra forma de hacer el problema ya que la del profe me terminó mareando 😦 (honestamente), en esta forma se usa cross validation de scikit learn.

Primero se importa KerasRegressor y cross_validate. Después se crea un función donde se colocan todas las capas de nuestra red neuronal, luego se convierten en DataFrame los datos dados al inicio del problema y se juntan los datas y los labels para solo tener un solo paquete de X & y con el cual hacer el cross_validate.

Posteriormente se realiza la normalización, pero en lugar de hacerlo calculado la media y la desviación estandar se importa el StandarScaler, con esto se obtiene los X & y normalizados ( previamente se les vuelve a convertir de DataFrame ya que al normalizarlos se transforman en arrays) . Despues se utiliza la funcion KerasRegressor para colocar la funcion que se ha creado ademas de las epocas y el tamaño de batch. Por ultimo se llama a la funcion cross_validate

A los resultados obtenidos (cross) se lo convierte a un DataFrame y se le toman un promedio para que sean mas faciles de interpretar los datos, en estos se observan que tanto el score de entrenamiento como el score de pruebas son muy altos además de que el loss y el mae son mucho menores que los calculados en clase lo cual demuestra la eficiencia de nuestra red

Agregué regularización L2 en las primeras dos capas pasandole 0.0001 de parametro y cambié a 104 epochs

Tengo pensado en hacer un modelo de regresion para predecir el precio del bitcoin o cualquier stock, se ve sin duda una aplicacion que te podria dar mucho dinero

Aumente el doble la primera capa

Model: "sequential"
_____________________________________________
Layer (type)                 Output Shape              Param #   
===========================================
dense (Dense)                (None, 128)               1792      
_____________________________________________
dense_1 (Dense)              (None, 64)                8256      
_____________________________________________
dense_2 (Dense)              (None, 1)                 65        
===========================================
Total params: 10,113

Asigne a k que fuera 5, le di 70 epochs y un learning rate de 5e-4 osea 0.0005
con eso consegui un el siguiente loss y mae al evaluar

4/4 [==============================] - 0s 1ms/step - loss: 12.2931 - mae: 2.3541
[12.293133735656738, 2.3540897369384766]

probe con dropouts y al parecer aumentaban el mae, mientras que yo lo que buscaba era disminuirlo, fui probando learning rates y el 0.001 afectaba mucho mientras que el 0.0001 lo dejaba muy alto, asi que termino medio quedo justo

Modelo con menos perdida, lo hice agregando otra capa con 64 neuronas, los métodos de dropout y regularization no mejoraron su rendimiento.

mean absolute error

4/4 [==============================] - 0s 3ms/step - loss: 18.5582 - mae: 2.5696
[18.5582275390625, 2.5696332454681396]