Skip to content

Instantly share code, notes, and snippets.

@robintux
Created September 11, 2024 02:00
Show Gist options
  • Save robintux/142a71eef5b5ffc8fbbcbeee1d0f280b to your computer and use it in GitHub Desktop.
Save robintux/142a71eef5b5ffc8fbbcbeee1d0f280b to your computer and use it in GitHub Desktop.
# %% Primer Paso : Datos y modulos
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Keras
from keras.layers import Dense
from keras.models import Sequential
import os
os.chdir("/home/abraham/Desktop/PDE_ML_Jul2022")
# Cargaremos el dataset : pima-indians
url = "https://raw.githubusercontent.com/robintux/Datasets4StackOverFlowQuestions/master/pima-indians-diabetes.csv"
dataset = pd.read_csv(url,
header = None)
# Pima Indians
# Problema de clasificacion (la 9na columna es la variable dependiente)
# Todas las variables independientes son numericas (colmnas 0,1,2,..., 8)
X = dataset.loc[:,0:7]
y = dataset.loc[:,8]
# Deseo obtener : y = f(X)
# f : red neuronal
# %% 2do Paso : Definamos el modelos
# Creamos el modelo : Clase Sequential
model1 = Sequential()
# En model1 almacenamos el esqueleto de mi estructura
# Agregamos capas a mi red neuronal :
# Agreguemos una capa para definir la capa de entrada (con el
# correspondiente numero de variables independiente : 8) y el numero
# de neuronas de la primera capa oculta, ademas de la funcion de
# activacion.
model1.add(Dense(input_dim = 8, units = 15, activation = "relu",
name = "1eraCapaOculta_5Neuronas") )
#
# Agreguemos otra capa oculta : neuronas = 7
model1.add(Dense(units = 12, activation = "tanh",
name = "2daCapaOculta_7Neuronas"))
#
# Agreguemos una 3era capa oculta con 12 neuronasl
model1.add(Dense(units = 20, activation = "relu",
name = "3eraCapaOculta_12Nueronas"))
#
# Agreguemos nuestra capa de salida
# Aqui es donde debemos tener en consideracion la naturaleza de la variable
# de respuesta/target : y (binaria). Esto para especificar la funcion de
# activacion
model1.add(Dense(1,activation = "sigmoid",
name ="Capa_de_SAlida"))
# Observemos a model1
# from keras.utils.vis_utils import plot_model
from keras.utils import plot_model
plot_model(model1,
show_shapes = True,
show_layer_names = True)
# %% 3er Paso : Compilamos el modelo
# COnsideremos 3 aspectos de la compilacion de la arquitectura
# diseñada en el paso anterior :
# Funcion de Perdida : Esta en dependencia de la variable de salida
# https://math.libretexts.org/Courses/Universidad_Complutense_de_Madrid/Las_matematicas_de_la_inteligencia_artificial/07%3A_Redes_Neuronales/7.04%3A_Funciones_de_Perdida
# https://keepcoding.io/blog/funcion-perdidas-deep-learning/
# Optimizador
# metrica
# COmpilamos
model1.compile(loss = "binary_crossentropy",
optimizer = "adam",
metrics = ["accuracy"]
)
# %% 4to Pasoo : Ajustamos nuestro dataset a la arquitectura de RN
#
# Usamos el metodo fit
# Debemos tener en cuenta dos argumentos :
# epoch : Pasamos a traves de todas las filas de nuestro
# conjunto de datos
#
# batch_size : Numero de filas consideradas porel modelo dentro
# de una apoca antes de actualizar los pesos
model1.fit(X, y, batch_size = 10, epochs = 15)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment