124
Taller de Proyecto Yelp Data Challenge Integrantes Fabian Cifuentes Esteban Díaz Oscar Sánchez Cristian Vásquez

Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Taller de ProyectoYelp Data Challenge

Integrantes Fabian Cifuentes Esteban Díaz Oscar Sánchez Cristian Vásquez

Page 2: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

IntroducciónEl presente documento detalla el trabajo realizado para cumplir los objetivos de Exploración, Clustering y Clasificación, requeridos por el Taller de Proyecto del Postítulo de Ciencias e Ingeniería de Datos dictado por el Departamento de Ciencias de la Computación de la Universidad de Chile.

Este documento cuenta con los siguientes capítulos:

● Capítulo 1: Presentación del Set de Datos● Capítulo 2: Limpieza y Exploración de Datos● Capítulo 3: Clustering● Capítulo 4: Clasificación● Conclusiones ● Bibliografía

Page 3: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Capítulo 1 Presentación del Set de Datos

Page 4: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Presentación del Set de Datos YelpEl set de datos seleccionado para el desarrollo de este taller fue proporcionado por la compañía Yelp a través del programa “Yelp Dataset Challenge”.

¿Qué es Yelp?

Yelp es una red social que permite, mediante su aplicación móvil y sitio web, publicar críticas y reseñas de establecimientos comerciales (business). A través de estas críticas (reviews) y una calificación basada en estrellas (1 a 5), Yelp permite a los usuarios ranquear los negocios que se encuentran inscritos en la base de datos de la red [web-01].

Una vez al año, a través de los “Yelp Dataset Challenge”, esta red social libera un fragmento de su dataset para que centros de estudios realicen análisis de los datos recuperados.

Para el contexto de este trabajo, se utilizó el dataset correspondiente a la versión 10 del “Yelp Dataset Challenge”, el cual fue liberado el día 30 de Agosto del 2017.

Page 5: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Presentación del Set de Datos YelpYelp Dataset Challenge Versión 10

El dataset correspondiente a la versión 10 del Yelp Challenge recolecta datos de 4.736.897 reviews, registrados por 1.183.362 usuarios sobre 156.639 business y repartidos en 964 ciudades de 4 países (Estados Unidos, Canadá, Reino Unido y Alemania).

Cada business incluido en el set de datos se clasifica en una o varias de las 1240 categorías (restaurantes, bancos, aeropuertos, etc.) y se agrupa en uno o varios de los 39 atributos (con estacionamiento, bueno para niños, ruidoso, entre otros).

El modelo de datos y el detalle de las tablas contenidas en el dataset se muestran a continuación:

Page 6: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Presentación del Set de Datos Yelp

Page 7: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Presentación del Set de Datos YelpEl Set de Datos de Yelp está compuesto por las siguientes 11 tablas:

Tabla Detalle Nro. Registros

attribute Entrega información de 39 diferentes atributos de un Business, como son: Estacionamiento, Internet, Nivel de Ruido, Bueno para niños, entre otros

1.229.805

business Entrega Información Descriptiva de los Business inscritos en Yelp: Nombre, Dirección, Locación (lat, lng), evaluación por estrellas (promedio de los reviews realizados por los usuarios)

156.639

category Detalla las Categorías en las que se encuentra un Business, como son: Restaurant, Shopping, Coffee & Tea, de un total de 1240 categorías distintas

590.290

checkin Detalla la cantidad de veces que los usuarios han informado que se encuentran en un Business, agrupada por dia de la semana y hora

3.738.750

Page 8: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Presentación del Set de Datos YelpTabla Detalle Nro. Registros

friend Detalla la red de “amigos” de los usuarios de la red social 39.846.890

hours Detalla los horarios en los que un Business se encuentra abierto 734.421

photo Incluye la descripción y la etiqueta de las fotos subidas a Yelp 196.278

review Entrega el detalle de las críticas realizadas por los usuarios de Yelp a los Business. Los campos relevantes que contiene esta tabla son los siguientes:

- Calificación a través de estrellas (1 ~ 5),- Texto de crítica (hasta 5000 caracteres),- Evaluaciones realizadas por otros usuarios a esta crítica (useful, funny,

cool)

4.736.897

elite_years Detalla el o los años que un usuario ha sido elite 180.563

Page 9: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Presentación del Set de Datos Yelp

De las tablas que se encuentran en el dataset, se escogieron las tablas user, business y review como fuente principal para la realización de la Inspección, Clustering y Clasificación.

Tabla Detalle Nro. Registros

tip Detalla una recomendación realizada por un usuario hacia un producto o servicio entregado por un Business. En esta tabla se almacena el texto y fecha de la recomendación

1.028.802

user Entrega información de los usuarios de la red social: Nombre, cantidad de Reviews realizados, desde cuándo está inscrito en Yelp y las calificaciones que han recibido sus comentarios por parte de otros usuarios de la red

1.183.362

Page 10: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Presentación del Set de Datos YelpEl objetivo principal del proyecto busca predecir la Calificación en Cantidad de Estrellas, entregada por un usuario Yelp a un business, a través del texto que redacta en su crítica.

Como objetivo secundario, mediante la Clusterización se busca encontrar Patrones de Agrupamiento para los datos de los business que se encuentran en el dataset.

Page 11: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Capítulo 2 Limpieza y Exploración de Datos

Page 12: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Limpieza y Exploración de DatosSe realizaron las siguientes acciones de limpieza para delimitar el dataset a un ámbito más abordable de acuerdo a los objetivos y plazos de entrega del proyecto:

● Se seleccionaron sólo 196 de las 1240 categories que se encuentran en el dataset original y corresponden únicamente al rubro de comidas.

● Se seleccionaron business que se encuentran en las categorías seleccionadas, para acotar el lenguaje utilizado en la descripción de los reviews.

● Se seleccionaron sólo los reviews que se encuentran en idioma inglés.

La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 [web-10], Matplotlib v.2.1.1 [web-11] y Seaborn 0.8.1 [web-12]. Todas ejecutadas en Python v.3.6.2.

Page 13: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Limpieza y Exploración de DatosEl resultado de esta limpieza se detalla en la siguiente tabla (principales):

Tabla Nro Registros Originales Nro. Registros Filtrados Porcentaje del Total

category 590.290 317.217 53.74%

business 156.639 82.577 52.72%

review 4.736.897 3.618.335 76.39%

attribute 1.229.805 1.031.653 83.89%

user 1.183.362 952.417 80.48%

Page 14: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Limpieza y Exploración de DatosLos resultados de la exploración de datos a las tablas de usuarios (user), negocios (business) y críticas (reviews), se detallan en las siguientes secciones:

● Exploración Tabla Review,● Exploración Tabla User,● Exploración Tabla Business

Page 15: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Sección 2.1 Exploración Tabla Review

Page 16: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla ReviewsAl realizar el análisis de la distribución de los textos de los reviews por cantidad de caracteres, los resultados de la inspección entregan lo siguiente:

Se puede observar que 2.541.903 reviews (70,3% del total) tienen más de 280 caracteres (la longitud máxima de 1 tweet).

Total Media DV Min Max

3.618.335 618,65 574,82 3,00 5000,00

5% 25% 50% 75% 95%

114,00 242,00 439,00 795,00 1721,00

Page 17: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla ReviewsDe la misma forma, al analizar la distribución de los textos de los reviews por la cantidad de palabras, los resultados entregados son lo siguiente:

Total Media DV Min Max

3.618.335 116,73 108,74 1,00 1067,00

5% 25% 50% 75% 95%

21,00 45,00 83,00 115,00 326,00

Page 18: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla ReviewsSe analizaron las 15 palabras más comunes utilizadas en los reviews, omitiendo stop-words, separándolos por su evaluación en estrellas.

1 Estrella 2 Estrellas 3 Estrellas 4 Estrellas 5 Estrellas

foodplaceoutserviceoneupbacktimehereevenneverordergoverydont

foodgoodplaceoutserviceveryoneheretimeup backreallyorderedgo didnt

goodfoodplaceveryhereoutserviceonereallygreattimeupmoregoback

goodfoodplacegreatveryhereoutonereallyservicetimebackniceupgo

greatfoodplacegoodveryhereservicebestouttimeonebacklovegoamazing

Page 19: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla ReviewsLa distribución de la cantidad de estrellas asignadas a cada review, se muestra en la siguiente tabla:

Estrellas Cantidad Porcentaje

1 Estrella 426.436 11,78 %

2 Estrellas 342.543 9,47 %

3 Estrellas 501.505 13,86 %

4 Estrellas 983.625 27,18 %

5 Estrellas 1.364.255 37,71 %

Page 20: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla ReviewsEl siguiente gráfico detalla la distribución de los reviews por cantidad de estrellas.

Se puede observar que para los reviews de hasta los 2.000 caracteres existe una mayor frecuencia con calificaciones altas (4-5 estrellas), en comparación a calificaciones menores. A partir de esta cantidad, la frecuencia de los reviews es muy similar, sin importar su calificación.

Page 21: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla Reviews

Realizando una exploración temporal de los reviews, es posible observar que a partir del año 2011 la cantidad aumenta dado el crecimiento de usuarios en la red social.

La cantidad de usuarios antiguos son los que tienen menor participación en los últimos años.

Page 22: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Sección 2.2 Exploración Tabla User

Page 23: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla UserLa siguiente tabla muestra la distribución de los usuarios elite a partir de 3 atributos:

● friend_count (cantidad de amigos),● en_review_count (cantidad de reviews en

inglés),● useful (cantidad de evaluaciones útiles de

sus comentarios)

friend en_review useful

Total 53879,00 53879,00 53879,00

Media 222,36 17,85 472,69

Dv 431,50 44,15 3083,16

Min 0,00 1,00 0,00

Max 14995,00 2999,00 202867,00

25% 43,00 2,00 12,00

50% 108,00 5,00 45,00

75% 241,00 14,00 168,00

Page 24: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla UserLa siguiente imagen muestra la correlación y el histograma de los usuarios elite y sus 3 atributos antes mencionados:

● friend_count,● en_review_count,● useful

Page 25: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla UserLa siguiente imagen muestra cómo ha ido aumentando la cantidad de usuarios año a año. Los usuarios registrados desde el año 2011 corresponden al 69% del total en el set de datos.

Page 26: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Se buscó determinar un comportamiento predominante de los usuarios elite con un muestreo no-probabilístico de los 10.000 usuarios con más amigos, en relación a la cantidad de reviews vs cantidad de amigos.

Se puede concluir que el grueso de usuarios elite se identifica por la cantidad de reviews, y no necesariamente por la cantidad de amigos.

Exploración Tabla User

Page 27: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

También podemos observar en una línea de tiempo, que desde el año 2012 los business con más reviews resultan ser mayoritariamente reseñados algunas vez por usuarios Elite.

Exploración Tabla User

Page 28: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Sección 2.3 Exploración Tabla Business

Page 29: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla BusinessLa siguiente tabla muestra la distribución de los business a partir de 3 atributos:

● checkin_count (cantidad de checkin),● en_review_count (cantidad de reviews en

inglés),● tip_count (cantidad de tips)

checkin en_review tip

Total 82577,00 82577,00 82577,00

Media 151,38 43,82 10,21

Dv 632,12 127,08 31,74

Min 0,00 3,00 0,00

Max 43026,00 6947,00 1448,00

25% 6,00 5,00 1,00

50% 25,00 12,00 3,00

75% 97,00 37,00 8,00

Page 30: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla BusinessLa siguiente imagen muestra la correlación y el histograma de la tabla business y los 3 atributos antes mencionados:

● checkin_count,● en_review_count,● tip_count

Page 31: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla BusinessAnalizando más en profundidad la cantidad de reviews por business, de acuerdo a la detección de outliers [web-13] a partir del rango intercuartil, 5.571 business (6.87% del total) son outliers extremos tomando en cuenta su cantidad de reviews.

Este 6.87% del total de business posee el 52,18% (1.887.909 reviews) del total de reviews.

Page 32: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Exploración Tabla BusinessEl siguiente gráfico muestra las 20 categorías más comunes utilizadas por los negocios (business) en Yelp.

Entre los más significativos, 51582 business corresponden a la categoría Restaurants, 23001 a Food y 11362 a Nightlife

Page 33: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Capítulo 3 Clustering

Page 34: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

ClusteringPara el proceso de búsqueda de clusters se eligió la tabla business, contenida en el dataset de Yelp, considerando la cantidad de atributos de esta tabla con potencial de ser incluidos en este análisis.

Como algoritmo base del análisis de datos, se utilizó la técnica no supervisada K-means [web-02] con múltiples configuraciones para datos de entrada y cantidad de clusters (valor de K).

El desarrollo de estos análisis se realizó utilizando Python v.3.6.2 y la librería sklearn [web-03].

El resultado de las distintas pruebas se detallan a continuación:

Page 35: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El primer análisis se realizó utilizando los siguientes atributos:

● Conteo de checkin, ● Conteo de reviews,● Conteo de tips, estos datos sin normalizar

Se utilizó una muestra del 5% del total de los Business (4053 registros), utilizando una semilla para poder replicar los resultados.

Se eliminaron los outliers extremos [web-13] para evitar el agrupamiento de datos por outliers y no outliers (resultado del primer intento de clusterización).

Clustering - Análisis 1

Page 36: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Dado el análisis del codo, que muestra el gráfico anterior, se seleccionó un valor para K=4, con el objetivo de realizar la clusterización.

La distribución de los cluster en cantidad de elementos es la siguiente:

Clustering - Análisis 1

Cantidad Porcentaje

Cluster 0 (rojo) 2605 64%

Cluster 1 (azul) 395 10%

Cluster 2 (verde) 864 21%

Cluster 3 (morado) 189 5%

Page 37: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Al no normalizar los datos, la variable que predomina para la creación de los clusters corresponde a la que posee mayor varianza. En este caso, es la variable check-in.

Clustering - Análisis 1

Page 38: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El segundo análisis se realizó utilizando los mismos atributos:

● Conteo de checkin, ● Conteo de reviews, ● Conteo de tips

A diferencia del Análisis 1, los datos aqui fueron normalizados.

Se utilizó la misma semilla que el análisis anterior, para obtener la muestra del 5% del total de los business (4053 registros). Se eliminaron outliers extremos [web-13].

Clustering - Análisis 2

Page 39: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Dado el análisis del codo, que muestra el gráfico anterior, se seleccionó un valor para K=3, con el objetivo de realizar la clusterización.

La distribución de los cluster en cantidad de elementos es la siguiente:

Clustering - Análisis 2

Cantidad Porcentaje

Cluster 0 (rojo) 2809 69%

Cluster 1 (azul) 375 10%

Cluster 2 (verde) 869 21%

Page 40: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Al normalizar los datos, podemos observar que el cluster 0 (rojo) muestra una tendencia a agrupar los business que poseen pocos reviews, checkins y tips.

Para intentar destacar este resultado, en el Análisis 3 se realizó la búsqueda de clusters a través del algoritmo K-means con un valor para K=8.

Clustering - Análisis 2

Page 41: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Bajo los mismos datos de entrada del Análisis 2, se seleccionó un valor para K=8 para realizar la clusterización. La distribución de los cluster generados se muestran en la siguiente tabla:

Clustering - Análisis 3Cantidad Porcentaje

Cluster 0 2045 50%

Cluster 1 96 2%

Cluster 2 424 10%

Cluster 3 104 3%

Cluster 4 112 3%

Cluster 5 920 23%

Cluster 6 198 5%

Cluster 7 154 4%

Page 42: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

A partir de este análisis se pueden visualizar 2 clusters mejor definidos.

El cluster 0 (rojo), que corresponde al 50% de los datos, agrupa a los business con baja cantidad de reviews, checkins y tips.

El cluster 1 (azul), que corresponde al 2% de los datos, el cual agrupa a los business con gran cantidad de checkins, reviews y tips.

Clustering - Análisis 3

Page 43: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Las estadísticas para los Clusters 0 y 1 fueron las siguientes:

Cluster 0 Cluster 1

Clustering - Análisis 3

checkin en_review tip

Total 2045,00 2045,00 2045,00

Media 8,39 6,57 0,87

Dv 9,10 4,18 0,98

Min 0,00 1,00 0,00

Max 62,00 29,00 5,00

25% 2,00 3,00 0,00

50% 6,00 5,00 1,00

75% 12,00 8,00 1,00

checkin en_review tip

Total 96,00 96,00 96,00

Media 250,02 105,44 21,21

Dv 59,31 18,81 4,66

Min 132,00 65,00 11,00

Max 376,00 136,00 29,00

25% 201,75 92,75 18,00

50% 241,50 109,00 21,00

75% 269,25 118,25 25,00

Page 44: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El cuarto análisis se realizó utilizando los siguientes 7 atributos: conteo de checkin, conteo de reviews, conteo de tips, promedio estrellas (1 a 5), en funcionamiento (1 o 0), cantidad de fotos y cantidad de atributos.

Se hizo uso de la técnica PCA para reducir las dimensiones de análisis a dos.

Se utilizó la misma semilla para obtener la muestra del 5% del total de los business (4053 registros), a su vez se eliminaron los outliers extremos [web-13].

Clustering - Análisis 4

Page 45: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Dado el análisis del codo, que muestra el gráfico anterior, se seleccionó un valor para K=3 para realizar la clusterización.

La distribución de los cluster en cantidad de elementos es la siguiente:

Clustering - Análisis 4

Cantidad Porcentaje

Cluster 0 (rojo) 3193 79%

Cluster 1 (azul) 348 9%

Cluster 2 (verde) 512 13%

Page 46: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El resultado obtenido al incluir más variables y utilizar PCA para la reducción de dimensiones no presenta una mejora en el descubrimiento de clusters.

Clustering - Análisis 4

Page 47: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Dado que nuestra muestra aleatoria no se restringe a una única ubicación geográfica, repetimos los análisis anteriores, centrándonos en los business pertenecientes a las ciudades de Phoenix y Las Vegas, buscando determinar si al seleccionar un punto geográfico en particular, es posible encontrar cluster más definidos.

Se eligieron ambas ciudades, debido a que son las que poseen la mayor cantidad de business dentro del dataset.

● Phoenix: 18.618 business,● Las Vegas: 13.322 business

Clustering - Análisis 5

Page 48: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para la ciudad de Phoenix, se seleccionó un valor para K=3 para realizar la clusterización, siguiendo los mismos parámetros definidos en el análisis 2.

La distribución de los cluster en cantidad de elementos fue la siguiente:

Clustering - Análisis 5

Cantidad Porcentaje

Cluster 0 (rojo) 12143 72%

Cluster 1 (azul) 1490 9%

Cluster 2 (verde) 3204 19%

Page 49: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para la ciudad de Las Vegas, se seleccionó un valor para K=3 para realizar la clusterización, siguiendo los mismos parámetros definidos en el análisis 2.

La distribución de los cluster en cantidad de elementos fue la siguiente:

Clustering - Análisis 5

Cantidad Porcentaje

Cluster 0 (rojo) 8515 72%

Cluster 1 (azul) 992 8%

Cluster 2 (verde) 2348 20%

Page 50: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Al comparar los resultados de la Muestra Aleatoria (Análisis 2) con los resultados obtenidos para las ciudades de Phoenix y Las Vegas no se visualizan mayores diferencias en la distribución de los datos como muestra el resumen siguiente:

Clustering - Análisis 5

Muestra Aleatoria Phoenix Las Vegas

Cluster 0 (rojo)

Cluster 1 (azul)

Cluster 2 (verde)

69% 10% 21%

Cluster 0 (rojo)

Cluster 1 (azul)

Cluster 2 (verde)

72% 9% 19%

Cluster 0 (rojo)

Cluster 1 (azul)

Cluster 2 (verde)

72% 8% 20%

Page 51: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Capítulo 4 Clasificación

Page 52: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

ClasificaciónPara este proceso de clasificación de datos supervisado se trabajó con la tabla reviews. Dada la cantidad de registros disponibles para analizar (3.618.335) y una calificación que varia entre 1 a 5 estrellas, se consideraron datos ideales para utilizar las técnicas de análisis de texto estudiadas en este postítulo.

Los clasificadores utilizados en los análisis detallados más adelante fueron los siguientes:

● Nearest Neighbors [web-04]● Support Vector Machines [web-05]● Decision Trees [web-06]● Neural Network MLP [web-07]

Para el desarrollo de estos análisis, se utilizó Python v3.6.2.

El resultado de las distintas pruebas se detalla a continuación:

Page 53: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para el primer análisis se consideró estudiar sólo reviews que habian sido clasificados con 1 y 5 estrellas, asumiendo que estos agrupan textos de naturaleza contrapuesta.

El análisis se realizó para las siguientes cantidades de reviews:● 10.000 reviews, divididos equitativamente en 1 y 5 estrellas,● 15.000 reviews, divididos equitativamente en 1 y 5 estrellas,● 45.000 reviews, divididos equitativamente en 1 y 5 estrellas

Para el tratamiento de los términos que se encontraban en los textos de los reviews, se utilizó la técnica TF-IDF [web-08] bajo los siguientes parámetros:

● Se definieron N-Gramas para 1 a 3 grupos de términos,● Se definieron como Stop-Words los términos que cumplian con los siguientes requisitos

○ Se encontraban en más del 80% los documentos (reviews),○ Se encontraban sólo en un documento (reviews)

Clasificación - Análisis 1

Page 54: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para este análisis se realizó un muestreo de 10.000 textos contenidos en la tabla review, separándolos en una distribución equitativa de 1 y 5 estrellas.

Según los parámetros definidos, la matriz TF-IDF se construyó con 206.050 términos y se encontraron 904.903 Stop-Words.

La distribución de los datos correspondió a 5.000 registros para el entrenamiento y testing. Los siguientes 5.000 datos fueron utilizados para validar cada clasificador con datos no conocidos.

Las estadísticas asociadas a esta muestra son las siguientes

Clasificación - Análisis 1.1text_lenght word_count

Total 10.000,00 10.000,00

Media 610,52 115,74

Dv 606,13 115,76

Min 22,00 4,00

Max 5.000,00 1038,00

25% 232,00 43,00

50% 416,00 79,00

75% 767,00 147,00

Page 55: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El primer algoritmo utilizado para clasificación fue Nearest Neighbors (KNN).

Se utilizó cross-validation para encontrar el K ideal de acuerdo a la métrica F1. Como muestra el gráfico adjunto, el resultado de este análisis entregó un valor para K = 24.

Para el entrenamiento de los datos se utilizaron ⅔ de los datos (3.350 registros). El testing utilizó el tercio restante (1.650 registros).

Clasificación - Análisis 1.1

Page 56: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Los resultados obtenidos por KNN con un valor para K = 24, distribución de entrenamiento ⅔ y testeo ⅓, se visualizan en el siguiente resumen:

Clasificación - Análisis 1.1

Resumen

stars precision recall f1-score support

1 0,93 0,94 0,93 849

5 0,94 0,93 0,93 801

avg / total 0,93 0,93 0,93 1.650

Matriz de Confusión

stars 1 5

1 796 53

5 59 742

Page 57: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para el algoritmo Support Vector Machine (SVM), utilizando los mismos datos, distribución de entrenamiento y testeo (⅔ - ⅓ respectivamente) que KNN. Los resultados fueron los siguientes:

Clasificación - Análisis 1.1

Resumen

stars precision recall f1-score support

1 0,95 0,97 0,96 849

5 0,97 0,95 0,96 801

avg / total 0,96 0,96 0,96 1.650

Matriz de Confusión

stars 1 5

1 824 25

5 43 758

Page 58: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El algoritmo Decision Tree, utilizando el mismo muestreo de datos, distribución entrenamiento y testeo. Los resultados obtenidos fueron los siguientes:

Clasificación - Análisis 1.1

Resumen

stars precision recall f1-score support

1 0,84 0,81 0,82 849

5 0,80 0,84 0,82 801

avg / total 0,82 0,82 0,82 1.650

Matriz de Confusión

stars 1 5

1 685 164

5 137 670

Page 59: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El último algoritmo utilizado fue la Neural Network MLP, utilizando el mismo muestreo de datos, distribución de datos para entrenamiento y testeo descritos anteriormente. Los resultados obtenidos fueron los siguientes:

Clasificación - Análisis 1.1

Resumen

stars precision recall f1-score support

1 0,95 0,95 0,95 849

5 0,95 0,95 0,95 801

avg / total 0,95 0,95 0,95 1.650

Matriz de Confusión

stars 1 5

1 1556 80

5 39 1625

Page 60: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para la comparación de los 4 algoritmos descritos, se graficó el resultado de los algoritmos a través de las curvas ROC [web-09], utilizando para su creación los 5.000 registros no utilizados en el entrenamiento.

En el gráfico siguiente, el mejor resultado lo obtuvo Support Vector Machine (azul), seguido de muy cerca por Neural Network MLP (morado).

Clasificación - Análisis 1.1

Page 61: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para complementar la evaluación de los algoritmos, se muestran los siguientes gráficos para visualizar el umbral de tolerancia de cada uno de los algoritmos utilizados.

Clasificación - Análisis 1.1

Page 62: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para complementar la evaluación de los algoritmos, se muestran los siguientes gráficos para visualizar el umbral de tolerancia de cada uno de los algoritmos utilizados.

Clasificación - Análisis 1.1

Page 63: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para este análisis se realizó un muestreo de 15.000 textos contenidos en la tabla review, separándolos en una distribución equitativa de 1 y 5 estrellas.

Según los parámetros definidos, la matriz TF-IDF se construyó con 256.685 términos y se encontraron 1.071.559 Stop-Words.

La distribución de los datos correspondió a 7.500 registros para el entrenamiento y 7500 registros para testing.

Las estadísticas asociadas a esta muestra son las siguientes

Clasificación - Análisis 1.2text_lenght word_count

Total 15.000,00 15.000,00

Media 521,90 98,86

Dv 400,00 76,60

Min 13,00 2,00

Max 1998,00 401,00

25% 221,00 41,00

50% 395,00 74,00

75% 706,00 134,00

Page 64: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El primer algoritmo utilizado para clasificación fue Nearest Neighbors (KNN).

Se utilizó cross-validation para encontrar el K ideal de acuerdo a la métrica F1. Como muestra el gráfico adjunto, el resultado de este análisis entregó un K óptimo igual a 24.

Clasificación - Análisis 1.2

Page 65: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Los resultados obtenidos por KNN con un valor para K = 24, haciendo uso de los 7.500 registros no utilizados en el entrenamiento, se visualizan en el siguiente resumen:

Clasificación - Análisis 1.2

Resumen

stars precision recall f1-score support

1 0,95 0,93 0,94 3.750

5 0,93 0,95 0,94 3.750

avg / total 0,94 0,94 0,94 7.500

Matriz de Confusión

stars 1 5

1 3.494 256

5 195 3.555

Page 66: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para el algoritmo Support Vector Machine (SVM), utilizando los mismos datos que KNN, se obtuvieron los siguientes resultados:

Clasificación - Análisis 1.2

Resumen

stars precision recall f1-score support

1 0,97 0,98 0,97 3.750

5 0,98 0,97 0,97 3.750

avg / total 0,97 0,97 0,97 7.500

Matriz de Confusión

stars 1 5

1 3.670 80

5 129 3.621

Page 67: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El algoritmo Decision Tree obtuvo los siguientes resultados con los 7.500 registros no usados para entrenamiento:

Clasificación - Análisis 1.2

Resumen

stars precision recall f1-score support

1 0,85 0,84 0,84 3.750

5 0,84 0,85 0,85 3.750

avg / total 0,84 0,84 0,84 7.500

Matriz de Confusión

stars 1 5

1 3.670 80

5 129 3.621

Page 68: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El último algoritmo utilizado fue la Neural Network MLP, obteniendo los siguientes resultados:

Clasificación - Análisis 1.2

Resumen

stars precision recall f1-score support

1 0,96 0,97 0,96 3.750

5 0,97 0,96 0,96 3.750

avg / total 0,96 0,96 0,96 7.500

Matriz de Confusión

stars 1 5

1 3.641 109

5 157 3.593

Page 69: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para la comparación de los 4 algoritmos descritos, se graficó el resultado de los algoritmos a través de las curvas ROC [web-09], utilizando para su creación los 7.500 registros no utilizados en el entrenamiento.

Como se puede apreciar en el gráfico siguiente, al igual que en el análisis 1.1, el mejor resultado lo obtuvo Support Vector Machine (azul), seguido de Neural Network MLP (morado).

Clasificación - Análisis 1.2

Page 70: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para complementar la evaluación de los algoritmos, se muestran los siguientes gráficos para visualizar el umbral de tolerancia de cada uno de los algoritmos utilizados.

Clasificación - Análisis 1.2

Page 71: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para complementar la evaluación de los algoritmos, se muestran los siguientes gráficos para visualizar el umbral de tolerancia de cada uno de los algoritmos utilizados.

Clasificación - Análisis 1.2

Page 72: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para este análisis se realizó un muestreo de 45.000 textos contenidos en la tabla review, separándolos en una distribución equitativa de 1 y 5 estrellas.

Según los parámetros definidos, la matriz TF-IDF se construyó con 691.773 términos y se encontraron 2.567.124 Stop-Words.

La distribución de los datos correspondió a 22.500 registros para el entrenamiento y 22.500 registros para el testing.

Las estadísticas asociadas a esta muestra son las siguientes

Clasificación - Análisis 1.3text_lenght word_count

Total 45.000,00 45.000,00

Media 534.52 101,31

Dv 409,89 78,58

Min 11,00 2,00

Max 1999,00 410,00

25% 228,00 43,00

50% 406,00 77,00

75% 722,00 137,00

Page 73: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El primer algoritmo utilizado para clasificación fue Nearest Neighbors (KNN).

Se utilizó cross-validation para encontrar el K ideal de acuerdo a la métrica F1. Como muestra el gráfico adjunto, el resultado de este análisis entregó un K óptimo igual a 28.

Clasificación - Análisis 1.3

Page 74: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Los resultados obtenidos por KNN con un valor para K = 28, haciendo uso de los 22.500 registros no utilizados en el entrenamiento, se visualizan en el siguiente resumen:

Clasificación - Análisis 1.3

Resumen

stars precision recall f1-score support

1 0,96 0,93 0,95 11.250

5 0,93 0,96 0,95 11.250

avg / total 0,95 0,95 0,95 22.500

Matriz de Confusión

stars 1 5

1 10.498 752

5 462 10.788

Page 75: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para el algoritmo Support Vector Machine (SVM), utilizando los mismos datos que KNN, se obtuvieron los siguientes resultados:

Clasificación - Análisis 1.3

Resumen

stars precision recall f1-score support

1 0,97 0,98 0,98 11.250

5 0,98 0,97 0,98 11.250

avg / total 0,98 0,98 0,98 22.500

Matriz de Confusión

stars 1 5

1 11.066 184

5 299 10.951

Page 76: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El algoritmo Decision Tree obtuvo los siguientes resultados con los 22.500 registros no usados para entrenamiento:

Clasificación - Análisis 1.3

Resumen

stars precision recall f1-score support

1 0,87 0,86 0,87 11.250

5 0,87 0,87 0,87 11.250

avg / total 0,87 0,87 0,87 22.500

Matriz de Confusión

stars 1 5

1 9.728 1.522

5 1.471 9.779

Page 77: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El último algoritmo utilizado fue la Neural Network MLP, obteniendo los siguientes resultados:

Clasificación - Análisis 1.3

Resumen

stars precision recall f1-score support

1 0,97 0,97 0,97 11.250

5 0,97 0,97 0,97 11.250

avg / total 0,97 0,97 0,97 22.500

Matriz de Confusión

stars 1 5

1 10.939 311

5 307 10.943

Page 78: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para la comparación de los 4 algoritmos descritos, se graficó el resultado de los algoritmos a través de las curvas ROC [web-09], utilizando para su creación los 22.500 registros no utilizados en el entrenamiento.

Como se puede apreciar en el gráfico siguiente, el mejor resultado lo obtuvo Support Vector Machine (azul), seguido de Neural Network MLP (morado).

Clasificación - Análisis 1.3

Page 79: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para complementar la evaluación de los algoritmos, se muestran los siguientes gráficos para visualizar el umbral de tolerancia de cada uno de los algoritmos utilizados.

Clasificación - Análisis 1.3

Page 80: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para complementar la evaluación de los algoritmos, se muestran los siguientes gráficos para visualizar el umbral de tolerancia de cada uno de los algoritmos utilizados.

Clasificación - Análisis 1.3

Page 81: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Dado los resultados de los análisis anteriores, se hizo uso de los 2 algoritmos con mejores resultados (Support Vector Machine y Neural Network MLP) para realizar pruebas con reviews nuevos, no incluidos en la creación de la matriz TF-IDF, utilizando los clasificadores entrenados en en el análisis 1.3.

Se realizó un muestreo de 15.000 textos contenidos en la tabla review, separándolos en una distribución equitativa de 1 y 5 estrellas.

Las estadísticas asociadas a esta muestra son las siguientes

Clasificación - Análisis 1.4text_lenght word_count

Total 15.000,00 15.000,00

Media 530,05 100,44

Dv 402,94 77,25

Min 20,00 2,00

Max 1997,00 413,00

25% 226,75 42,00

50% 407,00 77,00

75% 714,00 136,00

Page 82: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para el algoritmo Support Vector Machine (SVM), se utilizó la totalidad de los datos para realizar la validación. Los resultados obtenidos fueron los siguientes:

Clasificación - Análisis 1.4

Resumen

stars precision recall f1-score support

1 0,96 0,98 0,97 7.500

5 0,98 0,96 0,97 7.500

avg / total 0,97 0,97 0,97 15.000

Matriz de Confusión

stars 1 5

1 7.318 182

5 304 7.196

Page 83: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para el algoritmo Neural Network MLP, se utilizó la totalidad de los datos para realizar la validación. Los resultados obtenidos fueron los siguientes:

Clasificación - Análisis 1.4

Resumen

stars precision recall f1-score support

1 0,96 0,97 0,96 7.500

5 0,97 0.95 0,96 7.500

avg / total 0,96 0,96 0,96 15.000

Matriz de Confusión

stars 1 5

1 7.275 225

5 339 7.161

Page 84: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para la comparación de los 2 algoritmos, se graficó el resultado de los algoritmos a través de las curvas ROC [web-09], utilizando para su creación los 15.000 registros no incluidos en la creación de la matriz TF-IDF.

Como se puede apreciar en el gráfico siguiente, los resultados de ambos clasificadores mantuvieron su rendimiento.

Clasificación - Análisis 1.4

Page 85: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para el segundo análisis se consideró estudiar sólo reviews que habian sido clasificados con 1, 3 y 5 estrellas.

El análisis se realizó para las siguientes cantidades de reviews:● 15.000 reviews, divididos equitativamente en 1, 3 y 5 estrellas,● 45.000 reviews, divididos equitativamente en 1, 3 y 5 estrellas,● 60.000 reviews, divididos equitativamente en 1, 3 y 5 estrellas

Para el tratamiento de los términos que se encontraban en los textos de los reviews, se utilizó la técnica TF-IDF [web-08] bajo los siguientes parámetros:

● Se definieron N-Gramas para 1 a 3 grupos de términos,● Se definieron como Stop-Words los términos que cumplian con los siguientes requisitos

○ Se encontraban en más del 80% los documentos (reviews),○ Se encontraban sólo en un documento (reviews)

Clasificación - Análisis 2

Page 86: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para este análisis se realizó un muestreo de 15.000 textos contenidos en la tabla review, separándolos en una distribución equitativa de 1, 3 y 5 estrellas.

Según los parámetros definidos, la matriz TF-IDF se construyó con 125.605 términos y se encontraron 1.175.211 Stop-Words.

La distribución de los datos correspondió a 7.500 registros para el entrenamiento y testing. Los siguientes 7.500 datos fueron utilizados para validar cada clasificador con datos no conocidos.

Las estadísticas asociadas a esta muestra son las siguientes

Clasificación - Análisis 2.1text_lenght

Total 15.000,00

Media 647.73

Dv 599,15

Min 15,00

Max 4999,00

25% 255,00

50% 465,00

75% 825,00

Page 87: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El primer algoritmo utilizado para clasificación fue Nearest Neighbors (KNN).

Se utilizó cross-validation para encontrar el K ideal de acuerdo a la métrica F1. Como muestra el gráfico adjunto, el resultado de este análisis entregó un K óptimo igual a 28.

Clasificación - Análisis 2.1

Page 88: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Los resultados obtenidos con KNN con un valor para K = 28 se muestran en el siguiente resumen:

Clasificación - Análisis 2.1

Resumen

stars precision recall f1-score support

1 0,77 0,82 0,79 842

3 0,64 0,66 0,65 779

5 0,82 0,73 0,78 854

avg / total 0,75 0,74 0,74 2475

Page 89: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El segundo algoritmo utilizado fue Support Vector Machine (SVM) obteniendo los siguientes resultados:

Clasificación - Análisis 2.1

Resumen

stars precision recall f1-score support

1 0,86 0,87 0,86 842

3 0,75 0,75 0,75 779

5 0,86 0,85 0,86 854

avg / total 0,83 0,83 0,83 2475

Page 90: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El tercer algoritmo utilizado fue Decision Tree y obtuvo los siguientes resultados:

Clasificación - Análisis 2.1

Resumen

stars precision recall f1-score support

1 0,67 0,66 0,67 842

3 0,50 0,50 0,50 779

5 0,67 0,68 0,68 854

avg / total 0,62 0,62 0,62 2475

Page 91: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El último algoritmo utilizado fue Neural Network MLP. A continuación los resultados obtenidos:

Clasificación - Análisis 2.1

Resumen

stars precision recall f1-score support

1 0,87 0,84 0,86 842

3 0,72 0,79 0,75 779

5 0,88 0,83 0,86 854

avg / total 0,83 0,82 0,82 2475

Page 92: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para la comparación de los 4 algoritmos descritos, se graficó el resultado de los algoritmos a través de las curvas ROC [web-09], utilizando para su creación los 7.500 registros no utilizados en el entrenamiento.

Como se puede apreciar en el gráfico siguiente, el mejor resultado lo obtuvo Neural Network MLP (morado), seguido de Support Vector Machine (azul).

Clasificación - Análisis 2.1

Page 93: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para este análisis se realizó un muestreo de 45.000 textos contenidos en la tabla review, separándolos en una distribución equitativa de 1, 3 y 5 estrellas.

Según los parámetros definidos, la matriz TF-IDF se construyó con 385.679 términos y se encontraron 3.084.316 Stop-Words.

La distribución de los datos correspondió a 22.500 registros para el entrenamiento y testing. Los siguientes 22.500 datos fueron utilizados para validar cada clasificador con datos no conocidos.

Las estadísticas asociadas a esta muestra son las siguientes

Clasificación - Análisis 2.2text_lenght

Total 45.000,00

Media 646,45

Dv 597,51

Min 11,00

Max 5001,00

25% 255,00

50% 463,00

75% 829,00

Page 94: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El primer algoritmo utilizado para clasificación fue Nearest Neighbors (KNN).

Se utilizó cross-validation para encontrar el K ideal de acuerdo a la métrica F1. Como muestra el gráfico adjunto, el resultado de este análisis entregó un K óptimo igual a 29.

Clasificación - Análisis 2.2

Page 95: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Los resultados obtenidos con KNN con un valor para K = 29, se muestran en el siguiente resumen:

Clasificación - Análisis 2.2

Resumen

stars precision recall f1-score support

1 0,78 0,80 0,79 2498

3 0,69 0,60 0,64 2469

5 0,74 0,81 0,77 2458

avg / total 0,74 0,74 0,74 7425

Page 96: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El segundo algoritmo utilizado fue Support Vector Machine (SVM). Los resultados obtenidos fueron los siguientes:

Clasificación - Análisis 2.2

Resumen

stars precision recall f1-score support

1 0,86 0,89 0,87 2498

3 0,78 0,72 0,75 2469

5 0,84 0,87 0,85 2458

avg / total 0,83 0,83 0,83 7425

Page 97: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El tercer algoritmo utilizado fue Decision Tree. Los resultados obtenidos fueron los siguientes:

Clasificación - Análisis 2.2

Resumen

stars precision recall f1-score support

1 0,69 0,67 0,68 2498

3 0,54 0,52 0,53 2469

5 0,65 0,70 0,69 2458

avg / total 0,63 0,63 0,63 7425

Page 98: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El último algoritmo utilizado fue Neural Network MLP. Los resultados obtenidos fueron los siguientes:

Clasificación - Análisis 2.2

Resumen

stars precision recall f1-score support

1 0,89 0,81 0,85 2498

3 0,68 0,82 0,74 2469

5 0,90 0,79 0,84 2458

avg / total 0,82 0,81 0,81 7425

Page 99: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para la comparación de los 4 algoritmos descritos, se graficó el resultado de los algoritmos a través de las curvas ROC [web-09], utilizando para su creación los 22.500 registros no utilizados en el entrenamiento.

Como se puede apreciar en el gráfico siguiente, el mejor resultado fue obtenido por Support Vector Machine (azul), seguido de muy cerca por Neural Network MLP (morado).

Clasificación - Análisis 2.2

Page 100: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para este análisis se realizó un muestreo de 60.000 textos contenidos en la tabla review, separándolos en una distribución equitativa de 1, 3 y 5 estrellas.

Según los parámetros definidos, la matriz TF-IDF se construyó con 515.789 términos y se encontraron 3.970.632 Stop-Words.

La distribución de los datos correspondió a 30.000 registros para el entrenamiento y testing. Los siguientes 30.000 datos fueron utilizados para validar cada clasificador con datos no conocidos.

Las estadísticas asociadas a esta muestra son las siguientes

Clasificación - Análisis 2.3text_lenght

Total 60.000,00

Media 648,00

Dv 600,59

Min 11,00

Max 5001,00

25% 254,00

50% 463,00

75% 832,00

Page 101: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El primer algoritmo utilizado para clasificación fue Nearest Neighbors (KNN).

Se utilizó cross-validation para encontrar el K ideal de acuerdo a la métrica F1. Como muestra el gráfico adjunto, el resultado de este análisis entregó un K óptimo igual a 29.

Clasificación - Análisis 2.3

Page 102: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Los resultados obtenidos con KNN con un valor para K = 29 se muestran en el siguiente resumen:

Clasificación - Análisis 2.3

Resumen

stars precision recall f1-score support

1 0,78 0,81 0,80 3299

3 0,68 0,59 0,63 3312

5 0,73 0,81 0,77 3289

avg / total 0,73 0,73 0,73 9900

Page 103: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El segundo algoritmo utilizado fue Support Vector Machine (SVM). Los resultados obtenidos fueron los siguientes:

Clasificación - Análisis 2.3

Resumen

stars precision recall f1-score support

1 0,86 0,89 0,87 3299

3 0,79 0,75 0,77 3312

5 0,85 0,86 0,86 3289

avg / total 0,83 0,83 0,83 9900

Page 104: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El tercer algoritmo utilizado fue Decision Tree. Los resultados obtenidos fueron los siguientes:

Clasificación - Análisis 2.3

Resumen

stars precision recall f1-score support

1 0,69 0,69 0,69 3299

3 0,54 0,54 0,54 3312

5 0,67 0,68 0,67 3289

avg / total 0,63 0,63 0,93 9900

Page 105: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El último algoritmo utilizado fue Neural Network MLP. Los resultados obtenidos fueron los siguientes:

Clasificación - Análisis 2.3

Resumen

stars precision recall f1-score support

1 0,87 0,84 0,85 3299

3 0,75 0,76 0,75 3312

5 0,84 0,86 0,85 3289

avg / total 0,82 0,82 0,82 9900

Page 106: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para la comparación de los 4 algoritmos descritos, se graficó el resultado de los algoritmos a través de las curvas ROC [web-09], utilizando para su creación los 30.000 registros no utilizados en el entrenamiento.

Como se puede apreciar en el gráfico siguiente, el mejor resultado fue obtenido por Neural Network MLP (morado), seguido de muy cerca por Support Vector Machine (azul).

Clasificación - Análisis 2.3

Page 107: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Clasificación - Análisis 2.4De acuerdo a los análisis previamente realizados, decidimos explorar con el algoritmo Support Vector Machine con una nueva matriz TF-IDF para comparar su capacidad de clasificación.A la izquierda, se encuentra el resultado de clasificación con un set de datos de entrenamiento (análisis 2.3), y la derecha, con una nueva matriz creada bajo un set de datos nunca antes utilizado.

Page 108: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para el tercer análisis se consideró estudiar reviews clasificados con 1, 2, 3, 4 y 5 estrellas.

El análisis se realizó para las siguientes cantidades de reviews:● 60.000 reviews, divididos equitativamente en 1, 2, 3, 4 y 5 estrellas

Para el tratamiento de los términos que se encontraban en los textos de los reviews, se utilizó la técnica TF-IDF [web-08] bajo los siguientes parámetros:

● Se definieron N-Gramas para 1 a 3 grupos de términos,● Se definieron como Stop-Words los términos que cumplian con los siguientes requisitos

○ Se encontraban en más del 80% los documentos (reviews),○ Se encontraban sólo en un documento (reviews)

Clasificación - Análisis 3

Page 109: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para este análisis se realizó un muestreo de 60.000 textos contenidos en la tabla review, separándolos en una distribución equitativa de 1, 2, 3, 4 y 5 estrellas.

Según los parámetros definidos, la matriz TF-IDF se construyó con 534.873 términos y se encontraron 4.078.588 Stop-Words.

La distribución de los datos correspondió a 30.000 registros para el entrenamiento y testing. Los siguientes 30.000 datos fueron utilizados para validar cada clasificador con datos no conocidos.

Clasificación - Análisis 3.1text_lenght

Total 60.000,00

Media 667,70

Dv 601,27

Min 11,00

Max 5001,00

25% 268,00

50% 486,00

75% 862,00

Page 110: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El primer algoritmo utilizado para clasificación fue Nearest Neighbors (KNN).

Se utilizó cross-validation para encontrar el K ideal de acuerdo a la métrica F1. Como muestra el gráfico adjunto, el resultado de este análisis entregó un K óptimo igual a 60.

Clasificación - Análisis 3.1

Page 111: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Los resultados obtenidos con KNN con un valor para K = 60 se muestran en el siguiente resumen:

Clasificación - Análisis 3.1

Resumen

stars precision recall f1-score support

1 0,56 0,71 0,62 1971

2 0,42 0,32 0,37 2015

3 0,38 0,33 0,35 1978

4 0,39 0,36 0,38 1953

5 0,54 0,64 0,59 1982

avg / total 0,46 0,47 0,46 9899

Page 112: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El segundo algoritmo utilizado fue Support Vector Machine (SVM). Los resultados utilizando SVM fueron los siguientes:

Clasificación - Análisis 3.1

Resumen

stars precision recall f1-score support

1 0,64 0,75 0,69 1971

2 0,49 0,41 0,45 2015

3 0,47 0,42 0,45 1978

4 0,46 0,44 0,45 1953

5 0,61 0,71 0,66 1982

avg / total 0,54 0,55 0,54 9899

Page 113: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El tercer algoritmo utilizado fue Decision Tree. Los resultados obtenidos fueron los siguientes:

Clasificación - Análisis 3.1

Resumen

stars precision recall f1-score support

1 0,50 0,50 0,50 1971

2 0,31 0,29 0,30 2015

3 0,30 0,30 0,30 1978

4 0,31 0,32 0,31 1953

5 0,45 0,46 0,46 1982

avg / total 0,37 0,38 0,38 9899

Page 114: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

El último algoritmo utilizado fue Neural Network MLP. Los resultados obtenidos fueron los siguientes:

Clasificación - Análisis 3.1

Resumen

stars precision recall f1-score support

1 0,73 0,50 0,60 1971

2 0,42 0,65 0,51 2015

3 0,50 0,36 0,41 1978

4 0,45 0,31 0,37 1953

5 0,52 0,70 0,60 1982

avg / total 0,52 0,51 0,50 9899

Page 115: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Para la comparación de los 4 algoritmos descritos, se graficó el resultado de los algoritmos a través de las curvas ROC [web-09], utilizando para su creación los 30.000 registros no utilizados en el entrenamiento.

Para este caso, no existe un algoritmo mejor que otro, puesto que los resultados obtenidos son parejos entre Neural Network MLP (morado) y Support Vector Machine (azul).

Clasificación - Análisis 3.1

Page 116: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Conclusiones

Page 117: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Conclusiones● En la etapa de exploración, se pudo establecer que la totalidad de los datos analizados (users,

business, reviews) cumplen con la ley de potencia, es decir, un porcentaje bajo de los registros contiene un gran volumen de la información, y por el contrario, la gran mayoría de los registros tienen muy poca información asociada

● En la etapa de clusterización, para los datos asociados a los business se pudo corroborar lo expuesto anteriormente dado que el primer cluster encontrado con más claridad corresponde a los negocios que poseen poca información asociada. El segundo cluster más definido corresponde a los business con un gran volumen de información

● Para el proceso de clusterización, dada la naturaleza de nuestro dataset, no existen la cantidad de dimensiones suficientes para que se justifique el uso de PCA, aun así se realizó este análisis, incluyendo todas la variables posibles para la tabla business, sin ninguna limpieza ni revisión de correlación. Esto justifica que los resultados no fuesen los esperados para este análisis

Page 118: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Conclusiones● Algo que se notó durante el proceso de clusterización fue el impacto negativo que causaban los

outliers sobre los resultados encontrados, donde independiente el algoritmo utilizado, siempre se encontraba 1 cluster que contenía alrededor del 90% de los datos y los demás cluster se distribuían en los outliers

● En la sección “Clasificación - Análisis 1.4” se utilizaron para la validación reviews que no habían sido utilizados anteriormente ni para testeo, ni entrenamiento, así como tampoco para la creación de la matriz TF-IDF. Sin embargo, el rendimiento de los algoritmos Support Vector Machine y Neural Network MLP se mantuvo elevado

● Como los resultados de clasificación para 1 y 5 estrellas utilizando una matriz TF-IDF y algoritmos de clasificación como Support Vector Machine y Neural Network MLP cubrieron nuestra expectativa, no fue necesario recurrir a Word2Vec para mejorar los resultados de clasificación

Page 119: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Conclusiones● De acuerdo a los experimentos realizados en clasificación, aumentar la cantidad de reviews para la

matriz TF-IDF mejoró considerablemente los resultados de clasificación

● En la etapa de clasificación, se separaron los análisis por cantidad de estrellas realizando pruebas con grupos de 1 y 5 estrellas, 1, 3, 5 estrellas y la totalidad de las estrellas (de 1 a 5). Con diversos algoritmos de clasificación, cantidades distintas de entrenamiento y testing, la exactitud de los clasificadores fue decreciendo a medida que fue aumentando la cantidad de estrellas. Este comportamiento se encuentra dentro de lo esperado, dado que al aumentar la cantidad de estrellas, es mucho más difuso definir los límites entre el contexto de los textos, incluso para un clasificador “humano”

● Los tiempos de procesamiento fueron un problema al momento de intentar realizar análisis de clusterización y clasificación con volúmenes de datos mayores a los expuestos en este trabajo. Queda como tarea futura poder testear los clasificadores y realizar búsquedas de cluster con volúmenes de datos cercanos a la totalidad del dataset

Page 120: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Bibliografía

Page 121: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Bibliografía[web-01] https://www.yelp.com/dataset/challenge Sitio oficial de Yelp Challenge

[web-02] https://es.wikipedia.org/wiki/K-meansSitio Wikipedia en Español con información de Algoritmo K-means

[web-03] http://scikit-learn.org Librería sklearn para Python

[web-04] https://es.wikipedia.org/wiki/K_vecinos_m%C3%A1s_pr%C3%B3ximos Sitio Wikipedia en Español con información de Algoritmo K Nearest Neighbors

[web-05] https://es.wikipedia.org/wiki/M%C3%A1quinas_de_vectores_de_soporte Sitio Wikipedia en Español con información de Algoritmo Support Vector Machines

Page 122: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Bibliografía[web-06] https://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B3n Sitio Wikipedia en Español con información de Algoritmo Decision Trees

[web-07] https://es.wikipedia.org/wiki/Perceptr%C3%B3n_multicapa Sitio Wikipedia en Español con información de Algoritmo Neural network MLP

[web-08] https://es.wikipedia.org/wiki/Tf-idfSitio Wikipedia en Español con información de TF-IDF

[web-09] https://es.wikipedia.org/wiki/Curva_ROC Sitio Wikipedia en Español con información de Curvas ROC

[web-10] https://pandas.pydata.org/Librería Pandas para Python

Page 123: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Bibliografía[web-11] https://matplotlib.org/Librería Matplotlib para Python

[web-12] https://seaborn.pydata.org/Librería Seaborn para Python

[web-13] https://en.wikipedia.org/wiki/Outlier Sitio Wikipedia en Inglés con información de datos Outliers

Page 124: Taller de Proyecto · Se seleccionaron sólo los reviews que se encuentran en idioma inglés. La visualización de los datos se generó utilizando librerías Pandas v.0.21.0 ... del

Integrantes(de izquierda a derecha)

● Esteban Díaz● Oscar Sánchez● Fabian Cifuentes● Cristian Vásquez