Está en la página 1de 7

Introducción 

al Aprendizaje Automático 

Brenda Sarahi Ortiz Solís 1817454

  
1. Introducción y objetivo 
La Regresión Logística es una técnica estadística multivariante que nos permite estimar
la relación existente entre una variable dependiente no métrica, en particular dicotómica
y un conjunto de variables independientes métricas o no métricas. En este reporte
tenemos como objetivo comparar dos modelos donde se usará la regresión logística
sobre un conjunto de datos que van a entrenarse para realizar una prediccion, uno
hecho en Machine Learning Studio Classic y otro hecho en Python con sklearn con el
fin de concluir cual modelos es mejor
  
2. Describir el conjunto de datos 

Esta es una imagen del dataset llamado diabetes donde tenemos un conjunto de datos
que describen si un paciente es diabético o no y otras características. El dataset tiene
los siguientes atributos:
 
 Pregnancies
 PlasmaGlucose
 DiastolicBloodPressure
 TricepsThickness
 SerumInsulin
 BMI
 DiabetesPedigree
 Age
 PatientID
 Diabetic
Estos tributos tienen como fin describir las características del paciente y su condición,
en este caso la etiqueta que vamos a estar prediciendo es “Diabetic” y las demás
vendrían siendo sus características. Los datos serán separados y normalizados para el
entrenamiento para así mismo poder realizar la predicción con el algoritmo antes
mencionado de Regresión Logística.

3. Implementación del algoritmo y pruebas 
  
3.1 Metodología 

 Machine Learning Studio Classic


Se introdujo el conjunto de datos en el archivo csv llamado diabetes.csv y los datos
fueron normalizados donde se seleccionaron las columnas que se querían tomar en
cuenta y fueron:

 Pregnancies
 PlasmaGlucose
 DiastolicBloodPressure
 TricepsThickness
 SerumInsulin
 BMI
 DiabetesPedigree
 Age

La transformación de datos normaliza las columnas numéricas para colocarlas en la


misma escala, lo que ayuda a evitar que las que tienen valores grandes dominen el
entrenamiento del modelo.
Después se dividieron los datos para el entrenamiento, establecimos el método que fue
de regresión logística de dos clases recordando que su objetivo es predecir la
probabilidad de un resultado y es especialmente popular para las tareas de
clasificación. El algoritmo predice la probabilidad de aparición de un evento ajustando
los datos a una función logística.
Ya teniendo todo esto conectado el modelo se entrena y esta listo para entrar a la
puntuación y queda algo así:
Después de tener esto listo podemos realizar una implementación donde simplemente
cambiamos a recibir unos datos de entrada e incluimos que se pueda ejecutar un
código en Python que solo selecciona las columnas y les cambia el nombre a las
etiquetas quedando nuestro mapa de implementación de la siguiente forma:
Teniendo esto esta listo para poder hacer una prueba donde recibirá datos y entonces
podremos ver la predicción.

 Modelo en Python con sklearn


Los pasos en el código son exactamente los mismos donde leemos los datos del csv
con la librería pandas y seleccionamos las columnas con las que queremos trabajar
tanto como nuestra x & y.

Normalizaremos los datos con StandardScaler, dividimos y entrenaremos con


LogisticRegression que son librerías de sklearn

Y por último hacemos nuestra predicción y evaluamos imprimiendo nuestros resultados

3.2 Experimentos y resultados 

 Machine learning studio classic

Aunque en esta opción no pude encontrar el apartado de la matriz de confusión si es


que había una, con la salida que tuvo el modelo entrenado y el de puntuación de
modelo estos fueron los resultados
Donde aun cuando no encontré la matriz de confusión, viendo los datos me di cuenta
de que en la primera imagen arroja resultados positivos y la tolerancia de optimización
es alta entonces podría ser un buen modelo recordando que es mejor un falso positivo
que un falso negativo. En la segunda imagen podemos ver la desviación estándar que
varia un 0.44 lo cual no es tanto, es menos de la mitad por lo cual podría deducirse que
el error entre los datos igualmente no varía tanto.
Por último, se realizó una implementación donde llenamos los campos para poder
hacer una predicción y hacer una prueba de su efectividad y los resultados fueron los
siguientes:
Donde nos dio un resultado positivo a los datos ingresados con una probabilidad de
mas el 70% por lo que podría decirse que es una buena predicción.

 Python con sklearn

El código arrojo el siguiente resultado al ejecutarlo:

Aquí si podemos obtener la matriz de confusión por lo que tenemos mas claro ya que
es una herramienta que permite la visualización del desempeño de un algoritmo que se
emplea en aprendizaje supervisado. Cada columna de la matriz representa el número
de predicciones de cada clase, mientras que cada fila representa a las instancias en la
clase real. Uno de los beneficios de las matrices de confusión es que facilitan ver si el
sistema está confundiendo dos clases. Aquí en este código la ventaja es que puede
verse muy claramente los resultados donde vemos que la precisión es bastante alta y
el test accuracy es del 0.77 por lo que igualmente es una buena puntuación
4. Conclusiones 
¿Qué modelo es mejor?

Bueno, en ambos casos pudimos construir un modelo que era bastante bueno pero
tiene que haber un ganador y aunque al principio por un momento me incline más por
el modelo hecho en Machine Learning Studio Classic por su facilidad de uso y su
rápida implementación cuando realizamos la prueba la probabilidad fue mas o menos el
70% por lo que realice mas pruebas y los resultados eran bastante similares que
rondaban entre el 70%-75% en la probabilidad por lo que aunque en los resultados de
visualización no hay un apartado donde pueda decirnos el error del resultado o la
precisión con las pruebas si podemos darnos cuenta de que como la probabilidad en
cada caso es mas o menos constante entonces podemos concluir que la precisión del
modelo podría rondar entre esos números.
Entonces comparándolo con el modelo hecho en python podemos ver que el test
accuracy es del 0.77 que nos da una exactitud más alta y también la matriz de
confusión es mas precisa podemos ver que este resultado es mejor por lo que
podemos concluir que quizá por la sencillez del código y las librerías de sklearn que
realizaron un buen trabajo de optimización este modelo podría ser un poco mejor pero
aun así ambos modelos podrían ser de utilidad

También podría gustarte