En este tutorial aprenderá a crear una red neuronal en Python. Para construir un modelo de red neuronal, Python proporciona algunos paquetes como TensorFlow y Keras, que ayudan a construir un modelo de red neuronal de aprendizaje automático con muy pocas líneas de código mediante la abstracción de código de bajo nivel.
Para construir cualquier modelo de aprendizaje automático, debe implementar los siguientes pasos.
- Importar los paquetes necesarios
- Cargue el conjunto de datos y divida los datos en el formulario de entrada y salida
- Definir el modelo
- Ajuste el modelo a los datos, que están separados como un formulario de entrada y salida
- Evaluar el modelo
- Haz predicciones con el modelo.
Vamos a crear un modelo de red neuronal paso a paso siguiendo los pasos mencionados anteriormente.
Cómo crear una red neuronal en Python
Importar los paquetes necesarios
Aquí importamos el paquete NumPy para cargar los datos. Además, las clases Sequential y Dense de la biblioteca Keras para definir el modelo. A continuación se muestra el código para importar las bibliotecas requeridas.
# import necessary packages import numpy as np from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense
Sube el conjunto de datos
Utilizamos el conjunto de datos de diabetes, que contiene entradas de pacientes para glucosa, insulina, niveles de presión arterial, IMC, etc.
Adjunto la imagen del conjunto de datos descargado para una vista clara.
Debe eliminar la primera fila, los nombres de las etiquetas, al cargar el conjunto de datos para construir el modelo de red neuronal. Adjuntar los nombres de las columnas eliminadas hoja de Excel utilizado en este artículo para crear el modelo.
Use el método numpy.loadtxt () para cargar un conjunto de datos que tome dos parámetros: nombre de archivo y delimitador.
Cortar los datos cargados para obtener los datos de entrada y salida. A continuación se muestra el código para cargar el conjunto de datos.
# load the dataset data = np.loadtxt('diabetesDataset.csv', delimiter=",") # split the data into input and output input = data[:,0:8] # Data from 0-7 columns output = data[:,8] # Data of column 8
Definir el modelo
Cree un modelo de red neuronal usando las clases Sequential y Dense. A continuación se muestra el código utilizado para crear el modelo de red neuronal.
# define the keras neural network model model = Sequential() model.add(Dense(12, input_shape=(8,), activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid'))
Después de definir el modelo, compile el modelo utilizando el método «compilar», que ayuda a representar la red para el entrenamiento y hacer las predicciones que se realizarán. A continuación se muestra el código para compilar la plantilla.
# compile the model model.compile(loss="binary_crossentropy",optimizer="adam",metrics=['accuracy'])
Ajustar el modelo a los datos
Adaptaremos el modelo a los datos de entrada y salida para que el modelo sea entrenado por los datos de entrada y salida que pueden ser útiles al hacer pronósticos. A continuación se muestra el código para ajustar el modelo a los datos.
# fit the model on input, output data model.fit(X, y)
Evaluar el modelo
Al evaluar el modelo, obtendremos la puntuación de precisión del modelo. Cuanto mayor sea la precisión, mejores serán las predicciones del modelo. La puntuación de precisión está entre 0 y 1. A continuación se muestra el código utilizado para evaluar el modelo.
# finding accuracy accuracy = model.evaluate(input, output) accuracy
Producción:
paso – pérdida: 0.4672 – precisión: 0.7760
[0.46723151206970215, 0.7760416865348816]
hacer previsiones
Usando la función predecir (), podemos hacer predicciones pasando los datos de entrada a la función predecir (). A continuación se muestra el código para hacer predicciones a partir del modelo entrenado.
# making predictions model.predict(input)
Código:
# import necessary packages import numpy as np from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense # load the dataset data = np.loadtxt('diabetesDataset.csv', delimiter=",") # split the data into input and output input = data[:,0:8] # Data from 0-7 columns output = data[:,8] # Data of column 8 # define the keras neural network model model = Sequential() model.add(Dense(12, input_shape=(8,), activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid')) # compile the model model.compile(loss="binary_crossentropy",optimizer="adam",metrics=['accuracy']) # fit the model on input, output data model.fit(X, y) # finding accuracy accuracy = model.evaluate(input, output) accuracy
Producción
paso – pérdida: 0.4672 – precisión: 0.7760
[0.46723151206970215, 0.7760416865348816]