SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
in-vehicle coupon
recommendation
Aprendizaje Automático UTN FRBA
G1 - TP1 R6575 2021
1
Índice
Acerca del dataset
Análisis exploratorio de datos
Entrenamiento de un clasificador
Entrenamiento de un regresor
Conclusiones
2
Acerca del dataset
Este dataset estudia si una persona aceptará el cupón que se le
recomienda en diferentes escenarios de conducción.
Analizar la posibilidad de que a un conductor se le ofrezca un cupón
y lo acepte, dependiendo de muchos factores, tanto de las
características del individuo como del contexto del momento.
Fuente:
Wang, Tong, Cynthia Rudin, Finale Doshi-Velez, Yimin Liu, Erica
Klampfl, and Perry MacNeille. 'A bayesian framework for learning
rule sets for interpretable classification.' The Journal of Machine
Learning Research 18, no. 1 (2017): 2357-2393.
https://archive.ics.uci.edu/ml/datasets/in-vehicle+coupon+recomm
endation
3
Análisis exploratorio de datos
Se encuentran 26 columnas y 12684 entradas de datos. Además en algunas columnas
hay un determinado número de datos nulos.
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 12684 entries, 0 to 12683
Data columns (total 26 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 destination 12684 non-null object
1 passanger 12684 non-null object
2 weather 12684 non-null object
3 temperature 12684 non-null int64
4 time 12684 non-null object
5 coupon 12684 non-null object
6 expiration 12684 non-null object
7 gender 12684 non-null object
8 age 12684 non-null object
9 maritalStatus 12684 non-null object
10 has_children 12684 non-null int64
11 education 12684 non-null object
12 occupation 12684 non-null object
13 income 12684 non-null object
14 car 108 non-null object
15 Bar 12577 non-null object
16 CoffeeHouse 12467 non-null object
17 CarryAway 12533 non-null object
18 RestaurantLessThan20 12554 non-null object
19 Restaurant20To50 12495 non-null object
20 toCoupon_GEQ5min 12684 non-null int64
21 toCoupon_GEQ15min 12684 non-null int64
22 toCoupon_GEQ25min 12684 non-null int64
23 direction_same 12684 non-null int64
24 direction_opp 12684 non-null int64
25 Y 12684 non-null int64
dtypes: int64(8), object(18)
memory usage: 2.5+ MB
4
Análisis exploratorio de datos
Entender las variables Distribución de los
resultados según la
salida Y
Crear Features:
combinar o separar,
codif one hot
Valores iguales en
toda la población no
definen nada en la
salida, y otras
variables que fueron
reemplazadas
Se trata de
aprendizaje
supervisado
Explorar los
datos
Graficar para
interpretar cada
variable
Preparar los
datos
Descartar
variables que no
aportan
Entrenar al
Clasificador
Métricas
Accuracy
(clases
balanceadas).
01 02 03 04 05 06
Nos propusimos avanzar con los siguientes pasos y herramientas para simplificar los
desafíos:
5
Análisis exploratorio de datos
Para la preparación de datos realizamos dos transformaciones con el fin de tener data
procesable. Mapeo a valores numéricos y encoding One Hot.
6
Mapeo numérico One Hot
Gráficos
Para entender mejor los datos que tenemos, procedimos a realizar gráficos de barra agrupados
por las clases de salida. Un gráfico por cada feature. Algunos ejemplos:
7
Análisis exploratorio de datos
Con el afán de reducir columnas para ser procesadas, aplicamos dos tipos de filtros.
Solamente tomamos casos donde el >85% de los valores son iguales y donde la
correlación con la salida es mayor a 0,1.
8
Análisis exploratorio de datos
Luego de estos filtros, solo nos quedamos con 8 columnas:
9
Entrenamiento de un clasificador
Para realizar el mismo vamos a utilizar diferentes clasificadores que nos provee las biblioteca
sklearn:
● LogisticRegression
● DecisionTreeClassifier
● BernoulliNB
● LinearSVC
Definimos una función para dividir el data set en partes de entrenamiento y test con un
factor del 20% para test
La salida ‘Y’ de aceptación de cupones, es una CLASE BINOMIAL:
“clase 1” de positivo para cupón aceptado
“clase 0” de negativo para cupón no aceptado
10
Entrenamiento de un clasificador
Regresor logístico: 0.650374458021285
11
Entrenamiento de un clasificador
BernoulliNB: 0.6452502956247537
12
Entrenamiento de un clasificador
LinearSVC: 0.650374458021285
13
Entrenamiento de un clasificador
DecisionTree: 0.6633819471817107
14
Entrenamiento de un clasificador
Score para los distintos clasificadores
● Regresor logístico: 0.654
● BernoulliNB: 0.644
● LinearSVC: 0.654
● DecisionTree: 0.644
15
Entrenamiento de un regresor
Para el regresor tenemos que predecir la feature ‘age’, luego de un remapeo.
● Es multiclase
● Valores de 0 - 7
● Usaremos LogisticRegression, de la biblioteca sklearn
16
Entrenamiento de un regresor
Al ser multiclase el tipo de regresión a utilizar es multinomial. Esto se especifica como un
parámetro de la función:
● El resultado fue una precisión de ~21%
● Decidimos filtrar features
17
Entrenamiento de un regresor
El filtrado se realizó de la siguiente forma:
● Eliminamos features que no aportan información (mismo valor para todas las muestras):
‘car’
● Eliminamos features muy correlacionados (corr >0.8): Temperatura y Clima
● Eliminamos features poco correlacionados con ‘age’: muchos features de Educación y
Ocupación
● Eliminamos muestras que tenían valores NaN
Luego, volvimos a probar la correlación con distintos ‘solvers’:
18
Entrenamiento de un regresor
Otras opciones
● Clasificador Random Forest:
● Varios regresores binomiales:
19
Conclusiones
● En particular el dataset tiene relativamente pocas muestras, y todas ellas
relacionadas con la salida original "Y = cupón aceptado si/no".
● Ésta característica dificulta la separación de clases. Necesariamente hubo que
trabajar los features.
● Logramos abstraernos de éstos problemas al pre-formatear y comparar 1 a 1 contra
la salida, aplicando filtros nos quedamos sólo con nuevas columnas que realmente
aporten a la separación de clases.
● Comparando distintos clasificadores, se puede aceptar que el mejor resultado
promedio de referencia se aproxima a 65% de score.
● En el caso de tomar otra salida de varios posibles elementos, tratamos a la
MULTICLASE como varios casos de CLASE BINOMIAL. Al desvincular las posibles
salidas resulta un score entre un 80 a 95%.
20
¡Gracias!
Integrantes alumnos:
Federico Tucci fedetucci@frba.utn.edu.ar
Marcos García marcoshgarcia@frba.utn.edu.ar
Nicolás Luque nluque@frba.utn.edu.ar
Docentes:
Diego P. Durante ddurante@frba.utn.edu.ar
Ramiro Verrastro ramiroverrastro@frba.utn.edu.ar
Juan Carlos Gomez juanca.gomez@frba.utn.edu.ar
21

Más contenido relacionado

Similar a AA G1 TP1 - in-vehicule coupon.pdf

informatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptxinformatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptx
DanielHidalgo92
 
Capítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultadosCapítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultados
Sergio Valenzuela Mayer
 
Practicar con weka.pptx
Practicar con weka.pptxPracticar con weka.pptx
Practicar con weka.pptx
DarnelyC
 
Anexo III segunda parte del manual de Ordenamiento Ecológico
Anexo III segunda parte del manual de Ordenamiento EcológicoAnexo III segunda parte del manual de Ordenamiento Ecológico
Anexo III segunda parte del manual de Ordenamiento Ecológico
Carlos Cáceres
 

Similar a AA G1 TP1 - in-vehicule coupon.pdf (20)

informatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptxinformatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptx
 
Presentación optimizacion de sistema
Presentación optimizacion de sistemaPresentación optimizacion de sistema
Presentación optimizacion de sistema
 
Clase redes neuronales 3
Clase redes neuronales 3Clase redes neuronales 3
Clase redes neuronales 3
 
Minería de datos
Minería de datosMinería de datos
Minería de datos
 
Feature Selection
Feature SelectionFeature Selection
Feature Selection
 
Capítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultadosCapítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultados
 
2 preprocesado
2 preprocesado2 preprocesado
2 preprocesado
 
El algoritmo k nn y su importancia en el modelado de datos
El algoritmo k nn y su importancia en el modelado de datosEl algoritmo k nn y su importancia en el modelado de datos
El algoritmo k nn y su importancia en el modelado de datos
 
El algoritmo k nn y su importancia en el modelado de datos
El algoritmo k nn y su importancia en el modelado de datosEl algoritmo k nn y su importancia en el modelado de datos
El algoritmo k nn y su importancia en el modelado de datos
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
Mi primer modelo de clasificación utilizando regresión logística
Mi primer modelo de clasificación utilizando regresión logísticaMi primer modelo de clasificación utilizando regresión logística
Mi primer modelo de clasificación utilizando regresión logística
 
Practicar con weka.pptx
Practicar con weka.pptxPracticar con weka.pptx
Practicar con weka.pptx
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Minería de datos
Minería de datosMinería de datos
Minería de datos
 
Anexo III segunda parte del manual de Ordenamiento Ecológico
Anexo III segunda parte del manual de Ordenamiento EcológicoAnexo III segunda parte del manual de Ordenamiento Ecológico
Anexo III segunda parte del manual de Ordenamiento Ecológico
 
Datos cuantitativos
Datos cuantitativosDatos cuantitativos
Datos cuantitativos
 
Informe - Investigacion de Operaciones
Informe - Investigacion de OperacionesInforme - Investigacion de Operaciones
Informe - Investigacion de Operaciones
 
Introducción de redes neuronales artificiales
Introducción de redes neuronales artificialesIntroducción de redes neuronales artificiales
Introducción de redes neuronales artificiales
 
Valores tipos de datos y operadores.pdf
Valores tipos de datos y operadores.pdfValores tipos de datos y operadores.pdf
Valores tipos de datos y operadores.pdf
 
Construir y consumir un modelo de Regresión Lineal con ML.NET y Angular
Construir y consumir un modelo de Regresión Lineal con ML.NET y AngularConstruir y consumir un modelo de Regresión Lineal con ML.NET y Angular
Construir y consumir un modelo de Regresión Lineal con ML.NET y Angular
 

Último

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Último (20)

Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 

AA G1 TP1 - in-vehicule coupon.pdf

  • 2. Índice Acerca del dataset Análisis exploratorio de datos Entrenamiento de un clasificador Entrenamiento de un regresor Conclusiones 2
  • 3. Acerca del dataset Este dataset estudia si una persona aceptará el cupón que se le recomienda en diferentes escenarios de conducción. Analizar la posibilidad de que a un conductor se le ofrezca un cupón y lo acepte, dependiendo de muchos factores, tanto de las características del individuo como del contexto del momento. Fuente: Wang, Tong, Cynthia Rudin, Finale Doshi-Velez, Yimin Liu, Erica Klampfl, and Perry MacNeille. 'A bayesian framework for learning rule sets for interpretable classification.' The Journal of Machine Learning Research 18, no. 1 (2017): 2357-2393. https://archive.ics.uci.edu/ml/datasets/in-vehicle+coupon+recomm endation 3
  • 4. Análisis exploratorio de datos Se encuentran 26 columnas y 12684 entradas de datos. Además en algunas columnas hay un determinado número de datos nulos. <class 'pandas.core.frame.DataFrame'> RangeIndex: 12684 entries, 0 to 12683 Data columns (total 26 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 destination 12684 non-null object 1 passanger 12684 non-null object 2 weather 12684 non-null object 3 temperature 12684 non-null int64 4 time 12684 non-null object 5 coupon 12684 non-null object 6 expiration 12684 non-null object 7 gender 12684 non-null object 8 age 12684 non-null object 9 maritalStatus 12684 non-null object 10 has_children 12684 non-null int64 11 education 12684 non-null object 12 occupation 12684 non-null object 13 income 12684 non-null object 14 car 108 non-null object 15 Bar 12577 non-null object 16 CoffeeHouse 12467 non-null object 17 CarryAway 12533 non-null object 18 RestaurantLessThan20 12554 non-null object 19 Restaurant20To50 12495 non-null object 20 toCoupon_GEQ5min 12684 non-null int64 21 toCoupon_GEQ15min 12684 non-null int64 22 toCoupon_GEQ25min 12684 non-null int64 23 direction_same 12684 non-null int64 24 direction_opp 12684 non-null int64 25 Y 12684 non-null int64 dtypes: int64(8), object(18) memory usage: 2.5+ MB 4
  • 5. Análisis exploratorio de datos Entender las variables Distribución de los resultados según la salida Y Crear Features: combinar o separar, codif one hot Valores iguales en toda la población no definen nada en la salida, y otras variables que fueron reemplazadas Se trata de aprendizaje supervisado Explorar los datos Graficar para interpretar cada variable Preparar los datos Descartar variables que no aportan Entrenar al Clasificador Métricas Accuracy (clases balanceadas). 01 02 03 04 05 06 Nos propusimos avanzar con los siguientes pasos y herramientas para simplificar los desafíos: 5
  • 6. Análisis exploratorio de datos Para la preparación de datos realizamos dos transformaciones con el fin de tener data procesable. Mapeo a valores numéricos y encoding One Hot. 6 Mapeo numérico One Hot
  • 7. Gráficos Para entender mejor los datos que tenemos, procedimos a realizar gráficos de barra agrupados por las clases de salida. Un gráfico por cada feature. Algunos ejemplos: 7
  • 8. Análisis exploratorio de datos Con el afán de reducir columnas para ser procesadas, aplicamos dos tipos de filtros. Solamente tomamos casos donde el >85% de los valores son iguales y donde la correlación con la salida es mayor a 0,1. 8
  • 9. Análisis exploratorio de datos Luego de estos filtros, solo nos quedamos con 8 columnas: 9
  • 10. Entrenamiento de un clasificador Para realizar el mismo vamos a utilizar diferentes clasificadores que nos provee las biblioteca sklearn: ● LogisticRegression ● DecisionTreeClassifier ● BernoulliNB ● LinearSVC Definimos una función para dividir el data set en partes de entrenamiento y test con un factor del 20% para test La salida ‘Y’ de aceptación de cupones, es una CLASE BINOMIAL: “clase 1” de positivo para cupón aceptado “clase 0” de negativo para cupón no aceptado 10
  • 11. Entrenamiento de un clasificador Regresor logístico: 0.650374458021285 11
  • 12. Entrenamiento de un clasificador BernoulliNB: 0.6452502956247537 12
  • 13. Entrenamiento de un clasificador LinearSVC: 0.650374458021285 13
  • 14. Entrenamiento de un clasificador DecisionTree: 0.6633819471817107 14
  • 15. Entrenamiento de un clasificador Score para los distintos clasificadores ● Regresor logístico: 0.654 ● BernoulliNB: 0.644 ● LinearSVC: 0.654 ● DecisionTree: 0.644 15
  • 16. Entrenamiento de un regresor Para el regresor tenemos que predecir la feature ‘age’, luego de un remapeo. ● Es multiclase ● Valores de 0 - 7 ● Usaremos LogisticRegression, de la biblioteca sklearn 16
  • 17. Entrenamiento de un regresor Al ser multiclase el tipo de regresión a utilizar es multinomial. Esto se especifica como un parámetro de la función: ● El resultado fue una precisión de ~21% ● Decidimos filtrar features 17
  • 18. Entrenamiento de un regresor El filtrado se realizó de la siguiente forma: ● Eliminamos features que no aportan información (mismo valor para todas las muestras): ‘car’ ● Eliminamos features muy correlacionados (corr >0.8): Temperatura y Clima ● Eliminamos features poco correlacionados con ‘age’: muchos features de Educación y Ocupación ● Eliminamos muestras que tenían valores NaN Luego, volvimos a probar la correlación con distintos ‘solvers’: 18
  • 19. Entrenamiento de un regresor Otras opciones ● Clasificador Random Forest: ● Varios regresores binomiales: 19
  • 20. Conclusiones ● En particular el dataset tiene relativamente pocas muestras, y todas ellas relacionadas con la salida original "Y = cupón aceptado si/no". ● Ésta característica dificulta la separación de clases. Necesariamente hubo que trabajar los features. ● Logramos abstraernos de éstos problemas al pre-formatear y comparar 1 a 1 contra la salida, aplicando filtros nos quedamos sólo con nuevas columnas que realmente aporten a la separación de clases. ● Comparando distintos clasificadores, se puede aceptar que el mejor resultado promedio de referencia se aproxima a 65% de score. ● En el caso de tomar otra salida de varios posibles elementos, tratamos a la MULTICLASE como varios casos de CLASE BINOMIAL. Al desvincular las posibles salidas resulta un score entre un 80 a 95%. 20
  • 21. ¡Gracias! Integrantes alumnos: Federico Tucci fedetucci@frba.utn.edu.ar Marcos García marcoshgarcia@frba.utn.edu.ar Nicolás Luque nluque@frba.utn.edu.ar Docentes: Diego P. Durante ddurante@frba.utn.edu.ar Ramiro Verrastro ramiroverrastro@frba.utn.edu.ar Juan Carlos Gomez juanca.gomez@frba.utn.edu.ar 21