85

EUSTAT Cap tulo 1 Aprendizaje Supervisado Los m etodos de este primer cap tulo est an divididos en dos principales grupos: la regresi on y la clasi caci on. En ambos casos, los datos

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Elaboración:

EUSTAT

Euskal Estatistika Erakundea

Instituto Vasco de Estadística

Edición:

EUSTAT

Euskal Estatistila Erakundea

Instituto Vasco de Estadística

Donostia-San Sebastián 1,

01010 Vitoria-Gasteiz

Administración de la C.A. de Euskadi

1ª Edición:

I/2019

Impresión y Encuadernación:

Servicio de Imprenta y Reprografía del Gobierno Vasco-Eusko Jaurlaritza

ISBN: 978-84-7749-491-1

Depósito Legal: VI-156/19

Imagen de portada: Marcos Gasparutti

METODOLOGIAS ESTADISTICAS EN LA

ERA DEL BIG DATA

Clustering de hoteles

Asier Badiola Zabala

[email protected]

EUSKAL ESTATISTIKA ERAKUNDEAINSTITUTO VASCO DE ESTADISTICA

Donostia-San Sebastian, 101010 VITORIA-GASTEIZ

Tel.: 945 01 75 00Fax.: 945 01 75 01

E-mail: [email protected]

Presentacion

En los ultimos tiempos el big data se ha extendido por todos los ambitos de lasociedad. Tambien en la estadıstica oficial, donde supone un reto su utilizacion comonueva fuente de datos. Diferentes proyectos piloto se estan llevando a cabo en losinstitutos de estadıstica para abordar las implicaciones del big data en los distintosaspectos de la produccion estadıstica.

Eustat organizo en 2016 la XXIXa edicion del Seminario Internacional de Es-tadıstica bajo el tıtulo “Big data for Official Statistics”, que fue impartido por PeterStruijs, coordinador del programa de Big Data de Statistics Netherlands (SN), ycoordinador del grupo de Big Data de ESSnet (European Statistical System net-work) de la Union Europea.

La presente publicacion pretende dar a conocer el trabajo de investigacion rea-lizado en este ambito por una de las becas de formacion e investigacion de Eustat.Este documento consta de dos partes. En la primera parte se hace un repaso dediferentes metodos de aprendizaje automatico aplicables al big data y en la segundaparte se aborda el estudio de clasificacion de establecimientos hoteleros de la C.A. deEuskadi realizado a partir de sus series de precios recabados mediante el escrapeadode la web.

Vitoria-Gasteiz, marzo de 2019

Josu Iradi Arrieta

Director General de EUSTAT

1

Indice general

I Teorıa 5

1. Aprendizaje Supervisado 71.1. Regresion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.1.1. Regresion lineal . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2. Metodos de clasificacion . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.1. k -vecinos mas cercanos . . . . . . . . . . . . . . . . . . . . . . 131.2.2. Arbol de decision . . . . . . . . . . . . . . . . . . . . . . . . . 151.2.3. Maquina de vectores de soporte (SVM) . . . . . . . . . . . . . 17

1.3. Testando los modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.3.1. Training, validation y test set . . . . . . . . . . . . . . . . . . 22

2. Aprendizaje no supervisado 252.1. Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2. Analisis de los componentes principales . . . . . . . . . . . . . . . . . 282.3. Factorizacion de matrices . . . . . . . . . . . . . . . . . . . . . . . . . 302.4. Analisis asociativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3. Datos secuenciales 363.1. Cadenas de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.2. Modelos ocultos de Markov . . . . . . . . . . . . . . . . . . . . . . . 39

4. Redes neuronales artificiales 424.1. Introduccion historica . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.2. Ideas principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.3. Proceso de aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . 444.4. Ventajas y desventajas . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5. Los metodos Ensemble 475.1. Metodos de bagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.2. Metodos de boosting . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

II Trabajando con datos 51

6. Outliers en series temporales 54

2

INDICE GENERAL 3

6.1. Construyendo un algoritmo para la deteccion de outliers . . . . . . . 54

7. Imputacion en series temporales 597.1. na.seasplit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597.2. na.seadec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607.3. na.kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617.4. Seleccion de la funcion de imputacion . . . . . . . . . . . . . . . . . . 62

8. Clustering de series temporales 658.1. Preparacion de los datos . . . . . . . . . . . . . . . . . . . . . . . . . 658.2. Clustering con los precios absolutos . . . . . . . . . . . . . . . . . . . 668.3. Clustering con precios normalizados . . . . . . . . . . . . . . . . . . . 708.4. Clustering con volatilidad . . . . . . . . . . . . . . . . . . . . . . . . 73

Preambulo

El presente Cuaderno Tecnico recoge el resultado del trabajo realizado sobre elaprendizaje automatizado, gracias a la beca concedida en 2017 por el InstitutoVasco de Estadıstica (Eustat) para la formacion y la investigacion en metodologıasde estadıstica y matematica.

El objetivo principal consiste en analizar y asimilar las metodologıas de trata-miento de la informacion recabada a traves de diferentes fuentes, sin dejar de ladoaquellos datos y estadısticas que se han empleado hasta la actualidad. Con todo ello,se pretende ofrecer unos resultados mas enriquecedores.

Con el fin de obtener mas informacion sobre el turismo para el presente CuadernoTecnico, hemos recurrido al sitio web de una plataforma de oferta hotelera. Trashaber intentado contactar con la empresa y ante la ausencia de respuestas, dimoscomienzo al proceso de web scraping, una vez trasladado el debido aviso. A medidaque fuimos juntando estos datos (el proceso dio comienzo en julio de 2017), se fueroncruzando con los de la Encuesta de establecimientos turısticos receptores del Eustat,identificando hoteles y pensiones.

Una vez realizada la fusion de los datos, uno de los principales objetivos de labeca ha consistido en realizar diferentes clasificaciones de estos establecimientos; esdecir, diferentes clasificaciones de las series temporales de sus precios. Los resultadosobtenidos se presentaron a traves de un poster en la conferencia BigSurv18, celebradaen Barcelona y organizada por European Survey Research Association (ESRA).

Por este motivo, el presente cuaderno esta estructurado en dos apartados princi-pales. Por una parte, el apartado primero aborda la teorıa y los diferentes metodosdel denominado aprendizaje automatizado. Por otra, el apartado segundo pre-senta el trabajo realizado sobre el clustering de hoteles, al tiempo que detalla losresultados obtenidos.

Asimismo, quisiera valerme de esta introduccion para trasladar mi agradecimien-to a todas aquellas personas que forman parte de la Seccion de Metodologıa, Inno-vacion e I+D del Eustat: Anjeles Iztueta, Jorge Aramendi, Elena Goni, InmaculadaGil y Marina Ayestaran. Mi mas sincero agradecimiento asimismo al conjunto demis companeros del Eustat, por haber creado un ambiente inmejorable de trabajo,ası como al becario Ander Juarez por haberme aguantado.

Palabras clave: machine learning, aprendizaje automatizado, clustering.

4

Parte I

Teorıa

5

6

Introduccion

En la seccion primera, se presentaran los diferentes metodos de aprendizajeautomatizado, de manera breve y sencilla. La idea principal del aprendizaje au-tomatizado consiste, de manera general, en crear los modelos mas apropiados par-tiendo de los datos recabados. Sin embargo, a la hora de crear estos modelos, nosencontramos ante varias posibilidades; podemos ver que existen muchos parametrosdesconocidos, a los que debemos conferir determinados valores especıficos. En estesentido, a traves del aprendizaje automatizado se pretende que el ordenador apren-da los parametros mas adecuados de la manera mas automatica posible (de ahı sudenominacion).

En funcion de los datos con los que trabajamos, podemos diferenciar dos prin-cipales bloques: aprendizaje supervisado (Capıtulo 1) y aprendizaje no su-pervisado (Capıtulo 2). En el primer caso, los datos estaran acompanados de unaetiqueta, y el objetivo consistira en crear un modelo que realice este etiquetado dedatos de manera adecuada. En el segundo caso, por su parte, los datos carecen deetiqueta y se tratara de conseguir su estructura interna.

En el capıtulo dedicado a los datos secuenciales (Capıtulo 3), se expone unaestructura particular de datos, aquella en la que el orden de los mismos resultarelevante. Este tipo de datos estan asociados, en muchas ocasiones, a las seriestemporales. Ejemplos tıpicos serıan la bolsa o el tiempo. En el, se explicaran lascadenas de Markov, presentando una serie de definiciones y aplicaciones.

Las redes neuronales artificiales, cada vez mas importantes en la actualidad,tambien disponen de un capıtulo propio (Capıtulo 4). Estas redes sirven para crearmodelos tanto de aprendizaje supervisado como de aprendizaje no supervisado, asıcomo para miles de aplicaciones diferentes. Pese a que fueron creadas hace ya algunasdecadas, su uso ha experimentado un aumento sustancial durante los ultimos anos,en los que los procesos de computacion se han acelerado.

El ultimo capıtulo de esta seccion (Capıtulo 5) esta dedicado a los metodosEnsemble, los cuales crean un gran numero de modelos sencillos que podran sercombinados, creando ası un modelo mas solido. Pese a que el planteamiento parecesimple y facil, resultan muy utiles a la hora de explicar las estructuras mas complejasde manera mas eficiente.

Para finalizar, recomendamos al lector o a la lectora que desee ahondar en elaprendizaje automatizado recurrir a los actuales lenguajes de programacion R o/yPython, softwares libres que ofrecen una ingente variedad de funciones y de paque-tes. En este sentido, cabe destacar que las comunidades gigantes que los apoyanmantienen ambos lenguajes de programacion constantemente actualizados.

Capıtulo 1

Aprendizaje Supervisado

Los metodos de este primer capıtulo estan divididos en dos principales grupos: laregresion y la clasificacion. En ambos casos, los datos deberan estar etiquetados ; enel primero, la etiqueta debera ser continua, mientras que en el segundo sera discretay finita.

A modo de ejemplo, podemos observar las siguientes dos tablas, cuyos datos sonidenticos y en ambos casos etiquetados (la etiqueta figura en la ultima columna).Sin embargo, en el primer caso se trata de una etiqueta continua (precio), mientrasque en el segundo se trata de una etiqueta discreta y finita (se alquila/se vende).

m2 Piso Ubicacion costera Precio110 4 Sı 400.00080 1 No 190.000150 2 No 330.000. . . . . . . . . . . .70 5 Sı 390.000

Cuadro 1.1

m2 Piso Ubicacion costera Se alquila/se vende110 4 Sı Se alquila80 1 No Se vende150 2 No Se vende. . . . . . . . . . . .70 5 Sı Se alquila

Cuadro 1.2

En ambos casos, se persigue crear un modelo capaz de etiquetar correctamentelos datos nuevos que vayan entrando. Si nos fijamos en los ejemplos de las tablas,en el primer caso bastarıa con estimar de manera adecuada el precio con diferentesvariables, mientras que en el segundo habrıa que intentar predecir, con base en losdatos iniciales, si el piso esta en venta o se alquila.

7

8 CAPITULO 1. APRENDIZAJE SUPERVISADO

A lo largo de este capıtulo, explicaremos y analizaremos diferentes metodos parala creacion de estos modelos, ası como la metodologıa empleada para testar su calidaden el subcapıtulo 1.3.

1.1. Regresion

Tal y como hemos mencionado al comienzo de este capıtulo, los datos presentandos tipos de variables: por un lado, las variables X independientes, y, por otro, lavariable Y dependiente (denominada en nuestra introduccion como etiqueta). Losdatos correspondientes a la variable independiente pueden ser tanto cuantitativoscomo cualitativos; por su parte, la variable dependiente sera unicamente cuan-titativa (en la regresion logıstica, la variable dependiente es cualitativa, pero laregresion logıstica se considera como un metodo de clasificacion). En funcion deltipo de variable, se modificara ligeramente la manera de obtener la regresion, peroel objetivo principal sera indicar la variable dependiente Y a traves de la variableindependiente X. Es decir:

Y ∼ f(X,β)

Para ello, deberemos encontrar la funcion f y el parametro β, con el fin dedetallar lo maximo posible Y a traves de X. En la practica, la definicion de lafuncion f resulta inviable, por lo que se recurre a las funciones basicas, como laslineales, tal y como veremos con mayor grado de detalle en el apartado siguiente.

En los modelos creados, siempre se producira un error ε, que, de manera general,se debera procurar su minimizacion. Una vez definida la funcion f , obtendremos elenunciado siguiente:

Y = f(X,β) + ε

y el trabajo que debe ser realizado sera la obtencion de los valores del parametro β,para que el error ε sea lo mınimo posible.

Error =n∑i=1

ε2i (1.1)

1.1.1. Regresion lineal

Si el modelo se crea a traves de la regresion lineal, la variable dependiente Y seindicara como la combinacion lineal de n variables dependientes (X1, . . . , Xn):

Y ∼ β0 +n∑i=1

Xiβi : β0, β1, . . . , βn ∈ R (1.2)

Retomando el ejemplo del comienzo de este capıtulo, nos encontramos con tresvariables independientes: X1 ≡ m2, X2 ≡ Piso, y X3 ≡ Ubicacion costera. Portanto, los parametros que hay que calcular para crear el modelo son los valoresβ0, β1, . . . , βn ∈ R.

1.1. REGRESION 9

Estos modelos lineales son los mas simples que se pueden crear; sin embargo,existen numerosos metodos desarrollados antes de la era computacional y que sir-ven para exponer los datos de manera sencilla e intuitiva. Incluso en nuestros dıascontinuan teniendo un gran peso a la hora de crear los modelos probabilısticos.

Para resolver el problema de la ecuacion (1.2) (para obtener los valoresβ0, β1, . . . , βn ∈ R), existen diferentes maneras y metodos. En la mayorıa de loscasos, se requiere que las variables independientes X y las variables dependientes Ycumplan una serie de condiciones, ası como el error que se genera. En este cuaderno,no ahondaremos en las estadısticas que podemos encontrar tras la regresion lineal,pero quien este interesado o interesada puede encontrar un amplio catalogo de li-bros (ası como numerosos codigos y paquetes en lenguajes de programacion como R)sobre la estadıstica y la regresion lineal, entre los cuales destacan los libros [10], [3]o [5], como principales referencias.

En caso de resolver el problema (1.2) de manera adecuada, se podrıa llegar a unresultado similar al de la Figura 1.1.

Figura 1.1: Ejemplo de una regresion lineal. La variable independiente x en un margencomprendido entre [0, 10] y la variable dependiente y entre [0, 3]. El modelo que se obtienees el siguiente: y ∼ 0,3 + 0,225x. Tal y como podemos observar en la imagen, aparecendiferentes errores entre el modelo generado y los datos. Estos errores (ε) se deben a menudoal ruido que producen los propios datos, y, en funcion del caso, seran aceptables o no.

Error

Si nos fijamos en la Figura 1.1, queda de manifiesto que el modelo obtenido noes exacto y que, por tanto, se generan errores. En este caso, siempre se produciran,debido a que resulta imposible recoger el conjunto de datos de manera lineal. Sinembargo, a simple vista podemos decir que el modelo define de manera bastantesatisfactoria la tendencia del conjunto de datos. Por ello, el objetivo de la regresion

10 CAPITULO 1. APRENDIZAJE SUPERVISADO

lineal consistira en obtener una funcion lineal que minimice este error; es decir,seleccionar los valores β0 y βi adecuados de la ecuacion (1.2).

Como hemos afirmado, los modelos que creamos a traves de la regresion linealcuentan con una teorıa de gran solidez, pero, para su aplicacion, los datos debencumplir una serie de hipotesis, como la independencia lineal de las variables inde-pendientes X, la aceptacion de la hipotesis de normalidad por parte del error ε(ε ∼ N(0, σ2I)), etc.

Modelos lineales de mayor complejidad

Tal y como hemos visto al comienzo de este subcapıtulo con el modelo (1.2),podemos obtener aproximaciones mas complejas y acertadas de la variable depen-diente Y , modificando la variable X y recurriendo al mismo metodo. Supongamosque hemos recogido el conjunto de datos de la Figura 1.2. Tal y como se manifiestade manera clara en la primera imagen, y ∼ β0 + β1x no resulta el modelo mas apro-piado para indicar este grupo. Sin embargo, si recurrimos a un polinomio de tercergrado, y ∼ β0 +β1x+β2x

2 +β3x3, el modelo indicara con mayor acierto la tendencia

de los datos.

Figura 1.2: En el grafico de la izquierda, se ha creado un modelo lineal simple del tipoy ∼ β0 + β1x, mientras que en el grafico de la derecha tenemos un modelo mas complejodel tipo y ∼ β0 + β1x+ β2x

2 + β3x3. Como podemos observar, el segundo modelo es mas

acertado para recoger la tendencia de los datos.

Cabe suponer que la introduccion del exponente en la variable x hace perder sulinealidad. Sin embargo, esto no es cierto, debido a que la linealidad es con respectoa la variable β.

Y ∼ X · β

Pese a que se continue modificando la variable X, el modelo con respecto a βcontinuara siendo lineal. Ası las cosas, en la variable independiente X se pueden

1.1. REGRESION 11

x x2 x3 y-2.5 6.25 -15.625 -21.5-2 4 -8 -5-1 1 -1 0.5. . . . . . . . . . . .2.5 6.25 15.625 21

Cuadro 1.3: En este caso, los datos originales de la introduccion son las columnas grises, esdecir, x e y. Sin embargo, se anaden otras dos variables a la tabla, modificando la variable x(a traves de los exponentes). De tal manera que la variable independiente inicial X = x dalugar a las variables independientes X ′ = (x, x2, x3), con la intencion de crear un modelomas complejo.

realizar las modificaciones mas oportunas (lnx, sinx, tanx . . .)), siempre y cuandosean linealmente independientes (vease el ejemplo de la Cuadro 1.3).

Regularizacion

En el aprendizaje automatizado supervisado (supervised machine learning), nose emplean todos los datos para la regresion, sino que se adopta un gran porcentajede ellos, mientras que los demas se emplean para medir la calidad y la precision delmodelo (vease el subcapıtulo 1.3). Por este motivo, a la hora de crear el modelo, nose trata de explicar los datos con gran precision y detalles, sino de interiorizar laestructura general, lo que puede hacerse a traves de la regularizacion. Para tal fin,contamos con diferentes metodos1, pero los mas empleados consisten en establecerlımites a los parametros β, penalizando los valores altos. A modo de ejemplo, enel metodo de Ridge Regression, estos lımites se penalizan a traves de la distanciaeuclidiana, por lo que el valor que se desea minimizar es el siguiente:

n∑i=1

ε2i + λ

n∑i=0

β2i : λ > 0 (1.3)

Para seleccionar el parametro λ, se prueba con diferentes valores. Se seleccionanlos valores βi que minimizan el valor de todos los que se prueban (1.3), y, a conti-nuacion, se testan los resultados y el modelo obtenidos. Los metodos para testar losmodelos se detallan en el subcapıtulo 1.3.

Para ver el impacto de la regularizacion, se puede observar la Figura 1.3.

El objetivo de la regularizacion consistira en no ajustar demasiado el modeloa los datos (en estos casos, hablarıamos de sobreajuste), para lo que castiga losmodelos complejos, dando un mayor peso a la simplicidad.

1Los metodos se pueden analizar con mayor detalle en la seccion 3.4 de [15].

12 CAPITULO 1. APRENDIZAJE SUPERVISADO

Figura 1.3: Las cruces verdes indican los 9 datos de la introduccion, mientras que la lıneaazul representa el modelo obtenido a traves del polinomio de 8.o grado. En el, el valordel error contenido en (1.1) sera 0, pero no explica la estructura de los datos de maneraadecuada. Recurriendo al parametro λ acertado, podremos obtener el modelo lineal simpledestacado en naranja, lo que resultarıa mas deseable.

1.2. Metodos de clasificacion

Una vez analizada la regresion, continuaremos con los metodos de clasificacion.Los datos iniciales estaran en un espacio X, y cada dato estara adjudicado a unaunica clase o etiqueta. Para indicar estas clases, recurriremos al espacio Y discreto ocualitativo, por lo que, si el espacio Y esta formado de clases K, tendra la siguienteforma:

Y = {1, 2, . . . K}

Se tratara de lograr una funcion f de clasificacion que adjudique una clase demanera adecuada a cualquier elemento del espacio X. Si analizamos la Figura 1.4,los datos de la introduccion son los puntos dibujados. X = R2 es plano, e Y = {0, 1}o Y = {urdina, laranja}, es decir, hay dos clases diferentes. Aquellas clasificacionesque cuentan con solo dos clases se denominan clasificaciones binarias, mientras quelas que tienen mas de dos son clasificaciones multiples.

La lınea azul que aparece en la Figura 1.4 es la funcion f de clasificacion quese pretende lograr. En funcion del metodo empleado, conseguiremos diferentes fun-ciones de clasificacion y, por tanto, los resultados tambien seran diferentes. Una vezque hayamos logrado la f , cada uno de los puntos del espacio X estara adjudicadoa una clase. En la Figura 1.4, el campo destacado en azul esta asociado a una clase,mientras que el campo en naranja se atribuye a la otra.

1.2. METODOS DE CLASIFICACION 13

Figura 1.4: Ejemplo de un metodo de clasificacion. Los puntos naranjas y azules son losdatos iniciales, cada uno con su correspondiente etiqueta o clase. Por su parte, la lıneaazul es el modelo creado para la clasificacion, siendo que los puntos que esten sobre el seatribuiran a una clase, mientras que las que se situen por debajo corresponderan a la otra

1.2.1. k-vecinos mas cercanos

En este metodo de clasificacion, se recurre a la distancia entre los elementos delespacio X. Para realizar la clasificacion del espacio X, adjuntamos a cada x ∈ X lamisma clase del elemento que a menor distancia se encuentre, tal y como podemosver en la Figura 1.6. En este caso, se realiza la clasificacion 1-NN, por lo que tan solose considera la clase del punto que a menor distancia se encuentra. Cabe subrayarque la menor distancia se debe calcular siempre con respecto de los datos iniciales.

Figura 1.5: Clasificacion binaria de los datos iniciales.

Sin embargo, este caso se puede generalizar. En lugar de considerar unicamente elelemento que menos dista del elemento x, tambien se pueden considerar los elementos

14 CAPITULO 1. APRENDIZAJE SUPERVISADO

Figura 1.6: La clase del elemento x sera la misma que la del elemento que a menos distanciase encuentre (en el caso 1-NN), por lo que, en esta ocasion, x se clasificara en la clase azul.

k mas proximos. A continuacion, se detallara la clase que mas se repite entre estoselementos, la cual se adjudicara al elemento x. Este caso es denominado clasificacionk-NN.

Figura 1.7: En la imagen izquierda, figuran datos originales (un total de 3 clases); laimagen central, por su parte, recoge la clasificacion obtenida tras la clasificacion 1-NN y,por ultimo, la imagen de la derecha el resultado obtenido a traves del 5-NN. Los espaciosgrises de la derecha responden a que hay dos clases que mas se repiten.

Seleccionando el valor k

En general, en el metodo de clasificacion k-NN, el error sera pequeno cuando elvalor de k tambien lo sea, mientras que, cuando el valor de k es mas alto, el ambitode clasificacion tiende a ser mas suave y estable, tal y como se recoge en la Figura1.7. Para seleccionar el valor k adecuado, se recurre a las tecnicas del subcapıtulo1.3, creando diversos modelos para los diferentes valores de k y, a continuacion,testando los resultados. La seleccion de los valores de k se puede entender como laregularizacion del apartado anterior: para los valores mas pequenos de k, se puedeproducir un sobreajuste.

Ventajas y desventajas

Tal y como hemos afirmado, se trata de un metodo facil y sencillo de comprendere implementar, y uno de los pocos elementos que hay que definir es la distancia que

1.2. METODOS DE CLASIFICACION 15

deseemos emplear. Sin embargo, existe una desventaja. En caso de que el conjuntode datos iniciales sea muy copioso, el algoritmo posterior tendra un coste elevado,ya que en el metodo k-NN se ha de calcular la distancia existente entre todos lospuntos.

1.2.2. Arbol de decision

El metodo denominado arboles de decision (decision trees) se puede empleartanto para la clasificacion como para la regresion. No obstante, en este apartadonos centraremos en la parte que se emplea para la clasificacion. Este metodo se basaen el sistema de division y, con el fin de que sea lo mas intuitivo posible, daremoscomienzo con un ejemplo.

En la Figura 1.8, figura un conjunto de datos con 4 clases, donde hay dos di-mensiones, X1 y X2; asimismo, en el arbol derecho se muestra la vıa empleada parala clasificacion. En primer lugar, se obtiene el punto t1 en el eje X1, agrupando lospuntos que se encuentran a su derecha en el grupo A (puntos amarillos). A continua-cion, se obtiene el punto t2 en el eje X2, agrupando los puntos que se encuentran pordebajo de este valor en el grupo B (puntos rojos). Por ultimo, se obtiene el punto t3en el eje X1, y se crean los grupos C y D (puntos verdes y azules, respectivamente).

Figura 1.8: En la imagen izquierda, figuran los 21 datos iniciales clasificados en 4 clases.En la imagen derecha, se observa la clasificacion obtenida tras la aplicacion del metodoarbol de decision.

16 CAPITULO 1. APRENDIZAJE SUPERVISADO

Ventajas 2

Sencillo y simple de entender e interpretar.

Permite trabajar con variables tanto cuantitativas como cualitativas, y norequiere un preprocesado profundo de datos.

Se trata de un metodo capaz de trabajar con un gran numero de datos.

Desventajas

Los algoritmos del arbol de decision pueden resultar inestables, y pequenoscambios en los datos iniciales pueden dar lugar a resultados muy dispares.

La consecucion de un arbol de decision optimo global es un problema de NP-complete3 [11], y, para hacer frente a este problema computacional, se recurre alos denominados metodos Ensemble. (Para mas informacion, vease el capıtulo5.)

La simplicidad del metodo conlleva una serie de problemas a la hora de explicarconceptos de mayor complejidad: con el umbral logico XOR/ALA, con losmultiplexadores...

La idea del algoritmo

La idea del algoritmo consiste en encontrar el punto que reduce el error declasificacion en las variables. Por ejemplo, en la Figura 1.8, tras diferentes pruebasen las variables X1 y X2 con el algoritmo, se concluye que el punto que minimiza elerror de clasificacion es el t1 de la variable X1. Para realizar esta medicion del error,lo mas habitual es recurrir a la entropıa o al ındice de Gini. Una vez definido elpunto t1, se sigue el mismo procedimiento para obtener los puntos t2 y t3.

Sin embargo, este algoritmo en ocasiones llega a fallar, en funcion del desglosede los datos iniciales, tal y como se refleja en la Figura 1.9. Para solucionar esteproblema, un metodo habitual es el metodo Pruning o de poda, que consiste enobtener un gran arbol inicial, para, a continuacion, ir eliminando o podando susnodos y sus ramas, hasta conseguir uno mas reducido que se ajusta mejor a nuestrointeres. Este metodo tambien es empleado para evitar el sobreajuste, a modo deregularizacion.

2Para mas detalle acerca de las ventajas y desventajas: [27] http://scikit-learn.org/

stable/modules/tree.html3Para entender la idea general acerca de un problemaNP-complete: http://www.

geeksforgeeks.org/np-completeness-set-1/

1.2. METODOS DE CLASIFICACION 17

Figura 1.9: En este grafico, a simple vista resulta sencillo crear el arbol, pero, a la horade seleccionar los puntos de seccion t1 y t2, el algoritmo no serıa capaz de seleccionar elpunto apropiado, debido a que no puede seleccionar el punto que minimiza el error. Anteeste tipo de casos, se recurre al metodo Pruning.

1.2.3. Maquina de vectores de soporte (SVM)

Para finalizar con los metodos de clasificacion, trataremos sobre el metodo de-nominado maquina de vectores de soporte (Support Vector Machine, SVM). Elmetodo SVM fue desarrollado en el ambito de la informatica en la decada de 1990, yha ido ganando popularidad a medida que han pasado los anos. Se han comprobadosus buenos resultados con diferentes grupos de datos, y, en numerosas ocasiones, hasido considerado como uno de los mejores metodos de uso sencillo.

Para entender su funcionamiento, daremos la definicion intuitiva del hiperplanoen primer lugar y, junto con ello, analizaremos las principales ideas del algoritmollamado clasificadores de margen maximo. Una vez definido este punto, expli-caremos el clasificador de vectores de soporte, y, por ultimo, el metodo SVM.

Clasificadores de margen maximo

Para poder usar este algoritmo o tecnica, se supondra que los datos que se anali-zan tienen una clasificacion binaria y que son linealmente divisibles4. El hecho deque sean linealmente divisibles implica que, matematicamente, los puntos creadospueden ser divididos mediante un hiperplano. En el caso de un espacio bidimensio-nal, se podrıa dividir con una recta, mientras que en un espacio tridimensional sepodrıa hacer lo mismo a traves de un plano.

En los grupos de datos que resultan linealmente divisibles, en la mayorıa de loscasos existiran infinitos hiperplanos para poder realizar la clasificacion. Tomemoscomo ejemplo la Figura 1.11; ambas rectas son validas para la clasificacion, pero, en

4En el capıtulo 9 del libro [17] se pueden leer los detalles acerca del metodo SVM

18 CAPITULO 1. APRENDIZAJE SUPERVISADO

Figura 1.10: Los dos grupos de datos de la imagen son linealmente divisibles. En el primero,se ha logrado un plano divisor en el espacio tridimensional, mientras que en el segundo,en el espacio bidimensional, tenemos una recta divisoria.

este caso, la segunda clasificacion tendra un mayor peso y, en cierta manera, seramejor.

Figura 1.11: Dos clasificaciones diferentes del mismo conjunto de datos linealmente divi-sible.

El clasificador de margen maximo persigue precisamente este segundo resultado,es decir, el hiperplano que mas dista de cada clase. La idea intuitiva que se empleapara maximizar esta distancia se recoge en la Figura 1.12.

En primer lugar, se crea el grupo convexo de los puntos de cada clase y, una vezcreado, se busca el hiperplano que mas se aleja de ellos; es decir, el hiperplano quese encuentra en el centro de los mencionados grupos.

El hiperplano se logra matematicamente a modo de solucion de un problema deoptimizacion, segun se recoge en las siguientes lıneas:

Siendo los datos iniciales x1, . . . , xn ∈ Rp y la clase binaria correspondiente aestos datos y1, . . . , yn ∈ {−1, 1}.

1.2. METODOS DE CLASIFICACION 19

Figura 1.12: Idea intuitiva del clasificador de margen maximo.

El objetivo consistira en obtener un hiperplano β0 + β1X1 + . . . + βpXp = 0cumpliendo con las condiciones que hemos visto. Para ello, habran de selec-cionarse los valores βi adecuados, para los valores i = 0, 1, . . . , n, los cuales seobtienen de la solucion del siguiente problema de optimizacion:

maxβ0,β1,...,βn

M

asociados a las siguientes condicionesp∑j=1

β2j = 1

yi(β0 + β1xi1 + . . .+ βpxip) ≥M, ∀i

Clasificador de vectores de soporte

La idea del clasificador de vectores de soporte es identica a la del clasificador demargen maximo, y consiste en seleccionar un hiperplano adecuado para la clasifi-cacion. Sin embargo, en este ultimo caso, los datos iniciales no tienen por que serlinealmente divisibles, por lo que se puede aplicar en casos mas generales. Para ello,habra de asumirse que la clasificacion puede presentar errores. No obstante, la basedel metodo continua siendo la misma.

En este caso, el problema que hay que optimizar sera el siguiente:

maxβ0,β1,...,βn,ε1,...,εn

M

asociado a las siguientes condicionesp∑j=1

β2j = 1

yi(β0 + β1xi1 + . . .+ βpxip) ≥M(1− εi), ∀i

εi ≥ 0,n∑i=1

εi ≤ C

Como podemos ver, la diferencia principal consiste en la aparicion de los valoresεi. Ello permite que haya errores en la clasificacion, en cuyo caso el valor C losacotarıa (podemos considerar el valor C como un parametro para la regularizacion).

20 CAPITULO 1. APRENDIZAJE SUPERVISADO

Maquina de vectores de soporte

A menudo, sera suficiente clasificar los datos a traves de un hiperplano, perolos datos recabados generalmente no podran dividirse de manera lineal, debido aque presentan clasificaciones de caracter mas complejo, tal y como se aprecia enla Figura 1.13. Es precisamente en estos casos en los que se recurre al SVM, unaampliacion del clasificador de vectores de soporte y para la que entran en juego losdenominados kernel.

Figura 1.13: Grupo de datos cuya division lineal resulta imposible.

Cabe considerar que a lo largo de las proximas lıneas abordaremos la idea quese esconde tras el metodo SVM, debido a la complejidad de sus matematicas y suteorıa y porque el objetivo del presente cuaderno no consiste tanto en profundizaren aspectos tecnicos. Como venimos afirmando, el fundamento de SVM consiste enla utilizacion de diferentes kernel, y recomendamos a quienes deseen ahondar en lamateria comenzar a partir de la seccion 9 del libro [17], debido a que se proporcionauna explicacion mas sencilla para entender la presente seccion.

Figura 1.13 en caso de seguir con su ejemplo. En el, no podemos hallar un hiper-plano apropiado que permita realizar una clasificacion adecuada, y recordemos queen este caso el hiperplano sera una recta. Por lo tanto, los datos para proporcionaruna solucion a estos casos se cambiaran de espacio. Para ello, definiremos una fun-cion φ, donde φ : Rp −→ RP llevara los datos a una dimension superior. A modo deejemplo, se puede analizar la Figura 1.14 de la izquierda. En el los datos R2 de laFigura 1.13 pasan al espacio R3, a traves de la siguiente funcion φ:

φ : R2 −→ R3

(x, y) −→ φ(x, y) = (x, y,√x2 + y2)

1.3. TESTANDO LOS MODELOS 21

Una vez transformados los datos a este nuevo espacio, existe la opcion de crearun hiperplano capaz de realizar una clasificacion adecuada. En el caso de nuestroejemplo, se considera el hiperplano z = 2. Una vez obtenido el hiperplano, se vuelveal espacio original para analizar el ambito de clasificacion logrado (grafico derechode la Figura 1.14).

z = 2 =⇒ 22 = x2 + y2

Figura 1.14: En la imagen izquierda, los originales pasan de la dimension segunda a latercera a traves de una funcion φ, y, a continuacion, se han clasificado mediante un hiper-plano. En la imagen derecha, se recoge la clasificacion final obtenida a traves de la divisiondel hiperplano.

Cabe recordar que lo explicado sobre el metodo SVM se plantea con el fin deexponerlo de manera intuitiva y sencilla. Sobre todo, debemos considerar que losdiferentes kernel empleados en SVM logran que los algoritmos y las tecnicas quehemos vistos tanto en el clasificador de vectores de soporte como en el clasificador demargen maximo sean validos para aquellos casos que no son linealmente divisibles.Esto permite que, con la utilizacion de los kernel apropiados, podemos obtenerclasificaciones tan complejas como se desee.

1.3. Testando los modelos

Hasta ahora, en este capıtulo hemos visto los diferentes metodos que comprendeel aprendizaje automatizado supervisado para la creacion de modelos. Sin embargo,hemos visto que existen varias formas diferentes para crear estos modelos y quelos metodos de clasificacion o regresion obtenidos a traves de ellas pueden presentardiferencias sustanciales. En este sentido, es preciso contar con un sistema para decidirla manera mas adecuada o apropiada entre todas las diferentes opciones.

A la hora de crear los modelos, hemos de tener en cuenta que, en la mayorıa delos casos, deben ser capaces de clasificar correctamente los datos que se recabaran

22 CAPITULO 1. APRENDIZAJE SUPERVISADO

en el futuro. A modo de ejemplo, podemos considerar la Figura 1.15. En ella, se vendos graficos. Las cruces verdes corresponden a los datos iniciales, empleados parala creacion de los modelos, mientras que las lıneas naranja y azul son dos modelosdistintos. Si nos fijamos en el grafico de la izquierda, la lınea azul distribuye los datossin ningun error; sin embargo, la lınea naranja presenta una serie de errores. A lahora de introducir nuevos datos, introducidos mediante las cruces rojas en el graficode la derecha, percibimos que el modelo naranja indica de manera mas apropiada laconducta de los datos, dando lugar a un error mas bajo.

Figura 1.15: En la imagen de la izquierda, podemos ver dos modelos diferentes (naranja yazul) creados a partir de los datos iniciales (cruces verdes). En la imagen derecha, por suparte, figuran datos nuevos (cruces rojas).

Sin embargo, en muchas ocasiones no se podra esperar hasta lograr nuevos datospara testar los modelos, por lo que se recurre a los datos disponibles para hacer lostest. Se trata de una idea relativamente simple, que consiste en emplear parte de losdatos disponibles para entrenar y la otra para testar. Es decir, parte de los datos sedestinara a la creacion del modelo, mientras que el otro, que tendra la consideracionde dato nuevo, para realizar test.

Sin embargo, para ello es muy importante que la division sea realizadade la manera mas uniforme posible, para poder recabar la maxima variabilidadde los datos. Por ejemplo, si queremos crear un modelo con los diferentes horariosde comida existentes en Europa, no resulta razonable obviar los datos relativos aEspana a la hora de crear el modelo y despues emplearlos para testar el modelo.

1.3.1. Training, validation y test set

Para testar los modelos, habitualmente los datos se dividen en tres partes, de-nominadas training set, validation set y test set. A la hora de realizar esta division,se siguen varias indicaciones generales. En caso de que el numero de datos rondelos 100, 1.000 o 100.000, el 70 % o el 80 % de los datos se incluye en el trainingset, mientras que el 30 % y el 20 % restantes se distribuyen entre el validation set

1.3. TESTANDO LOS MODELOS 23

y el test set. Para aquellos casos en los que el numero de datos es mayor –superiora 1.000.000 de elementos, por ejemplo– aproximadamente el 98 % se emplea comotraining set, mientras que un 1 % se utiliza para validation set y el 1 % restante paratest set.

A traves del training set se crea el modelo, tanto para la regresion como para laclasificacion. Sin embargo, en unos casos estos modelos se ajustan demasiado a losdatos iniciales (sobreajuste), por lo que no resultan validos para los nuevos datos.Un ejemplo claro de este ultimo caso es el modelo azul contenido en la Figura 1.15.

Es precisamente para evitar estos casos que se recurre al validation set. A travesde este conjunto de datos, se testan diferentes modelos, con el fin de analizar si existeo no sobreajuste. Para seleccionar el modelo, se disena una tabla o un grafico en eltraining set, con los errores del validation set (Figura 1.16), intentando que los doserrores sean lo mınimo posible.

Figura 1.16: En este grafico, se recogen los errores obtenidos partiendo de los datos de laFigura 1.15 (error cuadratico medio), en funcion del nivel de funcion polinomica empleada.Tal y como vemos en la Figura 1.15, el polinomio de primer grado crea un mayor errorcon respecto al polinomio de octavo grado en el training set, pero menor en el validationset.

Como vemos en la Figura 1.16, a medida que el modelo es mas complejo, el errorque se produce en el training set va disminuyendo, debido a su capacidad de colocarestos datos de manera directa. Por otra parte, si analizamos el error que se da en elvalidation set, veremos que este aumenta sensiblemente a partir del tercer nivel. Setrata precisamente de la expresion grafica del sobreajuste.

24 CAPITULO 1. APRENDIZAJE SUPERVISADO

Como decıamos, el objetivo consiste en evitar el sobreajuste y minimizar loserrores, por lo que, en este caso, seleccionaremos el modelo que contenga un nivel odos. En general, en el validation set se selecciona el modelo que minimiza el error. Encaso de que existan varios modelos que cumplan con esta condicion, seleccionaremosaquel que presente el error mas pequeno en el training set.

Una vez seleccionado, recurriremos al test set para medir su calidad. Comparandocon el validation set, se emplea unicamente para calcular el error final y no a la horade seleccionar el modelo.

El lector o la lectora que desee mas informacion sobre los test, puede recurrir alcapıtulo 5 del libro [17], donde se recogen los pormenores de test como la validacioncruzada (cross-validation), ası como las diferentes formas para medir el error.

Capıtulo 2

Aprendizaje no supervisado

El aprendizaje no supervisado es una tarea de aprendizaje automatizado parainferir la estructura oculta de datos sin etiqueta. Para ello, los datos carecen decualquier tipo de clase, categorıa o clasificacion y, en comparacion con el aprendizajesupervisado, los metodos de evaluacion de los modelos inferidos a traves de los datosson mas subjetivos.

En este grupo existen algoritmos y metodos de diferentes formas, pero, en gene-ral, existen dos tareas principales con los datos sin etiquetar : por una parte, agruparlos datos y, por otro, disminuir su dimension.

En el primer caso, el caso mas conocido es el del clustering, que podemos obser-var en el subcapıtulo 2.1, donde los datos se agrupan por sus caracterısticas comunes.Otro caso conocido puede ser la deteccion de las anomalıas. En estos metodos,el objetivo consiste en identificar el dato o el conjunto de datos que dista de losrecopilados o que resulta extrano con respecto a ellos. En este cuaderno, se incluyenotros dos subcapıtulos relacionados con la agrupacion de datos: la factorizacionde matrices (subcapıtulo 2.3) y el analisis de asociacion (2.4).

Por otra parte, uno de los ejemplos sobre la reduccion de la dimension delos datos se relata en el analisis de los componentes principales (subcapıtulo2.2). El objetivo de la reduccion de la dimension de los datos consiste en ampliarsu interpretacion y rechazar la informacion no necesaria. Dicho de otra manera, seprima la inteligibilidad y la simplicidad de los datos.

Como veremos en este apartado, los modelos de aprendizaje no supervisado pue-den ser abordados del mismo modo en que se hace con los modelos del aprendizajesupervisado, con unas pequenas modificaciones, pese a que, para medir la calidad yel ajuste de los modelos, se debe recurrir a otras tecnicas.

2.1. Cluster

A la hora de formar los clusteres, los datos se proporcionan, como venıamosdiciendo, sin ningun tipo de etiqueta o de clasificacion, y el objetivo consiste enagrupar estos datos en funcion de su proximidad o de su similitud.

Dicho de manera matematica, los n datos x1, . . . , xn pertenecientes al espacio

25

26 CAPITULO 2. APRENDIZAJE NO SUPERVISADO

X, deberan ser clasificados en diferentes grupos K ∈ N, introduciendo en el mismocluster aquellos puntos que estan a poca distancia. Con el fin de facilitar las cosas,supondremos que las variables son continuas y que contamos con un espacio vectorialX = Rd (en los ejemplos, emplearemos X = R2).

La seleccion de la cantidad de grupos que queramos crear puede ser bastantesubjetiva, y se trata de algo que hay que analizar segun el caso, si bien en ocasionesel numero de clusteres que hay que lograr este predefinido (supongamos, por ejemplo,que con las distintas mediciones recogidas en la CAE se nos solicita asignar una notadel 1 al 5 al nivel de vegetacion de cada municipio). Dentro del siguiente metodo seexplica una manera de seleccionar un numero K de clusteres.

Figura 2.1: En la imagen de la izquierda se muestra un conjunto de datos iniciales, mientrasque en la imagen de la derecha estos datos se dividen en dos clusteres. Las dos cruces negrasque aparecen en la imagen derecha, son los centroides µ1 y µ2 de los mencionados clusteres.

Metodo K -Means

Uno de los metodos mas sencillos, simples y empleados para la formacion declusteres es el metodo K-Means. Su idea principal consiste en anadir los puntosque existen alrededor de determinados puntos µk (denominados centroides) al grupok. Estos centroides se definen de la siguiente manera:

µk =1

nk

nk∑i=1

xi1{ci=k} ∈ Rd (2.1)

donde nk indica el numero de elementos del grupo k, 1 es el indicador de la funcion,mientras que c ∈ {1, . . . , K} representa el indicador del grupo:

ci = k ⇔ xi pertenece al cluster k (2.2)

2.1. CLUSTER 27

El objetivo del algoritmo consiste en lograr un optimo c =(c1, . . . , cn) yµ =(µ1, . . . , µK), para que todos los puntos permanezcan lo mas cerca posible delcluster. En grafıa matematica, se pretende conseguir lo siguiente:

arg minµ,c

n∑i=1

K∑k=1

1{ci=k}d(xi, µi) (2.3)

donde d mide la distancia que se pretende emplear.Sin embargo, este problema de minimizacion es un problema de NP-Hard1 [11];

es decir, de gran complejidad computacional. Para abordar este problema, se recurrea otros algoritmos mas sencillos que logran mınimos locales. Entre los mas em-pleados, destaca el algoritmo de Lloyd. En el, los centroides se obtienen medianteiteracion y se siguen dos pasos fundamentales: redefinir los centroides y los grupos(hasta la convergencia).

Para poder entender la idea intuitiva del algoritmo, en la red encontraremoscientos de vıdeos y animaciones. A modo de ejemplo, incluimos el siguiente enlace:

https://www.youtube.com/watch?v=5I3Ei69I40s

Sin embargo, hay que tener en cuenta que, cuando en general el valor deK es cadavez mayor, el relativo a (2.3) ira disminuyendo. Por lo tanto, una de las manerasde seleccionar K serıa ir ampliado de manera individual sus valores y, cuando elvalor de (2.3) crezca poco, nos quedaremos con el ultimo valor de K. Si analizamosel contenido de la Figura 2.2, veremos que en este caso se recomendarıa la creacionde tres clusteres, debido a que se considera mınima la mejora que se produce en elerror a partir de ahı. Sin embargo, este metodo ha de emplearse a modo de guıa uorientacion, debido a que se pueden crear mas o menos clusteres en funcion de losobjetivos que se persiguen.

Metodos probabilısticos

Existen asimismo metodos probabilısticos para la creacion de los clusteres.Aquello que se pretende crear es identico, obtener K grupos partiendo de los da-tos, pero se realiza una serie de suposiciones que dan pie a emplear la inferenciaestadıstica.

Si, a modo de suposicion, consideramos que los datos recabados provienen dediferentes distribuciones normales –este caso se conoce como modelo de mezclagaussiana (Gaussian Mixture Model, GMM)2, el desglose de los clusteres quequeremos obtener sera del modo N(µi,Σi).

El aspecto positivo del GMM es que se puede recurrir a la inferencia estadısti-ca, con el fin de obtener conclusiones y estructuras mas solidas. Sin embargo, losclusteres obtenidos seran de una determinada forma. Si analizamos la Figura 2.3,

1La idea general acerca de lo que es un problema NP-Hard :http://www.geeksforgeeks.org/np-completeness-set-1/

2Se puede consultar la seccion 9.2 del libro [2] para mas detalles.

28 CAPITULO 2. APRENDIZAJE NO SUPERVISADO

Figura 2.2: En este grafico, junto con la ampliacion del numero K de clusteres, se analizasu densidad; es decir, la mayor cercanıa de los elementos de cada uno de los clusteres.

los clusteres obtenidos en dos dimensiones tendran forma de elipsoide, debido a quese parte de la distribucion normal.3

2.2. Analisis de los componentes principales

El analisis de los componentes principales (Principal Component Analysis, PCA)es sobre todo un metodo empleado para realizar la reduccion dimensional de los datosiniciales. Supongamos que los datos iniciales son x1, . . . , xn ∈ Rd, mientras que dresponde al numero de variables de cada uno de los elementos. En muchas ocasiones,algunas de estas dimensiones o variables ofrecen muy pocas novedades, o existecierta colinealidad entre ellas. Por tal motivo, resulta deseable eliminar las variablesinnecesarias para ahorrar memoria y para reducir el tiempo de computacion.

Sin nos fijamos en la Figura 2.4, veremos la accion del algoritmo PCA de maneraintuitiva. Los datos iniciales cuentan con cuatro dimensiones: tres espaciales y unarelativa al color. En esta ocasion, se pretende lograr una clasificacion de estos puntos,para lo que tenemos dos opciones. Por una parte, tenemos la opcion de comenzar atrabajar de manera directa, con el metodo de clasificacion deseado. Por otra parte,se puede aplicar la reduccion de dimension, tras lo cual se aplicarıa el metodo declasificacion. Como podemos observar en la imagen de la derecha, se ha eliminadouna dimension espacial, una cantidad considerable de informacion, y, sin embargo,existe la posibilidad de realizar la clasificacion de manera adecuada.

El PCA se basa en la descomposicion de los valores propios4. En caso de crearla matriz X ∈ Rn×d de los datos:

3El lenguaje de programacion Python ofrece varios modulos de formar clusteres utilizandodiferentes metodos [27]: http://scikit-learn.org/stable/modules/clustering.html

4Se puede consultar acerca de la descomposicion de los valores propios en la mayorıa de loslibros de algebra lineal, como por ejemplo en la seccion 5 de [33]

2.2. ANALISIS DE LOS COMPONENTES PRINCIPALES 29

Figura 2.3: En este grafico, vemos que existen 4 clusteres y que se supone que los puntosde cada uno de ellos se obtienen de una distribucion normal N(µi,Σi).

Figura 2.4: En la imagen izquierda, los datos iniciales. En la imagen derecha, resultadoobtenido tras la aplicacion del PCA

X =

— x1 —...

— xn —

XXT sera una matriz semidefinida positiva y, por consiguiente, tendra r ≤

mın{d, n} valores y vectores propios.

Valores propios: λ1 ≥ λ2 ≥ . . . λr ≥ 0

Vectores propios: q1, q2, . . . , qr

Como en la mayorıa de los metodos analizados, la normalizacion de las varia-bles cuenta con una gran importancia; de lo contrario, las variables de mayor valortendran un peso mayor con respecto de los demas. Ahora bien, ¿como podemos sabercuantas variables o dimensiones mantener?

Ante esta cuestion, no tenemos una respuesta concreta, pero, a grandes rasgos,podemos decir que se analiza la varianza para definir el numero de variables. La idea

30 CAPITULO 2. APRENDIZAJE NO SUPERVISADO

principal consiste en analizar la varianza que muestran las variables seleccionadasde la varianza total de datos: en caso de que sea considerable, nos quedaremos conestas variables.5

Figura 2.5: Porcentajes de la varianza acumulada recogida con diferentes cantidades devariables a traves de PCA.

Tal y como vemos en la Figura 2.5, tras la aplicacion del PCA a un conjunto dedatos, con una unica variable o dimension se expresa mas del 60 % de la varianzatotal, dos variables incluirıan mas del 80 % y tres variables o mas recogerıan mas del90 %. Ante este dato, se precisa determinar el numero de variables que se tendra encuenta, para lo que no existen reglas especıficas. Se trata de una eleccion subjetivasegun el caso, y los dos puntos que se consideran son sobre todo los siguientes:explicar un alto porcentaje de la varianza total y que las nuevas variables no consiganampliar mucho ese porcentaje de la varianza. En el caso del ejemplo, serıa bastantecomun quedarse con dos variables.

2.3. Factorizacion de matrices

En la actualidad, gran parte del mercado se encuentra en Internet, y se puedencomprar o alquilar pelıculas, musica, ropa, comida y aparatos electronicos, entreotros. Sin embargo, la lista de objetos que se pueden comprar o alquilar es muyextensa, por lo que resulta imposible comenzar a ver y analizarlo todo. Por talmotivo, durante los ultimos anos resultan especialmente importantes los sistemasde recomendaciones.

Uno de los metodos empleados en estos sistemas de recomendacion es el deno-minado filtrado colaborativo. En estos casos, nos encontramos por una parte conlos usuarios y, por otra, con los objetos. Lo que se pretende conseguir es almacenarla puntuacion otorgada por los usuarios y aprender de ella. Ası las cosas, el algorit-mo tendra la capacidad de recomendar nuevos objetos, analizando la puntuacion deotros usuarios.

5Los detalles matematicos de la varianza se pueden leer en la seccion 10.2.3 de [17].

2.3. FACTORIZACION DE MATRICES 31

La idea principal es la siguiente: si dos personas han proporcionado una puntua-cion muy parecida a la hora de evaluar una serie de productos, es probable que aotros productos confieran una puntuacion similar. En definitiva, se busca un sistemade agrupacion entre usuarios y objetos.

La factorizacion de matrices es precisamente un algoritmo que se emplea para elmetodo del filtrado colaborativo.

La idea del algoritmo

Usu

ario

s

PMatriz de

puntuacion n×m

Objetos

Usu

ario

s

Un× r

Rango

Ran

go V T

r ×m

Objetos

Figura 2.6: Esquema de la factorizacion de matrices.

En este metodo, simplificando las cosas, se crea una matriz P al principio. Enlas columnas de esta matriz se colocan los objetos, mientras que los elementos de lamatriz P seran las puntuaciones. Dicho de otra forma, el elemento pij de la matrizP , sera la puntuacion que el usuario i ha proporcionado al elemento j (del 1 al 5, del1 al 10, etcetera). En esta matriz, la mayorıa de los elementos permaneceran vacıos,debido a que cada usuario tan solo evaluara unos pocos objetos, y el objetivo delalgoritmo consistira en realizar una estimacion acertada de esos huecos.

Para ello, se recurre a la idea de la descomposicion en valores singulares (SVD,por sus siglas en ingles)6. A traves de la descomposicion en valores singulares, seobtienen los valores propios de una matriz, su fundamento.

No obstante, para los sistemas de recomendacion, no se puede recurrir directa-mente a la descomposicion SVD, debido a que falta la mayorıa de los valores de lamatriz P , alrededor del 99 %. Por tal motivo, habra de obtenerse un esquema similaral de la Figura 2.6, donde pij ≈ uTi · vj y el error que se pretende minimizar:∑

(i,j)∈κ

(pij − uTi · vj)2 (2.4)

en el grupo κ estaran los componentes no nulos de la matriz P . Ademas, si seconsidera la regularizacion a la hora de calcular el error (mas informacion sobre la

6Los detalles de SVD se pueden leer en la mayorıa de los libros de algebra lineal, entre otros enla seccion 6.3 de [33].

32 CAPITULO 2. APRENDIZAJE NO SUPERVISADO

regularizacion en el capıtulo 1, en particular en el apartado 1.1.1, donde se define),el error que se debe minimizar sera el siguiente:∑

(i,j)∈κ

(pij − uTi · vj)2 + λ(‖ui‖2 + ‖vi‖2) (2.5)

Para minimizar este error, existen dos principales algoritmos, el algoritmo delgradiente estocastico (Stochastic Gradient Descent) y los mınimos cuadrados alter-nantes (Alternating Least Squares)7. En este trabajo, se explicaran las ideas princi-pales de los mınimos cuadrados alternantes.

En primer lugar, se da comienzo a la matriz V T , seleccionando los vectores vjde manera aleatoria de un desglose N(0, λ−1I).

A continuacion, una vez definidos los valores de la matriz V T , se actualizan losvalores de la matriz U para que el valor relativo a (2.5) sea el menor posible.

Actualizado U , se deja definido U y se actualiza la matriz V T , que minimizalo maximo posible el valor (2.5).

Se repetiran los pasos 2 y 3, hasta lograr la convergencia

Observaciones

Para aplicar la factorizacion de matrices, deberan tenerse en cuenta los siguientespuntos:

La matriz de puntuacion P debera contar con casi todos los valores nulos.

El rango de la matriz P debera ser mucho menor que su dimension.

Para que el metodo de buenos resultados, es deseable que se produzca la co-rrelacion entre usuarios y que, por tanto, las lıneas de la matriz P esten co-rrelacionadas.

Puede que varios de los elementos que se obtengan de la matriz P = U · V T

presentes valores extranos, tanto negativos como demasiado altos (obtener un6.1 de puntuacion en las valoraciones del 1 al 5, por ejemplo). Para solucionarlo,los resultados obtenidos deberan ajustarse al sistema de valoracion.

Ademas de recurrir a usuarios y a objetos, tambien se pueden anadir otrosfactores, como el historial de busquedas, el paıs, la edad, etcetera. Para estoscasos, se recurre a la factorizacion de tensores8.

7Los detalles del algoritmo se pueden encontrar en el artıculo [20].8Se puede consultar la seccion 19.4.2.1 de [30] para mas detalles.

2.4. ANALISIS ASOCIATIVO 33

El rango o el valor r que figura en la Figura 2.6 no es el rango de la matrizP , debido a que no puede ser calculado de la manera clasica. Por tanto, serealizan test para los diferentes valores r (como 10, 50, 100, 200) y se quedacon los valores mas deseados (por ejemplo, con la mejor relacion error/costecomputacional).

2.4. Analisis asociativo

El analisis asociativo es un metodo empleado generalmente en el comercio. Suobjetivo consiste en identificar los productos que generalmente coinciden en unadeterminada cesta de la compra. A modo de ejemplo, podemos pensar que quienadquiere un ordenador personal seguramente comprara tambien una funda –o quepuede interesarle–. Por ello, puede resultar interesante identificar estas relaciones eintentar ofrecer al consumidor un paquete o una coleccion de productos.

Como veremos a continuacion, se trata de un metodo que recurre a la matematicabasica, de facil comprension y que apenas requiere preprocesamiento de datos.

Figura 2.7: Ejemplo de diferentes cestas de la compra.

Si nos fijamos en la Figura 2.7, aparecen diferentes cestas de la compra, y sepretende, sobre todo, realizar las siguientes dos reflexiones:

El analisis asociativo, que consiste en analizar subconjuntos formados por di-ferentes productos. Supongamos que en el ejemplo de la Figura 2.7 se pretendeanalizar el vınculo entre los productos {Cerveza, Leche}. Para ello, calculare-mos la probabilidad de la cesta de la siguiente manera:

P (El numero de cestas que contienen {Cerveza, Leche}) ={Cerveza, Leche}

Numero total de cestas=

4

8= 0,5

Reglas de asociacion, que miden, en cierta manera, la correlacion entre pro-ductos y objetos. Supongamos que en el ejemplo de la Figura 2.7, en caso de

34 CAPITULO 2. APRENDIZAJE NO SUPERVISADO

comprar A ={Cerveza, Leche}, se solicita medir la probabilidad de comprarB ={Caramelos}:

P (B|A) =El numero de cestas que contienen {Cerveza, Leche, Caramelos}

El numero de cestas que contienen {Cerveza, Leche}=

3

4= 0,75

Por otra parte, se puede analizar la relevancia de los productos A ={Cerveza,Leche} a la hora de adquirir B ={Caramelos}:

L(A,B) :=P (B|A)

P (B)=

3/4

6/8= 1

En este caso, el significado del 1 es el siguiente: existe la misma probabilidadpara comprar {Caramelos} se compren o no se compren {Cerveza, Leche};en caso de que, por ejemplo, (en el caso, por ejemplo, de L(A,B) = 2, elsignificado variarıa: serıa dos veces mas probable adquirir {Caramelos} encaso de comprar {Cerveza, Leche}, en comparacion con no comprar {Cerveza,Leche}).

Son sobre todo estas las herramientas que se emplean para el presente analisis.Sin embargo, en aquellos casos en los que el numero de datos es ingente, resultaimposible a nivel computacional realizar este analisis. No sera posible analizar todoslos subconjuntos de los objetos, ni ver la relacion de todos los objetos. A modode solucion, se recurre al algoritmo apriori, cuyo fundamento se basa en reducirel arbol gigante que se va desarrollando, cuando la probabilidad resulta demasiadobaja.

Figura 2.8: Grafo de todas las cestas posibles con los objetos A, B, C y D.

En el grafo que podemos observar en la Figura 2.8, se ha disenado el arbolcompleto, pero lo que se pretende suponer es que la probabilidad de la cesta t ∈ [0, 1]sea mayor que un valor y que P (AB) < t. En este caso, se eliminara la cesta AB,pero no unicamente, sino que todas las cestas formadas con la combinacion de los

2.4. ANALISIS ASOCIATIVO 35

productos de la cesta AB, debido a que su probabilidad tambien sera mas baja quet.

Figura 2.9: Esquema del algoritmo apriori.

Si eliminamos todos ellos, obtendremos el grafo que figura en la Figura 2.9;es decir, cuantas cestas se eliminarıan a priori, que es precisamente la idea delalgoritmo apriori9.

9Para mayor informacion y detalles acerca del tema y del algoritmo, seccion 14.2 de [15].

Capıtulo 3

Datos secuenciales

A lo largo del presente capıtulo, analizaremos los datos que presentan una es-tructura particular, los datos secuenciales. Este tipo de datos generalmente estanordenados de una manera especıfica, y este orden cobra una especial importancia.Si nos centramos en el ejemplo del tiempo, las diferentes mediciones (precipitacion,temperatura, presion atmosferica...) se hacen en tiempos diferentes, y estos datosobtenidos se ordenan cronologicamente la mayorıa de las veces. En este ejemplo, elorden y la cronologıa cobran una especial relevancia, debido a que no es lo mismorealizar las mediciones en noviembre que en junio. Al mismo tiempo, a la hora derealizar las predicciones meteorologicas, tiene relevancia el tiempo registrado el dıaanterior.

En el caso de la informacion bursatil, el orden cronologico de los valores de lasacciones es practicamente indispensable para obtener analisis pertinentes y reali-zar previsiones. Por este motivo, en el capıtulo 3 nos centraremos en los diferentesanalisis que se realizan con este tipo de datos.

Para ello, analizaremos las cadenas de Markov, ası como los denominadosmodelos ocultos de Markov. Tal y como veremos en los siguientes subcapıtulos,estos metodos permiten la realizacion de clasificaciones o clusteres. Sin embargo, adiferencia de los capıtulos 1 y 2, las opciones que se obtienen mediante estos metodosresultan mucho mas diversas y generales, por lo que no se han incluido en el apartadorelativo al aprendizaje supervisado, ni en el aprendizaje no supervisado.

3.1. Cadenas de Markov

Las cadenas de Markov deben su nombre al matematico ruso Andrey Markov, yhacen referencia a una secuencia de datos sin memoria. Dicho de otra manera, el re-sultado obtenido en cada uno de los pasos de una secuencia depende exclusivamentedel ultimo resultado1. Si consideramos la siguiente sucesion de datos:

1La definicion de cadenas de Markov se puede generalizar, cogiendo secuencias que dependende los anteriores m elementos. En ese caso, se llamarıan cadenas de Markov con memoria deorden m.

36

3.1. CADENAS DE MARKOV 37

{x1, x2, . . . , xi, xi+1, . . . , xn}, xi ∈ Rdonde el valor xi+1 depende exclusivamente del valor xi, siendo i ∈ {1, . . . , n − 1}.La definicion se presenta generalmente de manera matematica-probabilıstica:

P (xi+1|xi, . . . , x2, x1) = P (xi+1|xi), ∀i ∈ {1, . . . , n− 1}

Recurriremos de nuevo al ejemplo meteorologico. Haciendo un gran ejerciciode simplificacion, supongamos que el tiempo de hoy depende exclusivamente de lameteorologıa de ayer, y que se obtienen las siguientes probabilidades:

P (“Manana sol” | “Hoy sol”) ”) = 0,6

P (“Manana sol” | “Hoy lluvia”) = 0,3

P (“Manana lluvia” | “Hoy sol”) ”) = 0,4

P (“Manana lluvia” | “Hoy lluvia”) = 0,7

Soleado Lluvia0.4

0.3

0.6 0.7

Con estas probabilidades, se puede crear una matriz de transicion o la matrizde Markov, de la siguiente manera:

M =

[0,6 0,40,3 0,7

]La suma de los elementos de cada una de las lıneas de la matriz de transicion

sera siempre 1, debido a las propiedades de las probabilidades; mientras que existela probabilidad de que el elemento Mij pase de la situacion i a la situacion j. En elcaso anterior, el elemento M12 indica que, sabiendo que ayer fue un dıa de sol, existela probabilidad de que hoy se registren precipitaciones.

En las cadenas de Markov, la matriz de transicion M cobra especial relevancia,debido a que define por completo la cadena. Para obtener los valores de esta matriz,se recurre a diferentes maneras en funcion de cada caso. En ocasiones, los elementosMij estaran predefinidos o sera el usuario quien debera definirlos (en los ejemplosanteriores, estaban predefinidos). Sin embargo, en otras ocasiones, deberan ser es-timados, recurriendo al metodo de mayor verosimilitud con respecto de los datosiniciales.

Ademas, se trata de un elemento indispensable para lograr la distribucion es-tacionaria (stationary distribution)2, por lo que la siguiente definicion resulta muyimportante para sus aplicaciones:

M∞ := lımn→∞

Mn

2Para mas informacion acerca de la distribucion estacionaria y la matriz de transicion: seccion1 de [22].

38 CAPITULO 3. DATOS SECUENCIALES

Aplicaciones

Clasificacion semisupervisada::3

Sirve para los casos recogidos en la Figura 3.1, cuando de todos los puntos deentrada tan solo unos pocos estan clasificados. En estos casos, se recurre a un puntono clasificado y se va saltando de un punto a otro mediante una vıa aleatoria, hastallegar a un punto clasificado; a continuacion, se clasifican en el mismo grupo4. Laprobabilidad para saltar de un punto a otro tambien se puede definir de diferentesmaneras, pero en estos casos se define en funcion de la distancia: los puntos cercanostendran una mayor probabilidad en comparacion con los mas alejados.

Ademas, los puntos clasificados desde un principio (los puntos naranja y azulque figuran en la Figura 3.1) seran los puntos absorbentes; es decir, una vezalcanzados no se podra salir de ellos. Si xpx es un punto absorbente:

P (xi+1 = xpx|xi = xpx) = 1

Figura 3.1: En la imagen izquierda, se observan los datos iniciales. Aparecen dos puntosclasificados, por una parte el punto azul y, por otra, el punto naranja, mientras que elresto estan sin clasificar. En la derecha, podemos ver una clasificacion obtenida tras laaplicacion de la cadena de Markov.

Creando rankings:

Otra aplicacion posible serıa la creacion de un ranking o lista. Para ello, secrea una matriz de transicion, para lograr el objetivo de una manera artificial. Amodo de ejemplo, se puede crear un ranking de pelota vasca. De una manera simple,

3En el siguiente link se puede ver una animacion explicando el metodo:https://www.datasciencecentral.com/profiles/blogs/a-semi-supervised-classification

-algorithm-using-markov-chain-and4En vez de calcular mediante una vıa aleatoria, se calcula mediante la matriz M∞ la clasificacion

de cada punto. Para la clasificacion del elemento j hay que fijarse en la fila j de la matriz M∞,observando la columna con el valor mas grande.

3.2. MODELOS OCULTOS DE MARKOV 39

supongamos que un jugador es mejor que el otro si gana el partido, y que el resultadofinal indica cuantas veces mejor serıa. Es decir, si el jugador A gana al jugador B, Asera mejor que B, y sera mejor cuanto mayor sea la diferencia en el resultado final.

Pilotariak A B CA X 22 - 18 22 - 11B 18 - 22 X 22 - 20C 11 - 22 20 - 22 X

Cuadro 3.1: Como podemos observar, en este ejemplo el jugador A ha ganado los dospartidos, mientras que el C ha perdido los dos.

Con esta definicion, el movimiento del jugador B al jugador A tendra una altaprobabilidad en la matriz de transicion, mientras que en el movimiento del jugadorA al B la probabilidad sera baja. Una vez definida la matriz M de transicion, secalcula la matriz M∞. Todos los valores de la matriz M∞ seran equivalentes; el valorde la columna j, por su parte, sera la valoracion del pelotari j: cuanto mayor, mejor.

En el caso de los jugadores de pelota, el sistema de evaluacion se realiza de lasiguiente manera:

Mij =En el partido entre i y j los tantos realizados por j

En los partidos de i los tantos que han realizado los perdedores + 22, i 6= j

Mii = 1−∑j 6=i

Mij

Con este sistema de evaluacion, se obtiene la siguiente matriz de transicion:

M =

22

18 + 11 + 22

18

18 + 11 + 22

11

18 + 11 + 2222

18 + 20 + 22

18

18 + 20 + 22

20

18 + 20 + 2222

11 + 20 + 22

22

11 + 20 + 22

9

11 + 20 + 22

=

22

51

18

51

11

5122

60

18

60

20

6022

53

22

53

9

53

y a traves de ella se logra la matriz M∞ previamente definida:

M∞ =

0,4047482 0,3496906 0,24556120,4047482 0,3496906 0,24556120,4047482 0,3496906 0,2455612

Por tanto, segun el ranking obtenido, el jugador A ha sido el mejor, mientras

que el C ha sido quien ha cosechado los peores resultados.

3.2. Modelos ocultos de Markov

Desafortunadamente, habra ocasiones en las que resulte imposible analizar direc-tamente desde los datos. Supongamos, por ejemplo, que queremos analizar cuando

40 CAPITULO 3. DATOS SECUENCIALES

se produce la lluvia de metano en el satelite Titan5. Consideremos que se haceel analisis con un telescopio de infrarrojos, y que los resultados obtenidos en unainvestigacion dicen lo siguiente:

P (“Sol” | Nivel Infrarrojos < T0) = 0,2

P (“Lluvia” | Nivel Infrarrojos < T0) = 0,8

P (“Sol” | Nivel Infrarrojos ≥ T0) = 0,9

P (“Lluvia” | Nivel Infrarrojos ≥ T0) = 0,1

donde T0 representa un valor conocido obtenido en la investigacion. En este caso,con las herramientas con las que contamos, no podemos saber el resultado especıfico,unicamente el nivel de infrarrojos. Supongamos asimismo que, segun otras investi-gaciones realizadas, se han logrado las siguientes probabilidades:

P (“Manana Sol” | “Hoy Sol”) = 0,6

P (“Manana Sol” | “Hoy Lluvia”) = 0,3

P (“Manana Lluvia” | “Hoy Sol”) = 0,4

P (“Manana Lluvia” | “Hoy Lluvia”) = 0,7

Lo que se pretende obtener es las alteraciones de la estimacion del tiempo delsatelite Titan, ası como intentar su prediccion con base en los datos recabados(mediante la medicion del nivel de infrarrojos):

{t1, t2, t3, . . . , tn} n mediciones de nivel infrarrojos

En este caso, existiran dos matrices: la matriz de transicion:

A =

[0,6 0,40,3 0,7

]y la matriz de emision:

B =

[0,2 0,80,9 0,1

]siendo la siguiente la distribucion inicial de producirse precipitaciones o permanecersin precipitaciones:

π = [0,5 0,5]

En este ejemplo, las matrices A, B y π se consideran como conocidas, pero enla mayorıa de los casos esto no sucedera ası y habran de estimarse dichas matrices.Ademas, en este caso, el modelo oculto de Markov del ejemplo es un modelo discreto,es decir, las situaciones que recoge son discretas (precipitaciones o sin chubascos).En los modelos discretos surgen principalmente tres problemas de estimacion:

5Para mas informacion acerca del satelite Titan:https://www.space.com/15257-titan-saturn-largest-moon-facts-discovery-sdcmp.html

3.2. MODELOS OCULTOS DE MARKOV 41

Siendo la matriz {A,B, π} para un HMM discreto y con la sucesion de datosiniciales {t1, t2, . . . , tn}, obtener la estimacion de la situacion de cada ti. Pararesolver este problema, se recurre al algoritmo Forward-Backward.

Siendo la matriz {A,B, π} para un HMM discreto y con la sucesion de datosiniciales {t1, t2, . . . , tn}, obtener la sucesion de situaciones {s1, s2, . . . , sn} conmayor probabilidad. Para resolver este problema, se recurre al algoritmo deViterbi.

Con la sucesion {t1, t2, . . . , tn} analizada, realizar la estimacion de las matrices{A,B, π}. Para ello, se recurre al metodo de mayor verosimilitud.

Tras el HMM, hay toda una matematica y teorıa compleja que no analizaremosaquı, debido a que no es el objetivo del presente trabajo. Sin embargo, al lector o lalectora que pueda interesarse al respecto recomendamos el artıculo [29] y el libro detexto [4], por su gran utilidad para ahondar en este tema. En ellos, figuran inclusoHMM continuos, es decir, modelos con situaciones no discretas, que resultan aunmas complejas pero que obtienen aplicaciones mas interesantes, como serıa el casodel coche inteligente.

Capıtulo 4

Redes neuronales artificiales

4.1. Introduccion historica

Las redes neuronales artificiales comenzaron a ser analizadas en la decada de1940, y se presentaron diferentes trabajos al respecto. Se conseguıa realizar calculosaritmeticos simples, aunque con grandes limitaciones. Los principales avances tuvie-ron lugar en las decadas de los 50 y de los 60 del siglo XX, gracias al algoritmo dePerceptron, que intenta imitar la funcion de una neurona y que se considera comoel precursor de las redes neuronales. La principal novedad que trajo este algoritmofue la capacidad de seleccionar los parametros mas apropiados por su cuenta. Comopodemos observar en la Figura 4.1, supondremos que los datos iniciales estan enuna clase binaria (en el caso de la imagen, verde o roja) y que el objetivo consisteen clasificarlos a traves de un hiperplano. Para ello, el algoritmo dirige los pesosW = (w1, . . . , wn) hasta que logra el objetivo para cada una de las iteraciones (enaquellos casos en los que sea posible).

Figura 4.1: En la izquierda, vemos el esquema del Perceptron, mientras que en la derechatenemos el proceso del algoritmo hasta que selecciona el hiperplano adecuado.

Sin embargo, pese a todos estos avances, las investigaciones sobre las redes neu-ronales artificiales quedaron aparcadas durante las decadas de los 60 y 70, debido a

42

4.2. IDEAS PRINCIPALES 43

que la capacidad de los ordenadores de la epoca era reducida y porque no existıan al-goritmos apropiados para entrenar las redes. Esta situacion darıa un vuelco a partirde 1986, gracias al algoritmo de backpropagation o de propagacion hacia atras.Este algoritmo proporciona a las redes neuronales la capacidad de aprender o deseleccionar los pesos adecuados de manera automatica. Desde entonces, el ambi-to de las redes neuronales ha experimentado un gran crecimiento y desarrollo (y locontinua teniendo), ya que se muestra que tiene capacidades practicamente infinitas.

4.2. Ideas principales

La idea de las redes neuronales artificiales es imitar o emular los procesos queacontecen e nuestro cerebro, principalmente a la hora de generar el esquema. Paradescribir el proceso de una manera simple, se puede observar la Figura 4.2. En ella,se recurre a los cırculos para senalar las neuronas, y las flechas, por su parte, parala union entre ellas. En este caso simple, cada neurona indica la total dependenciahacia las neuronas que estan a su izquierda, en funcion de las cuales se activaran ono.

Figura 4.2: Esquema basico de una neurona artificial.

Supongamos que, continuando sobre la base de la Figura 4.2, tenemos que anali-zar el siguiente caso, los datos de los pisos que han estado en venta en San Sebastiandurante los ultimos 50 anos:

Precio de venta

Numero de metros cuadrados (m2)

Antiguedad del piso en anos

Una variable dicotomica que indica si el piso ha sido vendido o no en dos meses

Supongamos que el objetivo consiste en la creacion de una red capaz de indicarcon las tres variables del comienzo si ha sido vendida o no en dos meses (se puedeconsiderar como un metodo de clasificacion analizado en el capıtulo 1).

El proceso de las redes neuronales cuenta con los siguientes pasos:

44 CAPITULO 4. REDES NEURONALES ARTIFICIALES

Pasar los datos iniciales X ∈ R1×3 (input layer: precio, m2 y numero de anos)a la siguiente capa (hidden layer 1) a traves de una multiplicacion matricial:

X ·M1 = H ′1 donde M1 ∈ R3×4 eta H ′1 ∈ R1×4

Una vez que consigamos el H ′1, se le aplicara una funcion de activacion1

para que los numeros de H ′1 se conviertan en 0 o 1 (para activar las neuronaso dejarlas desactivadas):

f(H ′1) = H1 donde H1 ∈ R1×4

Pasar el H1 del hidden layer 1 a la siguiente capa (hidden layer 2) a travesde una multiplicacion matricial:

H1 ·M2 = H ′2 donde M2 ∈ R4×4 y H ′2 ∈ R1×4

Una vez que consigamos el H ′2, se le aplicara una funcion de activacionpara que los numeros de H ′2 se conviertan en 0 o 1 (para activar las neuronaso dejarlas desactivadas):

g(H ′2) = H2 donde H2 ∈ R1×4

Pasar el H2 del hidden layer 2 a la siguiente capa (output layer) a travesde una multiplicacion matricial:

H2 ·M3 = y′ donde M3 ∈ R4×1 y y′ ∈ R

Por ultimo, una vez que obtengamos el y′, se le aplicara una funcion deactivacion, para que el numero y′ se convierta en 0 o 1 (el piso se ha vendidoen dos meses o no).

h(y′) = y donde y ∈ {0, 1}

4.3. Proceso de aprendizaje

En el proceso que acabamos de explicar, han aparecido las matrices M1, M2 yM3, si bien no se ha detallado de donde provienen sus valores. El objetivo principalde la red es precisamente lograr sus valores, debido a que, obteniendo los valoresadecuados de estas matrices, el resultado de salida sera o no satisfactorio. Tal y comohemos mencionado en la introduccion de esta seccion, el metodo o el algoritmo quese emplea para seleccionar de manera apropiada los valores de estas matrices Mi esel denominado backpropagation o propagacion hacia atras. En el, se recurre a lasderivadas para minimizar el error.

1Las funciones activacion mas usadas: funcion sigmoide, funcion arco-tangente y funcion ReLU. https://medium.com/the-theory-of-everything/

understanding-activation-functions-in-neural-networks-9491262884e0

4.4. VENTAJAS Y DESVENTAJAS 45

Aquı no explicaremos las matematicas y los detalles que existen tras el metodo,debido a que no se trata del objetivo de este cuaderno. En cualquier caso, el lectoro la lectora que tuviera interes sobre el tema, puede recurrir a practicamente cual-quier libro sobre las redes neuronales artificiales, entre los cuales destacan [13, 21].Ademas, Andrej Karpathy, director del departamento de Inteligencia Artificial deTesla, tiene un vıdeo sumamente interesante en Internet que explica el metodo dela propagacion hacia atras:

https://www.youtube.com/watch?v=59Hbtz7XgjM

Por tanto, el proceso de aprendizaje de las redes neuronales se realiza repitiendoreiteradamente el proceso recogido en la Figura 4.3. Por una parte, se introducenlos datos iniciales y se obtiene el resultado de salida con las matrices M1, M2 y M3.Si el resultado es correcto, no se modificaran los valores de las matrices Mi, y, si elresultado obtenido es incorrecto, se revisaran los valores de las matrices Mi mediantela propagacion hacia atras.

Figura 4.3: Esquema basico de una neurona artificial.

4.4. Ventajas y desventajas

Las redes neuronales artificiales han cobrado un gran protagonismo durante losultimos anos, ya que en todo momento aparecen nuevas aplicaciones, por lo que, demomento, no se han definido sus lımites. Son capaces de crear los modelos de clasifi-cacion y de regresion del aprendizaje supervisado, ası como de reducir la dimensionde los datos vistos en el aprendizaje no supervisado (el denominado autoencoder).Por otra parte, son capaces de realizar trabajos de gran complejidad para la ma-yorıa de los metodos, como la clasificacion de imagenes, la identificacion de sonidos,

46 CAPITULO 4. REDES NEURONALES ARTIFICIALES

traduccion, etc.Sin embargo, tienen tambien una serie de desventajas palpables. Por una parte,

se han desarrollado pocas teorıas sobre ellas, y la mayorıa de las aplicaciones y delos resultados se han producido a traves de diferentes pruebas. No existen teorıaspara seleccionar el numero de capas, ni para establecer el numero de neuronas,tan solo se pueden encontrar recomendaciones, debido a que en otros casos hanfuncionado. Por otra parte, se dice que los modelos obtenidos son cajas negras, yaque en muchos casos resulta imposible conocer los pormenores del modelo. Dichoen otras palabras, pese a que puede dar resultados satisfactorios, la mayorıa de lasveces desconoceremos como ha realizado las clasificaciones y las estimaciones.

Capıtulo 5

Los metodos Ensemble

El objetivo de los metodos Ensemble consiste en crear modelos muy diferentes,para que, a traves de su combinacion, se generen resultados mejores. En el caso delos arboles de decision, por ejemplo, se recurre muchas veces a estos metodos paramejorar los resultados. El algoritmo de los arboles de decision es, por lo general,sencillo y agil, y, aprovechando esta situacion, se crean muchos arboles diferentes.Ası, a traves de su combinacion, se obtienen resultados mejores y mas solidos1.

En general, estos metodos se dividen en dos familias:

Metodos de promedio (averaging methods) o metodos de bagging, donde secrean diferentes estimadores primero de manera independiente y luego se cal-cula su media. A la hora de calcular la media, el nuevo estimador logrado seraen general mejor, debido a que se reduce el sesgo.

Por su parte, en los metodos de boosting, los estimadores se generan de manerasecuencial, y procura mejorar el sesgo del nuevo estimador en cada uno de lospasos.

5.1. Metodos de bagging

Tal y como decıamos en la introduccion de este capıtulo, en este metodo, se creauna serie de modelos con los datos iniciales, y, a continuacion, se genera uno con sumedia, que presentara mejores propiedades. En las siguientes lıneas, detallaremoslas ideas principales del algoritmo:

En primer lugar, se seleccionan los valores n y M . El valor M representara elnumero de muestras que se crearan, mientras que n sera el numero de elementosque se tendra en cuenta para generar los modelos.

El proximo paso sera crear las muestras. Se crearan M muestras y, para cadauna de ellas, se seleccionaran n elementos de los datos iniciales. Estos elementos

1En Netflix Competition [7] por ejemplo, para hacer un algoritmo de filtrado colaborativo ro-busto se usaron los metodos Ensembe.

47

48 CAPITULO 5. LOS METODOS ENSEMBLE

seran seleccionados de manera aleatoria, y seran diferentes para cada una delas muestras.

Una vez que se han generado las muestras M , se creara un modelo para cadamuestra con el metodo que se quiera emplear (de regresion o de clasificacion).

Por ultimo, el modelo final sera la media de los modelos precedentes. En elcaso de la clasificacion, la clase de un punto, en lugar de ser la media, seraaquella que mas resultados positivos haya obtenido en los modelos generados.

No obstante, las muestras obtenidas a traves de este metodo presentaran a me-nudo correlacion entre ellas, y esto ejercera un impacto negativo en la calidad delmodelo final. Para eliminar o reducir dicha correlacion, se recurre al metodo dearboles aleatorios.

Arboles aleatorios

La variacion que tiene con respecto al algoritmo que hemos visto consiste en laseleccion de las variables. Si los datos iniciales cuentan con k variables, a la hora deseleccionar la muestra unicamente se seleccionaran de manera aleatoria d variablesde la muestra. Generalmente, se selecciona d ≈

√k. Esto reduce la correlacion entre

muestras, por lo que se obtienen mejores resultados.

Datos Muestra 2

Muestra 1

Muestra 3

Modelo 1

Modelo 2

Modelo 3

Modelo Pro.

Figura 5.1: Esquema del metodo de bagging: se seleccionan muestras de identico tamanode los datos iniciales, se generan los modelos de estas muestras, y, por ultimo, se calculauna muestra media de estos modelos.

5.2. Metodos de boosting

La base de este metodo persigue su mejora de manera secuencial, partiendo demodelos simples. Sirve exclusivamente para metodos de clasificacion. Esta mejorase consigue dando un mayor peso a los datos mal clasificados por el modelo. En las

5.2. METODOS DE BOOSTING 49

siguientes lıneas, se presentan las ideas principales del algoritmo AdaBoost (AdaptiveBoosting)2:

Al igual que con el bagging, se seleccionan en primer lugar los valores n y M .El valor M representara el numero de muestras que se crearan, mientras que nsera el numero de elementos que se tendra en cuenta para generar los modelos.

A continuacion, sale una muestra sencilla aleatoria tamano n. Este paso serealiza solo la primera vez, debido a que en los proximos pasos varios elemen-tos de esta muestra tendran una mayor probabilidad a la hora de obtener lamuestra, en funcion del peso que se les otorgue.

A esta muestra se le adjudicara un modelo con el metodo de clasificacion.

En este modelo, se contabilizaran los elementos mal clasificados, otorgandolesun mayor peso para que tengan una mayor probabilidad de aparecer en laproxima muestra.

Se obtiene otra muestra de tamano n con la nueva distribucion probabilıstica,y se realiza el mismo proceso anterior M veces.

Por ultimo, tras haber repetido el proceso M veces, a traves de la mediaponderada entre los modelos M obtenidos (recurriendo a los pesos obtenidosen el algoritmo), se lograra el modelo final deseado.

Este algoritmo es valido para cualquier metodo de clasificacion, y, comoapuntabamos, contribuye a la mejora de sus resultados y a la minimizacion delerror. Sin embargo, se aplica por lo general a metodos simples como los arboles dedecision, ya que presentan un coste computacional reducido.

2En el siguiente vıdeo se muestra el funcionamiento del algoritmo graficamente: https://www.coursera.org/learn/ml-classification/lecture/um0cX/example-of-adaboost-in-action

50 CAPITULO 5. LOS METODOS ENSEMBLE

Datos Muestra 1 Muestra 2 Muestra 3

Modelo 1

α1

Modelo 2

α2

Modelo 3

α3

Modelo Pro.

Figura 5.2: Esquema del metodo AdaBoost. Los valores αi corresponden al peso obtenidode los modelos, y serviran para crear la proxima muestra, ası como para el modelo final.

Parte II

Trabajando con datos

51

52

IntroduccionEn este apartado, se explicara el trabajo realizado sobre el clustering y los

resultados obtenidos, que ha sido el objetivo principal de esta beca. Para ello, se hanrecogido los precios diarios de los hoteles y pensiones de la CAE de la pagina webde una plataforma de oferta hotelera. Para la captacion de datos, se ha recurridoa diferentes metodos de web scraping, y, a medida que hemos ido conociendo laestructura del sitio web, la calidad de los datos tambien ha mejorado.

Para fijar los precios diarios, se han realizado un total de 120 consultas diariasen la web. El programa de web scraping recoge los precios para los siguientes 120dıas para cada hotel y pension de la CAE. A modo de ejemplo, el 1 de enerode 2018, el programa realizo la peticion de recabar los precios de todos los dıascomprendidos entre el 1 de enero y el 1 de mayo, para cada hotel y pension. Por talmotivo, en el mejor de los casos, cada establecimiento hotelero tendra un total de120 precios para cada uno de los dıas..

Esta situacion, no obstante, es practicamente imposible, dado que existennumerosos inconvenientes para ello. Por una parte, todos los alojamientos noofrecen la opcion de realizar reserva a traves de la web. Para este trabajo, porejemplo, la cobertura de los alojamientos ha sido aproximadamente del 75 %. Porotra parte, pueden suceder diferentes problemas en el programa que recoge losdatos (algun error imprevisto, cambios en la estructura de la web, alojamientolleno/cerrado...), ası como aquellos atribuibles a la propia pagina web.

Una vez realizadas estas 120 peticiones, viene el proceso para elegir el preciosignificativo para cada uno de los dıas. Este analisis se ha dejado como un trabajode investigacion de la UPV/EHU, y, mientras tanto, se decide considerar a efectosde este trabajo la mediana de todos los precios, debido a que constituye una medidacentral y que excluye los valores mas extranos.

Estos datos han sido fusionados con la Encuesta de establecimientos turısticosreceptores del Eustat, con el fin de obtener informacion adicional de hoteles ypensiones.

Tras estos pasos previos, se decide recurrir al lenguaje de programacionR [28] para trabajar con los datos. Los principales motivos para esta seleccionson varios: se trata de un lenguaje de programacion gratuito, ha adquiridouna gran fuerza en el mundo del aprendizaje automatizado durante los ultimosanos (junto con el lenguaje de programacion Python) y esta dirigido a la estadıstica.

El proceso de este trabajo se ha desglosado en tres partes relevantes:

Outliers en series temporales

53

Imputacion en series temporales

Clustering de series temporales

Por su parte, los paquetes principales de R empleados para representar los resul-tados han sido shiny [6], plotly [32] y leaflet [8].

Capıtulo 6

Outliers en series temporales

A la hora de realizar diferentes analisis, los resultados muestran una gran de-pendencia con respecto a los datos, como es logico. Por este motivo, si los datosse han recabado de manera defectuosa o muestran errores, tanto los resultados co-mo las conclusiones obtenidas a traves de los analisis pueden resultar de dudosafiabilidad. En este sentido, nuestro caso no es una excepcion; hemos testado dife-rentes metodos para detectar los valores extranos de nuestras series temporales ypara la deteccion de valores atıpicos (outliers), creando un algoritmo que se ajustaa nuestras necesidades.

En un primer momento, se probaron los paquetes tsoutliers [9]] youtliers [19], pero en seguida se percibio que no resultaban utiles para nuestrocaso (al menos no de manera directa). A traves de las funciones que ofrecen estospaquetes, se analizan las series de manera individual y, por tanto, detectan los preciosaltos para los dıas especiales como valores atıpicos. En el caso de los tsoutliers,por su parte, se pueden especificar los efectos del calendario (fines de semana, festi-vos, Semana Santa...); sin embargo, esto a veces no resulta suficiente, debido a quetambien existen eventos especiales.

Si analizamos la Figura 6.1, veremos que hay un valor extrano el dıa 11 denoviembre. En cuanto al calendario, fue un sabado y no hubo ningun puente especialen la CAE. Sin embargo, debido a que se produce un patron similar en la mayorıade hoteles y pensiones, buscamos si hubo algun acontecimiento especial en SanSebastian. En este caso, fue el dıa de la media maraton Behobia-San Sebastian.

Por tanto, se concluyo que resultaba necesario comparar nuestras series tempo-rales entre sı. La diferencia de ser una anomalıa o valor atıpico, es funcion de si serepite o no este valor extrano en los demas hoteles y pensiones.

6.1. Construyendo un algoritmo para la deteccion

de outliers

Como defendıamos al comienzo de este apartado, para la deteccion de los valoresatıpicos se considera necesario realizar la comparacion de diferentes pensiones y

54

6.1. CONSTRUYENDO UN ALGORITMO PARA LA DETECCION DE OUTLIERS55

Figura 6.1: Serie temporal de los precios de una pension de Donostia/San Sebastian.Podemos percibir una anomalıa el dıa 11 de noviembre, debido a que durante ese fin desemana se produjo la media maraton Behobia-San Sebastian.

hoteles. La idea principal consiste, en primer lugar, en detectar los valores extranosde las series temporales, tras lo cual se decidira si se trata de un valor atıpico o deuna anomalıa, a traves de la comparacion entre series temporales.

Para llevar a cabo este analisis, se dividira el proceso en cuatro partes.

Organizacion de las series temporales por meses

Se pretende depurar los datos que van llegando de manera automatica de cara alfuturo, por lo que se decide analizar los valores atıpicos de las series temporales concaracter mensual. Ademas, para su analisis no resulta util realizar la comparacion demeses diferentes, debido a que cada temporada del ano presenta tendencias dispares.

Eliminar los outliers mınimos

Una vez agrupados los datos por meses, el siguiente paso sera la eliminacion delos valores atıpicos mınimos. Para ello, se recurre a una idea muy simple: por meses,se pasara un test a los precios de cada hotel y pension, cuyo resultado ayudara enla decision de eliminar el valor. El test empleado para la deteccion se fundamentaen el metodo de Grubbs-en [14], que se encuentra en el paquete outliers. A travesde este metodo, se analizan los valores atıpicos por grupos y se elimina el factortemporal; es decir, no importa en que dıas se han producido estos precios.

En el caso de los valores atıpicos mınimos, no se proporciona ningun patron, adiferencia de lo que ocurre con los maximos; es decir, no se acumulan todos los preciosbajos en unos pocos dıas. Y es que los precios mas bajos son mas habituales que losaltos; dicho de otra manera, los precios muestran generalmente cierta estabilidad alo largo de todo el mes, y esta estabilidad se rompe habitualmente por motivo de

56 CAPITULO 6. OUTLIERS EN SERIES TEMPORALES

los precios maximos.Cabe mencionar que el test de Grubbs devuelve una serie de estadısticos, ası

como un valor p asociado a ellos. Uno de los trabajos consistira en definir este valorp, para poder definir un valor atıpico. Para ello, se han analizado de manera visuallos valores atıpicos mınimos para los primeros cinco meses, y nos hemos quedadocon el valor p que mejor los clasifica.

Por ultimo, se han eliminado los valores detectados por el algoritmo, y, despues,se ha adjudicado a cada pension y hotel su precio mınimo del mes durante estosdıas.

Cambiando de escala los precios

Finalizado el analisis de los mınimos, cabe realizar el relativo a los maximos.Como mencionabamos al comienzo del presente apartado, conviene realizar la com-paracion entre los establecimientos para realizar este trabajo. Para la comparacion,resulta muy importante la escala que se emplea, ya que no se puede comparar unhotel de lujo con un establecimiento de interior con una unica estrella, no al menosen cuanto al precio absoluto. Por ello, se ha realizado el siguiente cambio de escalaen los precios:

zi =xi

mın(x)· 100 (6.1)

donde

x: serie temporal de precios (por meses)

xi: precio del dıa i

zi: precio reescalado del dıa i

A traves de este cambio de escala, se pretende medir la subida mantenida porun hotel o pension a lo largo del mes. A modo de ejemplo, reescalaremos el siguientevector:

(70, 105, 70, 140, 210) −→ (100, 150, 100, 200, 300)

aquellos que tienen el valor 100 indican el precio mınimo, mientras que los demasvalores muestran el porcentaje de subida; es decir, el valor 200 indica que el preciose ha doblado (con respecto al precio mınimo) y un valor del 150 indicara, por suparte, que el valor ha sido multiplicado por 1,5 (70 · 1, 5 = 105). A traves de estecambio de escala, se ha logrado comparar las modificaciones de los precios.

Eliminar los outliers maximos

Una vez realizado el primer preprocesamiento de los datos, se haran dos analisispara detectar los valores atıpicos maximos: un analisis mensual y otro diario. Serealiza del mismo modo en que se hace el analisis de los mınimos, y se detectan los

6.1. CONSTRUYENDO UN ALGORITMO PARA LA DETECCION DE OUTLIERS57

valores atıpicos de cada establecimiento a traves del metodo Grubbs. En la Figura6.2, podemos ver un caso real. En el, se perciben cuatro puntos que se clasifican comovalores atıpicos, una vez realizado el test de Grubbs. Analizando el grafico, los dıas3, 4 y 25 de noviembre no parecen ser valores atıpicos, pero, en este caso especial,son clasificados como tales, debido a que el resto de los precios son constantes.

Figura 6.2: En el grafico, podemos apreciar los cuatro valores atıpicos, destacados en rojo,logrados a partir de la aplicacion del test de Grubbs a un hotel.

Tras este primer paso, el segundo consistira en analizar el precio diario, quetambien sera sometido al test de Grubbs, pero de manera diaria y comparandolo conlos demas hoteles y pensiones. Retomando el ejemplo del mes de noviembre, veremosque se realiza un total de 30 veces el test de Grubbs, a diario. Cada dıa, se consideranlos precios de los diferentes establecimientos hoteleros, (precios reescalados a travesde (6.1)), y el test se aplica sobre el mencionado grupo. En la Figura 6.3, podemosver los valores atıpicos obtenidos con los resultados de noviembre.

Cabe tener en cuenta que, a la hora de realizar el analisis diario, las pensiones ylos hoteles han sido agrupados en funcion del territorio historico. De esta manera,se evita comparar un valor extrano que se podrıa producir en Vitoria-Gasteiz el11 de noviembre con los valores extranos de Donostia, debido a que cada territoriohistorico y cada capital tiene sus propias tendencias.

Tras estos dos analisis o pasos, se toma la siguiente decision:

En caso de que un determinado valor se considere valor atıpico en los dosanalisis =⇒ OUTLIER

En caso contrario =⇒ NO ES OUTLIER

En el caso del ejemplo, no se considerara valor atıpico ni valor unico, debidoa que, como podemos observar, en muchos establecimientos se produjeron subidaspronunciadas el dıa 11 de noviembre, por lo que no se cumplen las dos condiciones.Al igual que en el caso de los mınimos, para definir el valor p para el test de Grubbs,se han identificado de manera visual los valores atıpicos para un total de 5 meses, y

58 CAPITULO 6. OUTLIERS EN SERIES TEMPORALES

Figura 6.3: Aparecen los valores atıpicos de cada dıa de noviembre, destacados con uncırculo rojo. En el grafico de la izquierda, vemos el 11 de noviembre, y los dos puntos quese han considerado como valores atıpicos tras haber realizado el test estan destacados conun cırculo rojo.

se ha seleccionado el valor que mejor los clasifica. A los valores atıpicos eliminadosse les atribuye el 3.o cuartil del precio mensual.

En el siguiente diagrama, se recogen a modo de resumen los pasos dados en elalgoritmo:

Datos Originales Datos Mensuales Outliers Mınimos

Datos ProcesadosOutliers Diarios

Outliers Mensuales

Outlier en Ambas?

Outlier Maximo

Grubbs

Reescalado

GrubbsSı

Grubbs

Capıtulo 7

Imputacion en series temporales

En las series temporales, debido a diferentes motivos, en ocasiones aparecen valo-res perdidos. Estos valores perdidos resultaran a veces mas interesantes, debido a queofrecen informacion adicional; sin embargo, en otros casos supondran un problema,y se querran recuperar.

En nuestro caso, los valores perdidos pueden tener un significado diferente, comopor ejemplo que el hotel permanece cerrado u ocupado, problemas o errores a la horade recopilar los datos... Podemos identificar con facilidad los casos en los que estacerrado, debido a que recibimos la informacion a traves de encuestas. En los casosen los que se encuentra ocupado, o en aquellos en los que ha habido problemas, unasolucion posible es la imputacion de datos.

En cuanto a la imputacion de series temporales, R-k [28] ofrece el paqueteimputeTS [26]. En el, aparecen varios metodos, que podremos escoger en funcionde las necesidades. En nuestro caso particular, los datos cuentan con una periodici-dad evidente; es decir, los precios siempre suben los viernes y los sabados. Para estoscasos en los que existe una periodicidad palpable, la documentacion de imputeTS

recomienda el uso de las siguientes funciones, ya que proporcionan los mejores re-sultados en la mayorıa de los casos: na.seasplit, na.seadec y na.kalman.

7.1. na.seasplit

Esta funcion cuenta con una serie de pasos en el proceso de imputacion. Hayque predecir a la funcion la periodicidad de las series temporales introducidas. Ennuestro caso, se produce una periodicidad semanal, por lo que el input de la funcionserıa la siguiente:

ts(x, frequency = 7)

donde x representa nuestros datos iniciales; es decir, los precios de un determinadohotel. En primer lugar, la funcion extraera 7 series temporales de la serie temporaloriginal, una por cada dıa de la semana (vease la Figura 7.1 a modo de ejemplo).

Una vez que hemos dividido nuestra serie temporal en siete series temporales,aplicaremos a cada una de ellas un metodo de imputacion (dentro del paquete

59

60 CAPITULO 7. IMPUTACION EN SERIES TEMPORALES

Figura 7.1: La primera imagen es un ejemplo de una serie temporal que tiene valoresperdidos. Los puntos naranjas muestran los lunes. En la imagen inferior, tan solo vemoslos datos de los lunes, en funcion de la semana del ano.

imputeTS existen varias opciones: mediante interpolacion, mediante ARIMA, me-diante el modelo estructural basico, mediante la media...).

7.2. na.seadec

En este metodo tambien existen varios pasos diferentes, y, para aprovechar susventajas, hay que especificarle la periodicidad. En nuestro caso:

ts(x, frequency = 7)

En primer lugar, la serie se imputa de manera simple recurriendo a la interpo-lacion lineal, con la funcion na.interpolation. Una vez completadas las faltas, seelimina la periodicidad de la serie a la serie temporal mediante la funcion stl1. Unavez lograda la periodicidad, se imputa lo que nos queda recurriendo al metodo de

1La funcion stl esta integrada en R. Descompone la serie temporal en: tendencia, parte esta-cional y resto.

7.3. NA.KALMAN 61

nuestra eleccion (dentro del paquete imputeTS, hay varias opciones: mediante inter-polacion, mediante ARIMA, modelo estructural basico, media...). Por ultimo, trasla imputacion, se anade la periodicidad a la serie.

Figura 7.2: En la imagen de la izquierda, aparece la serie temporal que se pretende imputar.En la derecha, por su parte, observamos la serie temporal tras la aplicacion de la funcionna.interpolation y tras la eliminacion de la periodicidad.

7.3. na.kalman

Esta funcion imputa los valores perdidos mediante modelizacion. Podemos in-troducirle diferentes modelos de la serie temporal en funcion de las necesidades. Encualquier caso, esta funcion incluye dos modelizaciones: auto.arima2 y StructTS3.El primero se encuentra definido dentro del paquete forecast [16], mientras que elsegundo se incluye en el lenguaje R.

Supongamos que, para simplificar las cosas, hemos obtenido el siguiente modelo:

yt = a · yt−1 + εt, εt ∼ N(0, σ)

es decir, cada uno de los puntos de nuestra serie temporal tan solo depende desu punto inmediatamente anterior. Ası las cosas, la funcion na.kalman dibuja estemodelo, recurriendo al filtro de Kalman4. Basicamente, a la hora de la seleccionde los valores yt por Kalman, es capaz de seleccionar el ruido εt adecuado.

2Para mas informacion acerca de los modelos ARIMA, seccion 3 de [31].3Para mas informacion acerca de Basic Structural Model (BSM) y modelos State-Space, seccion

6 de [31].4Para mas informacion acerca de los filtros de Kalman, seccion 6.2 de [31].

62 CAPITULO 7. IMPUTACION EN SERIES TEMPORALES

7.4. Seleccion de la funcion de imputacion

Una vez analizadas y comprendidas las funciones recomendadas por el documentode imputeTS, debemos seleccionar la que mas se ajuste a nuestras necesidades. Paraello, tomaremos todas nuestras series temporales completas –es decir, alrededor de150 series temporales a las cuales faltan 5 valores o menos entre agosto de 2017 adiciembre de 2017–, donde testaremos los metodos.

Para ello, retiraremos alrededor de 15-20 puntos de manera aleatoria, dando unmayor peso a los fines de semana (debido a que hay mas valores perdidos durantelos fines de semana, vease la Figura 7.3). A continuacion, se imputaran a traves dedistintos metodos. Para medir el error creado, se recurrira al error cuadratico medio.

Figura 7.3: Como podemos observar en esta imagen, los valores perdidos entre agosto de2017 a diciembre de 2017 se concentran durante los fines de semana.

Tras repetir el test un total de 20 veces, se logra la Figura 7.4. Se hace lo mismocon los precios mınimos logrados de la web5 (sabiendo que muestran una periodicidadmas notoria), cuyos resultados se muestran en la Figura 7.6.

A la vista de estos resultados, hemos optado por emplear el algoritmo kalman

dentro de la funcion na.seadec; es decir,

na.seadec(ts(x, frequency = 7), algorithm = "kalman")

5Hay que recordad que a la hora de calcular los precios diarios se han recogido precios de120 dıas diferentes, quedandonos con la mediana de esos precios para el analisis. A la hora deelegir el metodo de imputacion, se ha tenido en cuenta el mınimo de esos precios tambien, ya quepresentaban una mayor estacionalidad.

7.4. SELECCION DE LA FUNCION DE IMPUTACION 63

Figura 7.4: Error de imputacion creado con diferentes metodos, tras 20 test diferentes.Split=na.seasplit, Decomposed=na.seadec y Kalman=na.kalman. En la imagen infe-rior, vemos los metodos que menos errores generan.

Figura 7.5: Metodos con menos errores, tras la realizacion de 20 test diferentes.

64 CAPITULO 7. IMPUTACION EN SERIES TEMPORALES

Figura 7.6: Error obtenido en 20 test diferentes, empleando los precios mınimos.

Capıtulo 8

Clustering de series temporales

Una de los principales objetivos de esta beca es, precisamente, realizar el cluste-ring de las series temporales de los precios. Para ello, hemos recurrido a los siguientespaquetes de R [28]: TSdist [25] y TSclust [24]. En ambos paquetes, se muestrandiferentes distancias entre las series temporales, para seleccionar la que mejor seajusta a las necesidades del usuario, segun el caso. Para nuestro analisis, se primaque la subida y la bajada de precios se produzca en la misma fecha, ya que no sepretendıa comparar un hotel que en agosto presentaba precios altos con otro quelos presentaba en octubre; por tanto, se han eliminado distancias como DTW [12](Dynamic Time Warping) para el analisis.

Las distancias que se han probado han sido sobre todo las distancias Lp (Manhat-tan y euclidiana) y aquellas derivadas de las caracterısticas de las series temporales(distancias mediante correlacion/autocorrelacion, distancias mediante los coeficien-tes de Fourier, distancias basadas en los modelos ARMA/ARIMA...). Con la mayorıahemos alcanzado clustering similares, por lo que se ha decidido tomar la distanciamas sencilla de comprender: la distancia euclidiana.

8.1. Preparacion de los datos

En los paquetes TSdist y TSclust, hay que introducir las series temporalesde modo numerico (bien como matriz, como lista, como data.frame, como objetots...), por lo que hemos modificado nuestro data.frame inicial para poder realizarel trabajo. Para ello se ha recurrido a la funcion dcast del paquete reshape2 [34],a traves del cual, se han seleccionado 3 variables del data.frame inicial: NOMBRE,MEDIANA y FECHA. Una vez seleccionadas las tres variables, se ha creado un nuevodata.frame, donde las columnas representan la FECHA y los nombres de hoteles ypensiones.

Para su obtencion, se ha recurrido al siguiente codigo:

dcast(df[,c("FECHA","NOMBRE","MEDIAN")],FECHA∼NOMBRE ,value.var="MEDIAN")

Una vez lograda la tabla, el siguiente paso ha consistido en dar una solucion alos valores perdidos. Tal y como vemos en la Figura 8.1, a la hora de crear la tabla

65

66 CAPITULO 8. CLUSTERING DE SERIES TEMPORALES

Figura 8.1: Ejemplo del data.frame obtenido tras el uso de la funcion dcast.

se han obtenido los valores NA perdidos por diferentes motivos (por no haber podidoconseguir el precio de un determinado dıa, porque ha permanecido cerrado...). Estosupone un problema, debido a que las funciones de TSclust y TSdist requieren deseries temporales completas, es decir, sin valores perdidos.

En cuanto a los valores perdidos, se han tomado las siguientes medidas:

Los hoteles y las pensiones con un valor inferior a 150 (menos datos que losrelativos a 5 meses) se han eliminado del analisis.

A los dıas en los que han permanecido cerrados, se les ha atribuido el mismoprecio del ultimo dıa en que estuvieron abiertos, a traves de la funcion na.locf

(recurriendo al paquete imputeTS).

El resto de los valores perdidos se han imputado a traves de la funcionna.seadec que hemos visto en el apartado 7.4, mediante el algoritmo kalman.

Una vez imputados los valores perdidos, se han creado dos clustering diferentescon los paquetes TSclust y TSdist (con los precios absolutos y normalizados, res-pectivamente), ası como otro tipo de clustering para analizar la variabilidad de losprecios.

8.2. Clustering con los precios absolutos

En este primer clustering, los establecimientos hoteleros han sido agrupados me-diante precios absolutos. Se ha recurrido a la distancia euclidiana para agrupar lasseries, entre otros motivos porque resulta sencillo de entender y porque se han obteni-do los resultados deseados. Por su parte, se ha empleado el metodo pam (PartitioningAround Medoids1) para la clasificacion de las series, del paquete cluster [23], ba-sado en el metodo K-means del apartado 2.1. La principal diferencia con respecto

1En la seccion 2 de [18] se explican los detalles del algoritmo.

8.2. CLUSTERING CON LOS PRECIOS ABSOLUTOS 67

al metodo K-means consiste en que el centroide del cluster ha de ser uno de suselementos (medoide).

Por su parte, hemos empleado el metodo silhouette para seleccionar el numerode clusteres (mediante el algoritmo pam), segun lo basado en la idea del apartado2.1. El metodo Silhouette se emplea para medir la solidez de los clusteres, y el valorSilhouette del elemento i se define de la siguiente manera:

s(i) =b(i)− a(i)

max{a(i), b(i)}(8.1)

donde

a(i): distancia media que presenta el elemento i con respecto a los demaselementos (la misma distancia empleada para la agrupacion).

b(i): distancia media del elemento i con respecto a todos los elementos delcluster mas proximos (y que no pertenecen al mismo conjunto).

Por tanto, en el metodo Silhouette se calcula el valor s(i) de cada uno de loselementos, y, a continuacion, se obtiene la media de todos los valores. Con estosresultados se crea un grafico, como podemos ver en la Figura 8.2.

Figura 8.2: Grafico Silhouette obtenido a partir de los precios absolutos de clustering.

Una vez dibujado el grafico, una de las formas para seleccionar el numero declusteres resulta un punto que empieza a amortiguar el descenso; en este caso, en eltercer punto (notese que el grafico comienza a partir del numero 2, debido a que lafuncion pam no deja formar un solo grupo). Hay que tener en cuenta que el metodoSilhouette es un criterio, y no algo que obliga a tomar un numero concreto de grupos.En nuestro caso, en un primer momento las series temporales se dividieron en tresgrupos (en la Figura 8.3 aparecen los medoides de estos grupos), pero, como seobtuvo poca informacion, se probo con otros dos agrupamientos, que fueron los de7 y 10 cluster (ya que representaban puntos de descenso en el grafico).

68 CAPITULO 8. CLUSTERING DE SERIES TEMPORALES

Figura 8.3: Grafico de medoides obtenidos a partir de precios absolutos de clustering (alagruparse en tres grupos).

Una vez analizados estos dos ultimos clustering, se decidio agrupar nuestras se-ries temporales en un total de siete grupos, ya que se obtenıa informacion interesantede cada grupo y porque la division en diez grupos hacıa que algunos de ellos resul-taran muy similares (practicamente indistinguibles). Los medoides de los resultadosobtenidos se pueden ver en la Figura 8.4. En ella, como podemos percibir a simplevista, un grupo resulta muy diferente del otro (el creado con hoteles que presentanprecios muy altos). Este grupo esta formado por muy pocos hoteles, y, como cabepensar, son de lujo.

Figura 8.4: Grafico de los medoides de los clusteres obtenidos a partir de los preciosabsolutos (tras la division en siete grupos). Las lıneas continuas son los medoides, mientrasque las discontinuas indican su tendencia.

Dejando este particular cluster, analizaremos otros tres con mas detalles.

8.2. CLUSTERING CON LOS PRECIOS ABSOLUTOS 69

Cluster 5

En este grupo, encontramos los hoteles y las pensiones mas caras (dejando delado los hoteles de lujo incluidos en el cluster 7). La mayorıa son hoteles de 4 y5 estrellas, como era de esperar (mas del 25 % de los hoteles de 4 y 5 estrellas seencuentra en este grupo), y representa el segundo menor grupo, con un total de 22establecimientos. En cuanto al precio, oscilan los 300-180e. En la Figura 8.5 se venvarias de las caracterısticas de este grupo.

Figura 8.5: En el grafico de la izquierda, se muestra el medoide del cluster 5 y su tendencia,que oscila entre 200-170e. En la derecha, observamos los porcentajes de las categorıas delos establecimientos hoteleros.

Cluster 4

Estos hoteles y pensiones rondan los 130-60e en precios absolutos, y, gene-ralmente, muestran una gran variacion en sus precios, ya que las estaciones y lasdiferentes temporadas llegan a tener un gran impacto. Un total de 90 hoteles ypensiones se encuentran en este grupo (ofrecen mas del 20 % de las habitacioneshoteleras de la CAE2). La mayorıa de ellas esta en San Sebastian y su comarca. Songeneralmente pensiones, y el 40 % de las pensiones de dos estrellas se reunen en estegrupo, ası como mas del 25 % de las pensiones de una estrella, tal y como podemosobservar en la Figura 8.6. De este grafico podemos extraer otro dato interesante,y es que en el interior de Gipuzkoa y Bizkaia no hay establecimientos con estascaracterısticas.

Cluster 3

En precios absolutos, estos hoteles y pensiones rondan los 60-50e, son los maseconomicos y apenas modifican sus tarifas en funcion de la epoca del ano. Comoson los mas baratos, es comprensible que la mayorıa tengan menos de tres estrellas

2El porcentaje se ha calculado a partir del numero total de habitaciones que ofrecıan los 443establecimientos ofertados en la web.

70 CAPITULO 8. CLUSTERING DE SERIES TEMPORALES

Figura 8.6: En el grafico de la izquierda, se muestra la categorıa de los establecimientoshoteleros del cluster 4, mientras que en el de la derecha se muestra por estratos.

y que, en general, ofrezcan pocas habitaciones. Son por tanto, establecimientos detamano reducido: son un total de 104 hoteles y pensiones en este grupo, y ofrecenmenos del 15 % de las habitaciones. En la Rioja Alavesa y en San Sebastian apenashay establecimientos de estas caracterısticas, mientras que la mayorıa de los hotelesy pensiones de Alava (dejando de lado Vitoria-Gasteiz y la Rioja Alavesa), mas del60 %, se encuentran en este grupo, como podemos observar en la Figura 8.7.

Figura 8.7: En el grafico de la izquierda, se muestra la categorıa de los establecimientoshoteleros del cluster 3, mientras que en el de la derecha se muestra por estratos.

8.3. Clustering con precios normalizados

En este segundo clustering, los establecimientos hoteleros han sido agrupadosmediante precios normalizados. Se ha recurrido al metodo Min-Max ; es decir, losprecios de cada uno de los hoteles se han cambiado de escala, entre 0 y 100. Para ello,

8.3. CLUSTERING CON PRECIOS NORMALIZADOS 71

se ha empleado la siguiente formula de normalizacion para cada establecimiento:

zi =xi −mın(x)

max(x)−mın(x)· 100 (8.2)

x: Vector de precio del establecimiento

xi: Precio del dıa i del establecimiento

zi: Precio normalizado del establecimiento en el dıa i, que rondara los valores[0, 100]

Este cambio de escala se realiza para comparar todos los hoteles y pensionesde la misma manera; para que, a continuacion, se pueda analizar su tendencia yrealizar la clasificacion en funcion de ello. En la Figura 8.8 se presenta un ejemplorelativamente claro. Las dos pensiones muestran precios bastante diferentes, pero sutendencia es muy similar. En este caso, a la hora de realizar nuestra clasificacion,esperaremos que estas dos pensiones esten en el mismo grupo.

Figura 8.8: En este grafico, se muestran dos pensiones que oscilan en diferentes rangosde precios. Sin embargo, resulta evidente que ambas muestran una tendencia bastantesimilar.

Sin embargo, a la hora de comenzar a trabajar con los datos, podemos tener pro-blemas a la hora de aplicar la formula (8.2), ya que tenemos una indeterminacionpara los casos max(x) = mın(x). En este caso, hay que dar una salida a los esta-blecimientos que muestran precios constantes, y, en este caso, se les ha atribuido elvalor constante de 100 (se ha probado con un total de tres valores diferentes, 0, 50 y100, y los resultados mas satisfactorios se han obtenido con el valor 100). Ademas deello, se ha atribuido un valor de 100 a todos aquellos establecimientos que presentenuna variacion maxima inferior a 5e en su precio. En este sentido, se ha consideradoque el cambio de 5e resulta mınimo, y con la normalizacion Min-Max estos mismosestablecimientos presentas oscilaciones muy superiores.

72 CAPITULO 8. CLUSTERING DE SERIES TEMPORALES

Una vez normalizados los precios, hemos continuado con el mismo metodo declustering anterior, a traves de la distancia euclidiana. El grafico Silhouette obtenidose puede ver en la Figura 8.9. En este caso, vemos de manera mas clara y sencilla elpunto de corte, por lo que hemos creado un total de cuatro grupos (recordemos queel primero representa 2 cluster).

Figura 8.9: En este grafico, podemos ver los resultados obtenidos a traves del metodoSilhouette. En el, podemos observar que el valor Silhouette se reduce considerablementecon 3 y 4 clusteres, y que a partir de ahı la mejorıa es insignificante.

El resultado obtenido con estos cuatro clusteres se puede ver en la Figura 8.10,y se distinguen de manera relativamente sencilla. El grupo 4, como hemos definidoanteriormente, esta compuesto por hoteles y pensiones cuyos precios son constanteso practicamente constantes, siendo estos los ubicados en el interior del paıs y debaja categorıa. Los demas grupos, por su parte, varıan los precios en funcion dela estacion. Los que mas variaciones presentan se incluyen en el cluster primero,mientras que los que menos varıan se encuentran en el tercer cluster. En este ultimo,hay establecimientos que apenas registran cambios en la tendencia de los precios,pero, en comparacion con los del grupo 4, estos muestran cambios en sus precios, enlos dıas especiales del ano y/o durante los fines de semana.

Cluster 1

En este cluster encontramos los hoteles y las pensiones que mas cambios registranen la tendencia de los precios normalizados. Si analizamos la Figura 8.11, veremosque en este grupo tienen un gran peso las pensiones y los hoteles de 4 estrellas.Por otra parte, practicamente el 70 % de los hoteles de San Sebastian pertenecen aeste grupo. Asimismo, en este mismo grupo se encuentran casi el 50 % de los esta-blecimientos hoteleros de la costa guipuzcoana, del area metropolitana de Donostiay de Bilbao. Hay un total de 191 hoteles y pensiones de estas caracterısticas, yconstituyen alrededor del 45 % de todas las habitaciones ofertadas.

8.4. CLUSTERING CON VOLATILIDAD 73

Figura 8.10: Clustering obtenido con los precios normalizados. Las lıneas continuas repre-sentan los medoides del cluster, mientras que las lıneas discontinuas son la tendencia delmedoide.

Cluster 2

En este grupo, tienen una gran relevancia los hoteles de 3, 4 y sobre todo de5 estrellas. En cuanto a los estratos, el 45 % de los establecimientos de la costaguipuzcoana se incluye en este grupo, y, como podemos observar, la mayorıa de ellosse encuentra fuera de los centros urbanos. Este grupo esta formado por un total de130 establecimientos, los cuales suponen el 35 % de las habitaciones.

Cluster 3

Los hoteles mas habituales de este grupo son los de 1, 2 y 5 estrellas. Estosestablecimientos registran pocos altibajos en la evolucion de sus precios; es decir, laestacion no influye demasiado en los precios ofrecidos. Sin embargo, tambien cambianlos precios en funcion de los dıas, en algunos casos durante los dıas de la semana, y,en otros, en los dıas especiales (festivos, celebraciones especiales). En cuanto a losestratos, Alava (con la salvedad de la Rioja Alavesa) y el interior de Bizkaia ofrecensobre todo este tipo de hoteles/pensiones.

8.4. Clustering con volatilidad

El ultimo tipo de clustering realizado esta basado en la volatilidad, con el objetode medir los cambios que presentan los precios de un dıa para otro. El objetivoprincipal de este agrupamiento consiste en hacer una clasificacion de los hoteles yde las pensiones que modifican su precio de manera considerable, poco o nada enel corto plazo. Para ello, el estudio se ha basado en una medida que se emplea eneconomıa. Close-to-Close Volatility o Close/Close Volatility [1].

74 CAPITULO 8. CLUSTERING DE SERIES TEMPORALES

Figura 8.11: Clasificacion de los establecimientos hoteleros del cluster 1, por categorıas yestratos.

Figura 8.12: Clasificacion de los establecimientos hoteleros del cluster 2, por categorıas yestratos.

La idea principal de esta medida consiste en analizar la diferencia entre dıasconsecutivos a traves del logaritmo, y, a continuacion, calcular el desvıo estandar deestos valores. A modo de ejemplo, supongamos que tenemos el siguiente vector deprecios:

90, 90, 90, 90, 100, 105, 80, 90, 90, 90, 90, 100, 105, 80

En primer lugar, aplicaremos a estos valores el logaritmo (de manera que unestablecimiento de 80e y otro de 200e se moveran en escalas mas similares):

4,5, 4,5, 4,5, 4,5, 4,605, 4,654, 4,382, 4,5, 4,5, 4,5, 4,5, 4,605, 4,654, 4,382

a continuacion, se calcula la diferencia sucesiva (hay que tener en cuenta que sereducira la longitud del vector en una unidad):

8.4. CLUSTERING CON VOLATILIDAD 75

Figura 8.13: Clasificacion de los establecimientos hoteleros del cluster 3, por categorıas yestratos.

0, 0, 0, 0,105, 0,049,−0,272, 0,118, 0, 0, 0, 0,105, 0,049,−0,272

y, por ultimo, se calcula el desvıo estandar.Para este trabajo, se recurre a la misma idea, pero, al final, en lugar de calcular el

desvıo estandar, se ha obtenido la media de los valores absolutos, debido a que resultamas sencillo y suficiente para nuestro analisis. Por tanto, el valor de la volatilidadque hemos empleado para nuestro analisis se ha calculado de la siguiente manera:

mean(abs(diff(log(x)))

donde x representa un vector de precios. Una vez aplicado este proceso a todos losestablecimientos hoteleros, se han representado los valores, para ver si a simple vistase percibe algo o no. No obstante, la visualizacion del boxplot de la Figura 8.14 nopermite obtener conclusiones fundamentadas para el clustering, por lo que se hancreado los grupos mediante cuantiles. El numero de grupos experimentado ha sido3, 4 y 5, y finalmente se decide elegir el 4 (cuartiles).

En este caso, debido al modo de construccion, no se precisan de medoides pa-ra cada cluster, pero, con la intencion de mantener el mismo estilo de los graficosanteriores, se ha seleccionado un establecimiento de cada uno de los grupos comorepresentante de su conjunto (se han probado diferentes opciones, y hemos selec-cionado los que visualmente resultan mas apropiados). Los resultados se puedenobservar en la Figura 8.15 (ordenados de menor a mayor volatilidad).

A continuacion, se analizaran con mas detalles tres grupos, al igual que se hahecho en casos anteriores.

Cluster 1

Encontramos aquı los establecimientos que registran menor volatilidad; es decir,aquellos que raramente o nunca realizan cambios en sus precios. Como se puedeobservar en la Figura 8.16, la mayorıa son hoteles y pensiones con tres estrellas o

76 CAPITULO 8. CLUSTERING DE SERIES TEMPORALES

Figura 8.14: Boxplot de los valores obtenidos con la aplicacion del algoritmo close-to-closea los hoteles y pensiones.

Figura 8.15: Clustering en funcion de la volatilidad. Los clusteres estan organizados demenor a mayor volatilidad.

menos (mas del 40 % de los establecimientos de una estrella estan en este grupo), yestan ubicados sobre todo en el interior. En el interior de Gipuzkoa y en Alava (con laexcepcion de la Rioja Alavesa y Vitoria-Gasteiz) mas del 75 % de los establecimientospresentan una volatilidad muy reducida en sus precios. No obstante, este grupoofrece tan solo el 15 % de las habitaciones, lo cual indica que son establecimientosde tamano reducido.

Cluster 3

En este tercer grupo, figuran muy pocos hoteles y pensiones del interior, mientrasque se concentran muchos de Bilbao y de la Rioja Alavesa, mas del 40 % (tal ycomo se puede ver en la Figura 8.17). Por otra parte, se trata de hoteles de alta

8.4. CLUSTERING CON VOLATILIDAD 77

Figura 8.16: Clasificacion de los establecimientos hoteleros del cluster 1, por categorıas yestratos.

categorıa, de tres, cuatro y cinco estrellas; asimismo, todos los hoteles de cincoestrellas de Bilbao se encuentran en este grupo. Estos establecimientos muestranuna gran volatilidad en sus precios, pero no son los que mas los modifican.

Figura 8.17: Clasificacion de los establecimientos hoteleros del cluster 3, por categorıas yestratos.

Cluster 4

Son los que mayor volatilidad presentan. Si nos fijamos en la Figura 8.18, resultaevidente que la mayorıa son pensiones situadas en San Sebastian (mas del 60 %). Porotra parte, ofrecen tan solo el 16 % de las habitaciones, por lo que son de tamanoreducido.

78 CAPITULO 8. CLUSTERING DE SERIES TEMPORALES

Figura 8.18: Clasificacion de los establecimientos hoteleros del cluster 4, por categorıas yestratos.

Bibliografıa

[1] Bennett, C., and Gil, M. A. Measuring historical volatility.

[2] Bishop, C. M. Pattern Recognition and Machine Learning (Information Scien-ce and Statistics). Springer-Verlag New York, Inc., Secaucus, NJ, USA, 2006.

[3] Canavos, G. Probabilidad y Estadıstica. McGraw Hill, 1994.

[4] Cappe, O., Moulines, E., and Ryden, T. Inference in Hidden Markov Mo-dels (Springer Series in Statistics). Springer-Verlag New York, Inc., Secaucus,NJ, USA, 2005.

[5] Casella, G., and Berger, R. Statistical Inference. Duxbury ResourceCenter, June 2001.

[6] Chang, W., Cheng, J., Allaire, J., Xie, Y., and McPherson, J. shiny:Web Application Framework for R, 2017. R package version 1.0.5.

[7] Chen, E. Winning the Netflix Prize: A Summary. http://blog.echen.me/

2011/10/24/winning-the-netflix-prize-a-summary/.

[8] Cheng, J., Karambelkar, B., and Xie, Y. leaflet: Create Interactive WebMaps with the JavaScript ’Leaflet’ Library, 2018. R package version 2.0.0.

[9] de Lacalle, J. L. tsoutliers: Detection of Outliers in Time Series, 2017. Rpackage version 0.6-6.

[10] Devore, J. L. Probability and Statistics for Engineering and the Sciences,8th ed. Brooks/Cole, January 2011. ISBN-13: 978-0-538-73352-6.

[11] Garey, M. R., and Johnson, D. S. Computers and Intractability; A Guideto the Theory of NP-Completeness. W. H. Freeman & Co., New York, NY,USA, 1990.

[12] Giorgino, T. Computing and visualizing dynamic time warping alignmentsin R: The dtw package. Journal of Statistical Software 31, 7 (2009), 1–24.

[13] Goodfellow, I., Bengio, Y., and Courville, A. Deep Learning. MITPress, 2016. http://www.deeplearningbook.org.

79

80 BIBLIOGRAFIA

[14] Grubbs, F. E. Sample criteria for testing outlying observations. Ann. Math.Statist. 21, 1 (03 1950), 27–58.

[15] Hastie, T., Tibshirani, R., and Friedman, J. The Elements of StatisticalLearning. Springer Series in Statistics. Springer New York Inc., New York, NY,USA, 2001.

[16] Hyndman, R. J. forecast: Forecasting functions for time series and linearmodels, 2017. R package version 8.2.

[17] James, G., Witten, D., Hastie, T., and Tibshirani, R. An Introductionto Statistical Learning: With Applications in R. Springer Publishing Company,Incorporated, 2014.

[18] Kaufman, L., and Rousseeuw, P. Finding Groups in Data: an introductionto cluster analysis. Wiley, 1990.

[19] Komsta, L. outliers: Tests for outliers, 2011. R package version 0.14.

[20] Koren, Y., Bell, R., and Volinsky, C. Matrix factorization techniquesfor recommender systems. Computer 42, 8 (Aug 2009), 30–37.

[21] Kriesel, D. A Brief Introduction to Neural Networks. 2007.

[22] Levin, D. A., Peres, Y., and Wilmer, E. L. Markov chains and mixingtimes. American Mathematical Society, 2006.

[23] Maechler, M., Rousseeuw, P., Struyf, A., Hubert, M., and Hornik,K. cluster: Cluster Analysis Basics and Extensions, 2018. R package version2.0.7-1 — For new features, see the ’Changelog’ file (in the package source).

[24] Montero, P., and Vilar, J. A. TSclust: An R package for time seriesclustering. Journal of Statistical Software 62, 1 (2014), 1–43.

[25] Mori, U., Mendiburu, A., and Lozano, J. A. Distance measures for timeseries in r: The TSdist package. R journal 8, 2 (2016), 451–459.

[26] Moritz, S. imputeTS: Time Series Missing Value Imputation, 2017. R packageversion 2.5.

[27] Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion,B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg,V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher, M., Pe-rrot, M., and Duchesnay, E. Scikit-learn: Machine learning in Python.Journal of Machine Learning Research 12 (2011), 2825–2830.

[28] R Core Team. R: A Language and Environment for Statistical Computing.R Foundation for Statistical Computing, Vienna, Austria, 2017.

BIBLIOGRAFIA 81

[29] Rabiner, L. R. Readings in speech recognition. Morgan Kaufmann PublishersInc., San Francisco, CA, USA, 1990, ch. A Tutorial on Hidden Markov Modelsand Selected Applications in Speech Recognition, pp. 267–296.

[30] Ricci, F., Rokach, L., Shapira, B., and Kantor, P. B. Recommendersystems handbook. Springer, New York; London, 2011.

[31] Shumway, R., and Stoffer, D. Time Series Analysis and Its Applications:With R Examples. Springer Texts in Statistics. Springer International Publis-hing, 2017.

[32] Sievert, C., Parmer, C., Hocking, T., Chamberlain, S., Ram, K.,Corvellec, M., and Despouy, P. plotly: Create Interactive Web Graphicsvia ’plotly.js’, 2017. R package version 4.7.1.

[33] Strang, G. Linear algebra and its applications. Thomson, Brooks/Cole,Belmont, CA, 2006.

[34] Wickham, H. Reshaping data with the reshape package. Journal of StatisticalSoftware 21, 12 (2007), 1–20.