Está en la página 1de 20

PROPUESTA DE TRABAJO DE GRADO A TRAVÉS DEL

SEMINARIO ESTRATEGIAS PARA LA TOMA AUTOMÁTICA DE


DECISIONES

ALGORITMO COMPUTACIONAL PARA PHYTON UTILIZANDO


CLASIFICADORES EN MACHINE LEARNING

Estudiantes:
Edwar David Valverde Montalvo
Yanior Mendoza
E-mail:
edwarvalverde23@yahoo.com

Asesor:
Juan Carlos Briñez de León Ph.D.

CORPORACIÓN UNIVERSITARIA REMINGTON


Facultad de Ingenierías
Departamento de Ingenierías
Ingeniería Industrial
Mayo de 2023.
2
Resumen

Mediante este escrito se propone un software clasificador elaborado desde un potente


algoritmo codificador llamado Python, que nos permite verificar datos estadísticos
acertados de cualquier tema en general o Dataset, con el fin de usar esos datos para tomar
decisiones acertadas en nuestra labor diaria en cualquier campo del trabajo

Palabras claves

PHYTON, DATASET, CLASIFICADORES

Introducción

Hoy en día no es suficiente quedarnos rezagados en el uso de las tecnologías con


simplemente consultar mediante navegadores tales como Google, Safari, Explorer, entre
otros, ya que existen otras herramientas avanzadas que podemos usar para realizar
investigaciones más profundas acerca de temas de interés personal, científico o empresarial,
por ejemplo si queremos investigar acerca de una enfermedad y todas sus implicaciones ya
existen estos archivos referentes al campo de estudio a consultar con detalle y que se
pueden descargar libremente como son los Dataset, estos archivos viene codificados en
extensiones CVS que fácilmente pueden decodificarse a Excel u otro formato, tales datos
podemos usarlos para enriquecer, validar, evidenciar o comprobar nuestra investigación del
caso propio, es real la información y cuenta con aval científico; dichos datos pueden
llamarse desde un potente algoritmo clasificador como Python y que nos sirve para
reordenar nuestros datos, mejorarlos y sacar conclusiones para una buena toma de
decisiones

1. Planteamiento del problema

¿Existe alguna una herramienta o software adecuado que nos permita leer y decodificar
archivos descargables como Dataset para posterior clasificarla, reordenarla y estructurarla
para nuestros fines?

La necesidad de estas herramientas para la investigación es la de extraer y decodificar


grandes datos de la red, con el fin de poder realizar análisis estadístico, reordenar mis datos
para consulta, comprobar la información científica mediante evidencia, usarla con fines
laborales o estudiantiles, clasificarla y extraerla de manera eficiente.

Esta investigación del problema lo que busca es mejorar nuestras capacidades intelectuales
de análisis de datos, conocer a fondo el software para decodificación de datos y sobre todo
conocer las estrategias para la toma automática de decisiones mediante algoritmo

3
computacional utilizando clasificadores en machine learning, que a su vez, nos permitirán
ser más competitivos,

2. Marco teórico

4
5
6
7
8
9
10
11
Código
from google.colab import drive
drive.mount('/content/drive')
Importando dataset.
import pandas as pd
import numpy as np

#Cargando datos pima indians dataset


dataset = pd.read_csv(r'/content/drive/MyDrive/seminario estrategias para la toma
de deciciones/semana 3/heart.csv',sep=';')
dataset.head()

Dividing dataset into input (X) and output (Y) variables


dataset = np.array(dataset)
X = dataset[:,0:8]#Las entradas
Y = dataset[:,8]#Salida (Diagnósticos)
#2. Split input and output into training and testing sets
import sklearn
from sklearn.model_selection import train_test_split
X_train, X_test,Y_train, Y_test= train_test_split(X,Y,test_size=0.05)
#3. Data normalization
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
#3. Evaluando casos mediante todos los clasificadores
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score,precision_score

12
Modelo_0 = KNeighborsClassifier (5)
Modelo_0.fit(X_train, Y_train)
Y_pred_0 =Modelo_0.predict (X_test)
print("Accuracy KNN",accuracy_score(Y_test, Y_pred_0))

Modelo_1 = GaussianNB()
Modelo_1.fit(X_train, Y_train)
Y_pred =Modelo_1.predict (X_test)
print("Accuracy Bayes",accuracy_score(Y_test, Y_pred))

Modelo_2 = LinearDiscriminantAnalysis()
Modelo_2.fit(X_train, Y_train)
Y_pred_2 =Modelo_2.predict (X_test)
print("Accuracy LDA",accuracy_score(Y_test, Y_pred_2))

Modelo_3 = QuadraticDiscriminantAnalysis()
Modelo_3.fit(X_train, Y_train)
Y_pred_3 =Modelo_3.predict (X_test)
print("Accuracy QDA",accuracy_score(Y_test, Y_pred_3))

Modelo_4 = DecisionTreeClassifier()
Modelo_4.fit(X_train, Y_train)
Y_pred_4 =Modelo_4.predict (X_test)
print("Accuracy Tree",accuracy_score(Y_test, Y_pred_4))

Modelo_5 = SVC()
Modelo_5.fit(X_train, Y_train)
Y_pred_5 =Modelo_5.predict (X_test)
print("Accuracy SVM",accuracy_score(Y_test, Y_pred_5))
#Red neuronal
from sklearn.neural_network import MLPClassifier
Modelo_6 = MLPClassifier(hidden_layer_sizes=(40,10),
learning_rate_init=0.01,max_iter=1000)
# Fit the model
Modelo_6.fit(X_train, Y_train)
Y_pred_6 =Modelo_6.predict (X_test)
print("Accuracy ANN",accuracy_score(Y_test, Y_pred_6))
#Creating a new target
Target=np.ones((1, 8), "float32")
Target[0,0]=float(input('Ingrese edad del paciente entre 0 y 100: ')) #edad
Target[0,1]=float(input('Ingrese ek sexo entre 0 y 1: ')) #sexo
Target[0,2]=float(input('Ingrese Tipo de dolor torácico tipo de dolor torácico
entre 1 y 4: ')) #cp
Target[0,3]=float(input('Ingrese presión arterial en reposo (en mm Hg): '))
#trtbps
Target[0,4]=float(input('Ingrese colestoral en mg/dl obtenido a través del sensor
BMI: ')) #chol
Target[0,5]=float(input('Ingrese azúcar en sangre en ayunas > 120 mg/dl) (1 =
verdadero; 0 = falso): ')) #fbs
Target[0,6]=float(input('Ingrese resultados electrocardiográficos en reposo entre
0 y 2: ')) #rest_ecg
Target[0,7]=float(input('Ingrese frecuencia cardíaca máxima alcanzada entre 20 y
100: ')) # thalach:

13
Target = scaler.transform(Target) #Normalizar los datos

Prediction_0 =Modelo_0.predict (Target)


Prediction_1 =Modelo_1.predict (Target)
Prediction_2 =Modelo_2.predict (Target)
Prediction_3 =Modelo_3.predict (Target)
Prediction_4 =Modelo_4.predict (Target)
Prediction_5 =Modelo_5.predict (Target)
Prediction_6 =Modelo_6.predict (Target)

print(" ")

if Prediction_0==0:
print("Según KNN, el paciente tiene menos posibilidades de ataque al Corazón")
else:
print("Según KNN, el paciente tiene mas posibilidades de ataque al Corazón")

print(" ")

if Prediction_1==0:
print("Según Bayes, el paciente tiene menos posibilidades de ataque al
Corazón")
else:
print("Según Bayes, el paciente tiene mas posibilidades de ataque al Corazón")

print(" ")

if Prediction_2==0:
print("Según LDA, el paciente tiene menos posibilidades de ataque al Corazón")
else:
print("Según LDA, el paciente tiene mas posibilidades de ataque al Corazón")

print(" ")

if Prediction_3==0:
print("Según QDA, el paciente tiene menos posibilidades de ataque al Corazón")
else:
print("Según QDA, el paciente tiene mas posibilidades de ataque al Corazón")

print(" ")

if Prediction_4==0:
print("Según Tree, el paciente tiene menos posibilidades de ataque al Corazón" )
else:
print("Según tree, el paciente tiene mas posibilidades de ataque al Corazón")

print(" ")

if Prediction_5==0:
print("Según SVM, el paciente tiene menos posibilidades de ataque al Corazón")

14
else:
print("Según SVM, el paciente tiene mas posibilidades de ataque al Corazón")

print(" ")

if Prediction_6==0:
print("Según Redes neuronales, el paciente tiene menos posibilidades de ataque
al Corazón")
else:
print("Según Redes neuronales, el paciente tiene mas posibilidades de ataque al
Corazón")

15
16
Segunda prueba

17
3. Objetivos

Proponer un algoritmo computacional para Python utilizando clasificadores en machine


learning que me briden estrategias para la toma automática de decisiones.

Objetivo general

Implementar un algoritmo computacional para la predicción de ataque cardiacos utilizando


clasificadores en machine learning.

Objetivos específicos

- Procesar el conjunto de datos hasta obtener una representación numérica


- Identificar las entradas y salidas a partir de los datos.
- Extraer un conjunto de datos de entrenamiento y uno de evaluación.
- Implementar los modelos de clasificación utilizando Python.
- Evaluar el desempeño de los modelos implementados.

4. Metodología

¿Cuáles serán los instrumentos que utilizarán para recolectar la información?

Para la recolección de la información se recurrió al instrumento web de recolección de


datos página web www.kaggle.com en donde se extrajo el Dataset referente a los ataques
cardiacos, también se recurrió al algoritmo de decodificación de datos Python.

18
¿Cómo organizarán y analizarán la información?

La información se organizara de acuerdo al paso a paso sugerido en el seminario de


estrategias para la toma automática de decisiones y se analizara teniendo en cuenta el
Dataset descargado desde Kaggle para luego articularlo con el algoritmo computacional y
de ahí extraer, modificar y sacar conclusiones de los datos.

5. Resultados

 Primero buscamos el Dataset que es para predecir ataques cardiacos


 Se analiza la información y se eliminan las columnas que no se necesiten
 Las variables son edad del paciente, sexo, y demás como se muestra en la segunda
imagen
 Al final 0 es igual menos posibilidad de ataque al ❤ y 1 lo contrario
 Una vez hayamos analizado las datas y arreglado procedemos a subirlo a Drive Para
después ejecutar los códigos
 Hacemos el entrenamiento para que sepa cuáles son las entradas y cuales las
salidas, en este caso son 8 entradas y 1 salida
 Una vez se hallan entrenado los modelos se hacen pruebas para observar el
rendimiento y escoger el mejor modelo
 Después hacemos las predicciones ingresando los datos y miramos las respuestas
 En nuestro trabajo el mejor resultado es el tercer modelo

6. Conclusiones

Esta propuesta ha sido enfocada en el ámbito de la salud tomando como base un conjunto
de datos proporcionados por Kaggle, en el cual su contenido está formado por datos
clínicos de pacientes que posiblemente pudieron haber sufrido de un ataque cardiaco.
Una vez obtenido el conjunto de datos se procede a realiza un análisis de los datos para ser
procesado. Finalmente se puede concluir que los modelos implementado tienen un
porcentaje de acierto del 93% al momento de predecir si una persona tendrá o no un ataque
cardiaco, resaltando así todo el proceso y el tiempo que se dedicó a este trabajo que al final
puede ser de muchas utilidades en el área de la salud y en otros campos laborales donde se
requiera que el recurso humano necesite predicciones a situaciones de urgencia.

7. Trabajos futuros

Se trabajara en la predicción de índices de alimentos, sustancias o actividades que podrían


provocar ataques directos o indirectos al corazón.

19
8. Bibliografía

https://www.kaggle.com/datasets/rashikrahmanpritom/heart-attack-analysis-prediction-
dataset

https://colab.research.google.com/drive/1lA1Qtx4MmXJeclMRxp_s3G0oh9WnowMt

https://drive.google.com/drive/shared-with- me

20

También podría gustarte