Full text
João Rodolfo Cardoso Alves End-User Analytics: Comportamento de Máquinas e seus Utilizadores Novembro de 2020 UMinho | 2020 João Rodolfo Cardoso Alves Universidade do Minho Escola de Ciências
João Rodolfo Cardoso Alves End-User Analytics: Comportamento de Máquinas e seus Utilizadores Dissertação de Mestrado em Matemática e Computação Trabalho efetuado sob a orientação da Professora Doutora Ana Paula Costa Conceição Amorim Universidade do Minho Escola de Ciências Novembro de 2020
Direitos de Autor e Condi¸c˜oes de Utiliza¸c˜ao do Trabalho Por Terceiros Este ´e um trabalho acad´emico que pode ser utilizado por terceiros desde que respeitadas as regras e boas pr´aticas internacionalmente aceites, no que concerne aos direitos de autor e direitos conexos. Assim, o presente trabalho pode ser utilizado nos termos previstos na licen¸ca abaixo indicada. Caso o utilizador necessite de permiss˜ao para poder fazer um uso do trabalho em condi¸c˜oes n˜ao previstas no licenciamento indicado, dever´a contactar o autor, atrav´es do Reposit´oriUM da Universidade do Minho. Atribui¸c˜ao-N˜aoComercial-CompartilhaIgual CC BY-NC-SA https://creativecommons.org/licenses/by-nc-sa/4.0/ ii
Agradecimentos Em primeiro lugar, gostaria de expressar a minha gratid˜ao em especial `a minha orientadora, a Professora Doutora Ana Paula Amorim, por ter aceitado supervisionar o meu trabalho, al´em de, gentilmente, sempre se ter mostrado dispon´ıvel para me ir ajudando no processo da elabora¸c˜ao desta disserta¸c˜ao, com as dificuldades acrescidas desta situa¸c˜ao de pandemia. Al´em disso, queria agradecer `a Fujitsu, n˜ao s´o pela oportunidade, mas tamb´em pela persistˆencia com que me ajudaram, principalmente, com a quest˜ao dos dados. Um agradecimento especial ao meu tutor na empresa Jos´e Jo˜ao e tamb´em ao Pedro, por me terem acompanhado no processo de obten¸c˜ao dos dados e na contribui¸c˜ao para a sua an´alise, mesmo sabendo que andavam atarefados com outros assuntos da empresa, n˜ao podendo esquecer tamb´em a Ana Margarida. Queria agradecer tamb´em aos meus colegas de grupo, a Cec´ılia e o Fernando, que me acompanharam no decorrer do mestrado e que se tornaram, sem d´uvida, dois bons amigos. Em especial `a Cec´ılia, por me ter ajudado nas formata¸c˜oes da disserta¸c˜ao. Um agradecimento `a minha Tia L´o, por me ter dado umas dicas na escrita da disserta¸c˜ao em bom portuguˆes. Finalmente, queria expressar o meu profundo agradecimento `a minha m˜ae, pelos sacr´ıficios que teve que fazer no decorrer da minha forma¸c˜ao, especialmente durante este Mestrado. Um agradecimento extra a todas as outras pessoas que estiveram envolvidas no meu percurso e que n˜ao poderei colocar explicitamente nesta sec¸c˜ao. iii
iv
Declara¸c˜ao de Integridade Declaro ter atuado com integridade na elabora¸c˜ao do presente trabalho acad´emico e confirmo que n˜ao recorri `a pr´atica de pl´agio nem a qualquer forma de utiliza¸c˜ao indevida ou falsifica¸c˜ao de informa¸c˜oes ou resultados em nenhuma das etapas conducente `a sua elabora¸c˜ao. Mais declaro que conhe¸co e que respeitei o C´odigo de Conduta ´ Etica da Universidade do Minho. v
vi
Resumo End-User Analytics centra-se na an´alise dos dados do comportamento dos utilizadores e da intera¸c˜ao com as respetivas m´aquinas. A Fujitsu tem vindo a investir bastante em End-User Analytics com o objetivo de ajudar as empresas a transitar para solu¸c˜oes mais digitais, atrav´es da an´alise de dados do comportamento operacional obtidos nas m´aquinas dos seus clientes. Para tal, a Fujitsu disponibiliza numa ´unica plataforma a recolha de dados de v´arias fontes em tempo-real, incluindo dados sobre licen¸cas, sobre os utilizadores e as aplica¸c˜oes envolvidas. Este software consegue detetar erros e paragens de aplica¸c˜oes, distinguir problemas de utilizadores ´unicos de problemas mais globais, assim como identificar comportamentos ou aplica¸c˜oes de risco. Os pontos descritos anteriormente, em conjunto com o potencial atual de recolha de enormes quantidades de dados atrav´es das m´aquinas das empresas, impulsionaram a Fujitsu a expandir o tema de End-User Analytics a outras ´areas, utilizando abordagens e m´etodos mais automatizados como, por exemplo, a utiliza¸c˜ao de t´ecnicas de Machine Learning. Nesta disserta¸c˜ao, foram exploradas abordagens anal´ıticas de forma a encontrar padr˜oes que potenciem a experiˆencia dos utilizadores e respetivas m´aquinas, juntamente com as m´etricas associadas aos dados, incluindo m´etricas que permitam avaliar o desempenho dessa experiˆencia. A an´alise tamb´em incidiu sobre um conjunto de dados exemplo proveniente da plataforma da empresa Nexthink. Estes dados n˜ao permitiram uma an´alise direta da experiˆencia dos utilizadores mas, mesmo assim, foi explorada uma abordagem indireta. Os resultados obtidos n˜ao permitiram uma boa an´alise preditiva dos eventos associados `as m´aquinas. No entanto, foi realizada uma abordagem de monitoriza¸c˜ao com base nos dados, que sugere conjuntos de m´aquinas (ou outros atributos destas) no qual a empresa em quest˜ao se deve focar de forma a isolar a maioria problemas encontrados. Esta abordagem deu ainda origem a uma aplica¸c˜ao de monitoriza¸c˜ao. vii
4.14 Tabela com a Entropia Modificada (Hm(4.4)) ordenada crescente para os diversos atributos de cada objeto para erros de device........ 89 4.15 Tabela com a Entropia Modificada (Hm(4.4)) ordenada crescente para os diversos atributos de cada objeto para warnings de device. . . . . . 90 4.16 Tabela dos Erros de device por Sistema Operativo para os objetos device. ................................... 90 4.17 Tabela com a Entropia Modificada ordenada crescente para os diversos atributos de cada objeto para erros de execution. ......... 91 4.18 Tabela com a Entropia Modificada ordenada crescente para os diversos atributos de cada objeto para warnings de execution. ....... 92 4.19 Tabela dos Erros de execution por Department para os Users. . . . . 92 4.20 Tabela dos Erros de execution por Department para os Users, com γ de1.7. ................................... 93 xiv
Lista de Abrevia¸c˜oes ICT Information and Communications Technology UX User-Experience GUI Graphical User Interface SLAs Service Level Agreements IT Information Technology E.U.A Estados Unidos da Am´erica KWh Kilowatt-hour CPU Central Processing Unit CDs Centros de Dados HTML HyperText Markup Language IP Internet Protocol URL Uniform Resource Locator CPC cost per click ID3 Iterative Dichotomiser 3 CART Classification and Regression Tree NXQL Nexthink Query Language SQL Structure Query Language API Application Programming Interface SMART Self-Monitoring, Analysis and Reporting Technology PCA Principal Component Analysis xv
xvi
Conte´udo Agradecimentos................................. iii Resumo ..................................... vii Abstract ..................................... ix ListadeFiguras................................. xii ListadeTabelas ................................xiv ListadeAbrevia¸c˜oes .............................. xv 1 Introdu¸c˜ao e Estrutura da Tese 19 1.1 Introdu¸c˜ao................................. 20 1.1.1 Contextualiza¸c˜ao da Disserta¸c˜ao . . . . . . . . . . . . . . . . . 20 1.1.2 Defini¸c˜ao de End-User Analytics ................ 21 1.1.3 Estado Atual da Fujistu em End-User Analytics ........ 22 1.1.4 Objetivo da Disserta¸c˜ao . . . . . . . . . . . . . . . . . . . . . 22 1.2 EstruturadaTese............................. 24 2 Estado de Arte 25 2.1 Otimiza¸c˜ao Energ´etica . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.1.1 Centros de Dados . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.1.2 Otimiza¸c˜ao da Rede . . . . . . . . . . . . . . . . . . . . . . . 27 2.1.3 Otimiza¸c˜ao da Planta do Armaz´em . . . . . . . . . . . . . . . 27 2.1.4 Gest˜ao do Agendamento . . . . . . . . . . . . . . . . . . . . . 28 2.1.5 An´alise aplicada `a Otimiza¸c˜ao de CDs . . . . . . . . . . . . . 29 2.2 Web-Analytics ............................... 32 2.2.1 Adquisi¸c˜ao de Informa¸c˜ao sobre o Website ........... 32 2.2.2 M´etricas e Atributos . . . . . . . . . . . . . . . . . . . . . . . 34 2.2.3 Objetivos ............................. 36 2.2.4 Web-Analytics aplicado aos utilizadores . . . . . . . . . . . . . 37 2.3 Algoritmos................................. 42 xvii
2.3.1 ´ ArvoresdeDecis˜ao ........................ 42 2.3.2 Random Forest .......................... 47 2.3.3 Gradient Boosting ........................ 48 2.3.4 An´alise de Clustering ....................... 49 3 Descri¸c˜ao de Dados 55 3.1 Nexthink .................................. 56 3.2 Dados Utilizados na An´alise . . . . . . . . . . . . . . . . . . . . . . . 56 3.3 Conex˜ao do Estado de Arte com os Dados . . . . . . . . . . . . . . . 62 3.3.1 Otimiza¸c˜ao energ´etica . . . . . . . . . . . . . . . . . . . . . . 62 3.3.2 Web-Analytics ........................... 62 4 An´alise de Dados e Resultados 65 4.1 Estat´ıstica Descritiva . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.2 Visualiza¸c˜ao dos Dados . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.2.1 Eventos de Device ........................ 71 4.2.2 Eventos de Execution ....................... 74 4.2.3 Erros vs Warnings ........................ 78 4.3 An´alise de Clustering ........................... 80 4.4 Regress˜ao de Random Forest eGradient Boost ............. 83 4.5 EntropiaModificada ........................... 86 4.5.1 Introdu¸c˜ao............................. 86 4.5.2 Entropia Modificada . . . . . . . . . . . . . . . . . . . . . . . 87 4.5.3 Aplica¸c˜ao GUI de Monitoriza¸c˜ao . . . . . . . . . . . . . . . . 94 5 Conclus˜oes e Trabalho Futuro 101 xviii
Cap´ıtulo 1 Introdu¸c˜ao e Estrutura da Tese 19
1.1 Introdu¸c˜ao 1.1.1 Contextualiza¸c˜ao da Disserta¸c˜ao Esta disserta¸c˜ao integra-se na unidade curricular de Disserta¸c˜ao do curso de Mestrado em Matem´atica e Computa¸c˜ao da Universidade do Minho. ´ E realizado em conjunto com o Centro de Competˆencias da empresa Fujitsu (Figura 1.1 mostra o log´otipo da empresa) de Braga, com o tema “End-User Analytics: Comportamento de M´aquinas e seus Utilizadores”. Figura 1.1: Log´otipo da empresa Fujitsu. O que ´e a Fujitsu? AFujitsu ´e a empresa l´ıder japonesa em tecnologia de informa¸c˜ao e comunica¸c˜ao (ICT) e a 7ªno mundo em termos de fornecimento destes servi¸cos. Est´a entre os 10 primeiros fornecedores de servidores a n´ıvel mundial e oferece uma vasta gama de produtos, servi¸cos e solu¸c˜oes tecnol´ogicas. Nestas incluem-se Client Computing Devices, Peripherical devices, Integrated Systems, Servers, Data Storage, Infrastructure Management e Security [1] [2]. Empregando cerca de 132 mil colaboradores em mais de 100 pa´ıses, a Fujitsu apresentou uma receita consolidada de cerca de 36 mil milh˜oes de d´olares no ano fiscal de 2019. Fujitsu em Portugal Em Portugal, a Fujitsu ´e o maior empregador japonˆes que conta com mais de 1900 colaboradores. Com sede em Lisboa e opera¸c˜oes no Porto e em Braga, apresenta como principais setores de atividade no pa´ıs os de Administra¸c˜ao P´ublica, onde assegura a Gest˜ao Documental em 80% dos Minist´erios e o balc˜ao de atendimento responde a mais de 10 milh˜oes de chamadas por ano; Retalho, apresentando-se como l´ıderes, sendo respons´aveis por mais de 400 milh˜oes de transa¸c˜oes por ano em mais de 500 supermercados e hipermercados; na Banca, marcando presen¸ca em mais de 1700 balc˜oes, prestando suporte t´ecnico a 20 mil utilizadores; e nos Transportes, onde, 20
atrav´es de sistemas de bilheteira inteligente, emitem mais de 20 milh˜oes de bilhetes por ano e representam 250 mil horas de voo por ano [3]. Encontra-se atualmente em expans˜ao, sendo que a sede em Lisboa foi inaugurada em 2008, o centro de opera¸c˜oes em Braga em 2016 e foi anunciada a assinatura de um protocolo em 2019 para a instala¸c˜ao em Viseu [4] [5]. Fujitsu em Braga O centro da Fujitsu em Braga, localizado no P´olo de Neg´ocios de Braga e inaugurado em 2016, ´e uma extens˜ao do Global Delivery Center de Lisboa e fornece atualmente suporte t´ecnico a milhares de utilizadores da empresa [6]. 1.1.2 Defini¸c˜ao de End-User Analytics End-User Analytics refere-se `a an´alise de dados, dados estes recolhidos de dispositivos dos utilizadores ou de sensores que recolhem m´etricas geradas pelo comportamento desses utilizadores, fazendo uso de m´etodos computacionais de forma a obter conhecimento sobre padr˜oes do decorrer dos processos, para assim fornecer uma visualiza¸c˜ao mais simplificada ou certas indica¸c˜oes por forma a melhorar estas intera¸c˜oes entre utilizador e o ambiente que o rodeia. Seguindo as pr´oprias defini¸c˜oes de End-User e de Analytics, fornecidas pelo dicion´ario de Cambridge [7] [8]: End-User: ”the person or organization that uses a product or service.” Analytics: ”a process in which a computer examines information using mathematical methods in order to find useful patterns.” Partindo das defini¸c˜oes anteriores, podemos definir ent˜ao End-User Analytics como O processo segundo o qual se analisa computacionalmente informa¸c˜ao usando m´etodos matem´aticos, de forma a encontrar padr˜oes ´uteis acerca de determinado utilizador de um certo produto ou servi¸co. 21
No caso espec´ıfico da Fujitsu, esta abordagem ´e aplicada ao ambiente laboral e tecnol´ogico de uma determinada empresa, num ambiente de consultoria. 1.1.3 Estado Atual da Fujistu em End-User Analytics Atualmente, a Fujitsu utiliza a abordagem de End-User Analytics, por exemplo, na monitoriza¸c˜ao de licenciamentos de software pelos utilizadores (License Management), para que deste modo, haja um acompanhamento sobre as licen¸cas que est˜ao no fim de prazo e necessitem, ou n˜ao, de ser renovadas [9]. Outros exemplos de ´areas onde tamb´em aplicam esta abordagem incluem-se Power Management,Application issues,Build version issues,OS issues,Network issues - connection/destination analysis,Hardware fail prevention, entre outros. 1.1.4 Objetivo da Disserta¸c˜ao O objetivo desta disserta¸c˜ao ´e explorar de que forma a experiˆencia dos utilizadores (User-Experience) poder´a ser melhorada no contexto de End-User Analytics desenvolvida pela Fujitsu. Desta forma, esta disserta¸c˜ao tem uma forte componente explorat´oria que pretende criar valor no campo da User-Experience, atrav´es da identifica¸c˜ao de padr˜oes, no caso hipot´etico em que um conjunto enorme de dados sobre as rotinas, dispositivos e eventos dos elementos pertencentes a uma determinada empresa tecnol´ogica esteja dispon´ıvel. Far´a parte do objetivo, portanto, a descoberta cient´ıfica e empresarial de m´etricas importantes a levar a cabo na recolha dos dados das diferentes abordagens existentes na literatura para a an´alise de dados propriamente dita, dos objetivos espec´ıficos que podem ser conseguidos com esta abordagem e da defini¸c˜ao de m´etricas alvo que permitam medir os objetivos definidos, no ˆambito de User-Experience. Al´em disso, ter´a tamb´em como objetivo aplicar algumas das m´etricas, abordagens e m´etodos que provˆem da explora¸c˜ao cient´ıfica a um conjunto de dados exemplo, tendo em conta o objetivo final de melhorar a experiˆencia dos utilizadores. Tipicamente, profissionais de User-Experience (UX ) querem entender o comportamento dos utilizadores e, principalmente, o porquˆe de os terem. A an´alise de dados permitir´a revelar o que esses mesmos utilizadores fazem (”what?”) e como o 22
fazem (”how?”) e testar teorias do porquˆe de o fazerem, j´a que os dados em si n˜ao permitem inferir diretamente respostas para as perguntas do tipo ”porquˆe?”. 23
Basicamente, a abordagem faz uso de algoritmos de preenchimento das tarefas nos n´odos de processamento. Nestes algoritmos, incluem-se um algoritmo Random, sendo as tarefas atribu´ıdas aleatoriamente, levando em conta se o n´odo cabe na m´aquina; Round Robin, que consiste em atribuir as tarefas aos n´odos existentes, maximizando assim os recursos para a tarefa em causa, mas fazendo um uso desadequado dos recursos; Backfilling, que tenta preencher o maior n´umero poss´ıvel de tarefas numa m´aquina at´e a preencher; e Dynamic Backfilling que permite mover tarefas de modo a otimizar o preenchimento e assim obter uma maior consolida¸c˜ao. Devido ao facto deste ´ultimo algoritmo ter um elevado custo computacional, os autores apontam o uso de Reinforcement learning no futuro, como forma de modelar este processo. Dynamic Backfiling apresenta um bom desempenho quando s˜ao conhecidos os recursos necess´arios para cada tarefa com precis˜ao. Este n˜ao ´e sempre o caso, seja por n˜ao ser conhecido ou pela informa¸c˜ao fornecida n˜ao ser a mais precisa. Deste modo, surge a necessidade de prever que recursos ser˜ao necess´arios na execu¸c˜ao das tarefas requeridas. ´ E aqui que surge ent˜ao a necessidade de aplicar m´etodos de Machine Learning e integrar no algoritmo de Dynamic Backfiling. Neste artigo foi utilizada a regress˜ao linear para prever o uso de CPU [30], e o algoritmo M5P (tree based) na previs˜ao do gasto de energ´etico, j´a que esta se apresenta como mais complexa e com uma rela¸c˜ao bastante n˜ao linear em rela¸c˜ao ao uso de CPU. O correspondente SLA usado nesta abordagem foi o limite de tempo. Este verifica se a tarefa foi concretizada dentro do tempo indicado pelo SLA. Daqui foi ent˜ao poss´ıvel concluir que o algoritmo Dynamic Backfiling incorporado com Machine Learning deu piores resultados no enquadramento do SLA quando a utiliza¸c˜ao de CPU era elevada. ´ E dado como justifica¸c˜ao o facto deste algoritmo n˜ao ter acesso pr´evio `a informa¸c˜ao fornecida pelo utilizador sobre o gasto de CPU previsto, pondo-o ent˜ao numa posi¸c˜ao de desvantagem em rela¸c˜ao ao Dynamic Backfiling simples. No entanto, demonstrou resultados significativamente melhores quando comparado com o Random e o Backfiling [10]. Num artigo posterior, os mesmos autores numa outra abordagem, fazem uso do mesmo m´etodo aplicado a um contexto ligeiramente diferente. Desta vez, incluem dados sobre a infraestrutura do Centro de Dados. Foram capazes de mostrar que tamb´em neste projeto conseguiram integrar m´etodos de Machine Learning de forma a melhorar os resultados obtidos e demons30
trar que ´e poss´ıvel obter uma poupan¸ca energ´etica consider´avel, fazendo uso de m´etodos anal´ıticos num contexto de aloca¸c˜ao de tarefas e consequente consolida¸c˜ao, permitindo assim desligar servidores inativos de forma mais eficiente [31]. Num terceiro cen´ario, os mesmos autores utilizaram uma abordagem similar `a descrita anteriormente, mas desta vez a uma composi¸c˜ao de v´arios Centros de Dados, ou seja, Multi-Centro de Dados. Desta vez, incluiram informa¸c˜ao sobre a localiza¸c˜ao do Centro de Dados, bem como os pre¸cos da energia nos respetivos locais, de modo a aplicar uma otimiza¸c˜ao mais global. Segundo os autores, mais uma vez, o uso de m´etodos anal´ıticos, onde se incluem a integra¸c˜ao de algoritmos de Machine Learning, permitiu trazer ganhos energ´eticos para a rede de Centros de Dados [32]. 31
2.2 Web-Analytics A internet ´e uma fonte enorme de dados relativos `a intera¸c˜ao de uma grande quantidade de utilizadores com p´aginas web.Web-Analytics surge como uma forma de retirar conhecimento sobre como os utilizadores interagem com determinados websites e aplica¸c˜oes m´oveis, atrav´es da recolha autom´atica de aspetos do comportamento desses mesmos utilizadores nos websites, e tratar e transformar esse comportamento em dados que possam ser analisados. A informa¸c˜ao mais fundamental e ´util em Web-Analytics refere-se ao conjunto de p´aginas que o utilizador percorre e `a sua ordem. Neste sentido, faz-se uso desta abordagem para obter conhecimento acerca de utilizadores e das suas intera¸c˜oes com os websites, e assim colocar em pr´atica uma s´erie de padr˜oes de design destes, por forma a potencializar tanto a satisfa¸c˜ao dos utilizadores, como a sua produtividade [33] [34]. A maioria das ferramentas de Web-Analytics s˜ao aplicadas no ramo de marketing online, em que as diversas marcas das empresas s˜ao introduzidas ao consumidor, na tentativa de os seduzir a comprarem os seus produtos. Neste ramo, Web-Analytics permite efetivamente medir a efic´acia das estrat´egias utilizadas, fazendo uso de um determinado conjunto de m´etricas bem definidas e estabelecidas. M´etricas como o n´umero de pessoas que chegam ao website ou que realmente compram algum produto, permitem comparar o tempo e dinheiro gasto a adquirir tais vendas. No entanto, os profissionais de Web-Analytics, fazendo uso das ferramentas e c´odigo certos, conseguem ter ao seu dispor dados bastante mais diversos acerca de como os utilizadores navegam no website em quest˜ao. Dados como a forma como os utilizadores chegaram ao website, se pela utiliza¸c˜ao de um search engine ou atrav´es de um link de um outro website ou at´e dados mais t´ecnicos sobre o sistema operativo dos utilizadores ou a resolu¸c˜ao de ecr˜a, permitem alargar ou melhorar as inferˆencias feitas sobre o comportamento desses mesmos utilizadores [33]. O restante desta sec¸c˜ao ser´a dedicado `a exposi¸c˜ao de diversas abordagens e ferramentas ao dispor de profissionais de User-Experience aplicado a Web-Analytics. 2.2.1 Adquisi¸c˜ao de Informa¸c˜ao sobre o Website O primeiro passo na an´alise de um determinado website ´e, na verdade, n˜ao fazer uso de nenhuma ferramenta espec´ıfica de web-analytics. Explorar o website 32
´e a melhor forma de o conhecer, desde navegar pelos links indicados at´e estudar a disposi¸c˜ao das diferentes p´aginas, o que ajuda o profissional a entender o significado dos dados a serem retirados e analisados, al´em de dar uma ideia das dificuldades na navega¸c˜ao. O passo seguinte ser´a ent˜ao obter os dados sobre a navega¸c˜ao dos utilizadores em determinado website. H´a dois m´etodos simples de obten¸c˜ao desta informa¸c˜ao: log files epage tagging. Log files monitorizam que p´aginas s˜ao abertas para cada webpage request. Estes permitem manter informa¸c˜ao aprofundada sobre a atividade desenvolvida e assim formar um dataset mais extenso. No entanto, a an´alise de log files pode ser desafiante, tanto na utiliza¸c˜ao como na implementa¸c˜ao, embora as ferramentas sejam bastante mais dispendiosos. Nas ferramentas que permitem a utiliza¸c˜ao da an´alise de log files incluem-se AWStats eSawmill. Por outro lado, Page tagging funciona inserindo um pequeno peda¸co de c´odigo Javascript em todas as p´aginas do website que se queira monitorizar para assim recolher os dados de cada vez que o utilizador carregar a p´agina HTML, ou ent˜ao atrav´es da utiliza¸c˜ao de cookies colocados no dispositivo do utilizador. Deste modo, apenas a informa¸c˜ao que o profissional implemente ser´a recolhida, permitindo a forma¸c˜ao de um dataset mais rico, em compara¸c˜ao com a an´alise de log files. Al´em disso, page tagging ´e bastante mais simples de usar e mais acess´ıvel do ponto de vista comercial. Google Analytics,Omniture ou Webtrends s˜ao ferramentas para este ´ultimo tipo de an´alise. A Figura 2.3 mostra o layout da interface da ferramenta Google Analytics [33]. 33
Figura 2.3: Layout da interface da ferramenta Google Analytics. 2.2.2 M´etricas e Atributos Dois dos principais conceitos em web-analytics s˜ao as m´etricas e os atributos. M´etricas definem-se como medidas quantitativas sobre v´arios aspetos do comportamento dos utilizadores podendo, por exemplo, ser expressas sob a forma de uma soma, de uma m´edia ou de uma taxa. Atributos, por outro lado e neste contexto, s˜ao categorias em que os dados podem ser agrupados, definindo-se mais como caracter´ısticas qualitativas sobre os utilizadores, os seus dispositivos ou sobre partes do website que os utilizadores visitam. Em Analytics, faz-se uso da conjuga¸c˜ao entre as m´etricas e os atributos. Em seguida, s˜ao exemplificadas alguns tipos de m´etricas tipicamente analisadas no contexto de web-analytics. Visitas Quando o utilizador entra num website, vai clicando, vˆe algumas p´aginas e depois sai, isso corresponde a uma visita. Por si, a visita n˜ao ´e muito interessante, mas a an´alise do n´umero de visitas permite a segmenta¸c˜ao de utilizadores e do seu comportamento no website. Visitantes ´ Unicos Come¸car uma nova sess˜ao num website conta como uma nova visita. Avaliar os visitantes ´unicos num website em particular permite revelar quantos utilizadores 34
utilizaram efetivamente o website. Este processo ´e conseguido atrav´es da presen¸ca de cookies, podendo portanto n˜ao ser exato. Visualiza¸c˜oes de P´agina Uma visualiza¸c˜ao de p´agina corresponde a cada vez que um determinado utilizador acede a uma determinada p´agina. Se o utilizador entrar v´arias vezes na mesma p´agina na mesma sess˜ao, isso corresponde a v´arias visualiza¸c˜oes de p´agina atribu´ıdas `aquela sess˜ao. P´aginas/Visita Esta m´etrica corresponde `a quantidades de p´aginas que s˜ao visualizadas por cada visita. Normalmente, um n´umero mais elevado de p´aginas por visita ´e um indicador positivo, j´a que reflete utilizadores que passam tempo no website a explor´alo, podendo ser um indicador de interesse no website. Dura¸c˜ao da Visita Esta m´etrica corresponde `a quantidade de tempo que um determinado utilizador navegou pelo website. Normalmente ´e utilizado algum tipo de agrega¸c˜ao desta m´etrica, tipicamente a m´edia. Bounce Rate OBounce Rate de uma p´agina corresponde ao quociente entre o n´umero de utilizadores que entraram no website numa determinada p´agina e sa´ıram sem visitar qualquer outra p´agina, e o n´umero de utilizadores que entraram no website. Um Bounce Rate baixo ´e geralmente um bom indicador, embora para qualquer indicador, incluindo os anteriores, isso possa significar algo diferente conforme a situa¸c˜ao. % Novas Visitas A % de novas visitas corresponde, em percentagem, ao quociente entre o n´umero de utilizadores que entraram, mas que nunca estiveram no website, e o n´umero de utilizadores total. Esta m´etrica pode ser ´util para avaliar o sucesso em trazer de volta utilizadores para novas visitas. 35
Isoladamente, estas m´etricas n˜ao respondem a quaisquer quest˜oes particularmente interessantes. O objetivo ser´a atingir uma perce¸c˜ao mais profunda sobre o comportamento dos utilizadores, fazendo uso de agrega¸c˜oes das m´etricas e dos atributos. 2.2.3 Objetivos No contexto de Web-Analytics, um objetivo ´e determinada a¸c˜ao ou conjunto de a¸c˜oes dos utilizadores no website que se encontram em linha com o que ´e pretendido com este, e que permite reconhecˆe-lo como uma tarefa bem sucedida. O processo de defini¸c˜ao de objetivos em web-analytics ´e parte essencial na medi¸c˜ao da qualidade de determinado website. Neste sentido, deve ter-se em aten¸c˜ao que os objetivos definidos para o website devem estar alinhados com o objetivo da empresa. E ainda, as m´etricas definidas devem permitir discriminar se os objetivos foram ou n˜ao atingidos. Portanto, para um dado conjunto de objetivos do website, a escolha das m´etricas para medir o seu sucesso ´e parte fundamental. Convers˜oes Em web-analytics, uma a¸c˜ao que se pretende que o utilizador tome no website ´e chamada de ”convers˜ao”. Contactar a equipa de vendas, comprar diretamente algum produto ou fazer download de um artigo s˜ao exemplos de ”convers˜oes”, neste contexto. Escolhendo um determinado objetivo, ou seja, um ponto final concreto, pode-se definir o comportamento do utilizador como ”convertido”, caso este o tenha atingido. Portanto, a taxa de convers˜ao ´e uma m´etrica definida como a por¸c˜ao de utilizadores selecionados que tomam determinada a¸c˜ao no website. Pode ainda definir-se um conjunto de a¸c˜oes que constituem um caminho que leva a que um determinado objetivo seja cumprido e serem definidas etapas que indicam at´e que ponto desse caminho o utilizador chegou em termos de completa¸c˜ao da tarefa pretendida. Em termos de defini¸c˜ao dos objetivos propriamente ditos, encontram-se quatro quest˜oes centrais que dever˜ao ser atentamente respondidas [33]. 1. Qual o prop´osito da empresa/organiza¸c˜ao? 36
2. Como encaixa o website nesse prop´osito? 3. O que pretende a empresa que os utilizadores fa¸cam no website? 4. Que comportamento espec´ıfico mostra que os utilizadores serviram esse prop´osito? Em rela¸c˜ao `a primeira e segunda quest˜oes, o pr´oposito n˜ao deve ser exposto como ”aumentar receitas”ou ”fazer dinheiro”. Em vez disso, deve-se enumerar quais os problemas que a empresa/organiza¸c˜ao pretende resolver e de que forma o website pode ajudar nessa resolu¸c˜ao. No que concerne a terceira quest˜ao, procura-se encontrar de que forma os objetivos dos utilizadores e os da empresa/organiza¸c˜ao se alinham. Este ponto ´e bastante importante para a defini¸c˜ao dos objetivos do website. Finalmente, a ´ultima quest˜ao foca-se nas m´etricas necess´arias para avaliar a qualidade do website na aproxima¸c˜ao dos objetivos da empresa/organiza¸c˜ao com os dos utilizadores. 2.2.4 Web-Analytics aplicado aos utilizadores Em Web-Analytics, os dados recolhidos e dispon´ıveis v˜ao definir uma s´erie de abordagens poss´ıveis de serem efetuadas. Basicamente, estas fazem uso de caracter´ısticas dos pr´oprios utilizadores do website ou ent˜ao do seu comportamento de intera¸c˜ao com o mesmo website. Os utilizadores de determinado website possuem um conjunto de caracter´ısticas que lhes s˜ao inerentes. Estas caracter´ısticas podem ser reunidas de forma a categorizar os utilizadores, a que se d´a o nome em Web-Analytics de personnas.Personnas s˜ao definidos como utilizadores abstratos que representam grupos de utilizadores. Quando se pretende fazer corresponder um grupo de utilizadores a determinado comportamento, neste contexto, refere-se `as tais personnas. Referir, por exemplo, ”Os portugueses gostam de praia”, faz-se atribuir uma personna (neste caso, uma agrega¸c˜ao por nacionalidade) a determinado comportamento (neste caso, gostar de praia). Em Web-Analytics, muitas vezes, procura-se estabelecer este tipo de rela¸c˜ao, para assim retirar informa¸c˜ao relevante e condensada da grande quantidade de dados ao dispor. Em seguida, s˜ao apresentados os diferentes t´opicos de recolha de 37
informa¸c˜ao sobre os utilizadores, nomeadamente a n´ıvel das caracter´ısticas do utilizador, an´alise de tr´afego, an´alise de conte´udo e an´alise de caminho de cliques. Caracter´ısticas do Utilizador No caso particular das caracter´ısticas dos utilizadores, a ferramenta Google Analytics apresenta relat´orios sobre: •A demografia dos utilizadores: atrav´es do endere¸co IP, ´e obtida a localiza¸c˜ao do utilizador e apresentada por pa´ıs, regi˜ao e at´e cidade. •O novo vs De regresso: ´e apresentada a percentagem de novos utizadores em rela¸c˜ao ao total. Este relat´orio permite comparar os novos utilizadores e os utilizadores de regresso relativamente a outros atributos como taxa de convers˜ao, p´aginas visitadas por utilizador, etc. •A frequˆencia vs Recente: ´e mostrada a frequˆencia com que os utilizadores usam o website e tamb´em qu˜ao recente foi a ´ultima visita. •O compromisso: esta sec¸c˜ao cont´em informa¸c˜ao acerca dos tempos de visitas e da profundidade de p´aginas (quantas p´aginas foram visitadas por visita). Algumas agrega¸c˜oes destas m´etricas s˜ao tamb´em disponibilizadas. •A tecnologia: descreve o tipo de browser, sistema operativo e tipo de dispositivo utilizado nas visitas ao website. An´alise de Tr´afego Outra componente que tamb´em ´e analisada consiste em categorizar utilizadores pelas fontes e meios que os levaram ao website. A esta abordagem d´a-se o nome de an´alise de Tr´afego e este faz uso de local espec´ıfico que levou o utilizador ao website. Apesar de na ferramenta de Google Analytics serem descritas as URL ou os links que levaram os utilizadores ao website, normalmente este tipo de an´alise n˜ao ´e muito frequente, a n˜ao ser em casos espec´ıficos em que se queira analisar URLs em particular. O que ´e mostrado como tendo mais utilidade ´e a an´alise do Meio. O Meio deriva das fontes, mas em vez de descrever o local espec´ıfico de onde os utilizadores vieram, recolhe informa¸c˜ao sobre a categoria da fonte. No caso de Google Analytics, h´a 4 categorias apresentadas: 38
1. Orgˆanico: quem usa um motor de busca para chegar ao website; 2. Referencial: quem clica num link de outro website; 3. Nenhum: quem entra diretamente escrevendo o URL no browser; 4. CPC: referindo-se a pessoas que entram no website atrav´es de um link de publicidade. CPC refere-se a ”cost per click”. An´alise de Conte´udo No contexto da an´alise da intera¸c˜ao e comportamento dos utilizadores no website, esta intera¸c˜ao pode fornecer um conjunto de dados que se podem revelar interessantes. Por exemplo: •Analisar quais as p´aginas do website que foram mais ou menos visitadas pode estar relacionado com o interesse despertado na p´agina nos utilizadores, ou simplesmente porque ´e de f´acil acesso a partir da p´agina principal. •Um ratio elevado entre p´aginas visitadas e p´aginas ´unicas visitadas poder´a indicar intencionalidade, como voltar a uma p´agina que ´e frequentemente atualizada ou ent˜ao, poder´a indicar um problema de navega¸c˜ao dentro do website. Esta interpreta¸c˜ao depende do contexto, e deve ser avaliada para determinado caso espec´ıfico. •Tempo m´edio baixo para determinada p´agina poder´a indicar que o conte´udo n˜ao corresponde ao que o utilizador pretendia, est´a mal redigido ou n˜ao existe muito conte´udo na p´agina. Poder´a tamb´em indicar que o conte´udo da p´agina est´a bem organizado e permite que os utilizadores satisfa¸cam os seus objetivos rapidamente, ou ent˜ao que a esta ´e apenas um ponto de passagem para outras p´aginas. •Pelo contr´ario, um tempo m´edio elevado numa determinada p´agina tanto pode significar que os utilizadores est˜ao a ler conte´udo extenso ou assistir a v´ıdeos, esperar que determinado ficheiro seja descarregado ou ainda preencher um formul´ario extenso. Podem tamb´em estar a fazer uso de alguma funcionalidade interativa da p´agina. No entanto, pode haver indicadores explicitamente negativos, como estarem a esfor¸car-se para 39
Na Figura 2.6 pode-se visualizar a representa¸c˜ao gr´afica das fun¸c˜oes de Entropia e de ´ Indice de Gini para uma decis˜ao bin´aria, onde a impureza se encontra normalizada entre 0 e 1. Figura 2.6: Visualiza¸c˜ao gr´afica das curvas de entropia (a vermelho) e ´ındice de Gini (a verde). As ´arvores de decis˜ao que s˜ao constru´ıdas at´e ao m´aximo da sua profundidade, tendem a gerar ´arvores grandes e complexas, sendo que tendem tamb´em a ter problemas de overfitting aos dados de treino, n˜ao conseguindo generalizar. Deste modo, v´arios m´etodos foram sendo propostos para abordar esta quest˜ao. Um dos mais interessantes refere-se `a aplica¸c˜ao de crit´erios de paragem, realizando cortes em determinados ramos das ´arvores (Pruning). Foi mostrado que esta t´ecnica reduz a complexidade da ´arvore ao mesmo tempo que melhora a sua capacidade de generaliza¸c˜ao [42]. V´arios algoritmos foram sendo desenvolvidos com diferentes crit´erios de pruning, sendo alguns deles o Cost-Complexity Pruning,Reduced Error Pruning,Minimum Error Pruning,Pessimistic Pruning, entre outros [35] [36]. 46
2.3.2 Random Forest Surgindo como uma extens˜ao do uso de ´arvores de decis˜ao, as Random Forests fazem uso da aplica¸c˜ao do m´etodo de bootstrap agregado para atrav´es da utiliza¸c˜ao de classificadores mais fracos (´arvores de decis˜ao), construir uma classificador mais robusto, originalmente concebido como uma agrega¸c˜ao de v´arias ´arvores CART [42]. Apesar do uso extenso de Random Forests na pr´atica, o framework matem´atico que justifique o seu sucesso ainda n˜ao ´e bem entendido, como referido em [44]. Na verdade, o trabalho te´orico inicial baseava-se bastante em intui¸c˜ao e heur´ısticas matem´aticas, sendo que apenas foi formalizado rigorosamente em 2012, por Biau [45]. Random Forests s˜ao obtidas a partir da constru¸c˜ao de diversas ´arvores isoladas. Estas s˜ao treinadas de forma independente e com acesso diferente ao conjunto de dados de treino (bootstrapping). No caso das Forests, as ´arvores n˜ao s˜ao submetidas apruning [44]. Quanto `a agrega¸c˜ao dos diversos outputs, tipicamente as previs˜oes das Forests s˜ao obtidas pela m´edia das previs˜oes das ´arvores no caso do problema de regress˜ao, ou ent˜ao atrav´es do voto maiorit´ario (moda) em problemas de classifica¸c˜ao. A Figura 2.7 representa o processo de classifica¸c˜ao de uma Random Forest, onde se pode visualizar a composi¸c˜ao de v´arias ´arvores de decis˜ao, sendo que cada uma fornece a sua classifica¸c˜ao dos novos casos e, no final, ´e feita uma agrega¸c˜ao maiorit´aria para obter a classifica¸c˜ao final da Random Forest. 47
Figura 2.7: Visualiza¸c˜ao gr´afica da estrutura de uma Random Forest e do m´etodo de previs˜ao. No caso da utiliza¸c˜ao das Random Forest para os problemas de regress˜ao, estas apresentam limita¸c˜oes ao n´ıvel de extrapola¸c˜ao, ou seja, as Forests n˜ao conseguem generalizar para casos fora da margem de valores dos dados em que treinaram [46] [47]. 2.3.3 Gradient Boosting Gradient Boosting ´e um outro m´etodo de Machine Learning que faz uso da agrega¸c˜ao de ´arvores de decis˜ao. No entanto, ´e um pouco diferente das Random Forests descritas anteriormente. Neste caso, o algoritmo ´e formado pela combina¸c˜ao aditiva das contribui¸c˜oes das diferentes ´arvores, ou seja, a pr´oxima ´arvore tenta prever os res´ıduos das previs˜oes das ´arvores anteriores e assim sucessivamente. Uma das desvantagens aqui evidenciada ´e que, como cada ´arvore precisa da ´arvore anterior para ser treinada, estas n˜ao podem ser treinadas em paralelo, ao contr´ario das Random Forest. Pode-se descrever matematicamente a fun¸c˜ao de Gradient Boosting pela equa¸c˜ao 2.5. ˆyi= K X k=1 fk(xi), i ∈ {1, ..., m}(2.5) para um determinado dataset D={(xi, yi), i ∈ {1, ..., m}}, em que xis˜ao os 48
dados explicativos para determinado registo i,yis˜ao os labels associados a esse xi, e ˆyis˜ao as previs˜oes do modelo associados a esse xi, sendo mo n´umero de registos total, Ko n´umero de ´arvores de regress˜ao utilizadas e fk∈F, com Fo espa¸co de todas as ´arvores de regress˜ao poss´ıveis (CART) [48]. Desta forma, e pela equa¸c˜ao 2.5, observa-se que cada ´arvore vai tentando corrigir os erros das ´arvores anteriores e o resultado final ´e a contribui¸c˜ao aditiva de todas as ´arvores. O termo gradient prov´em do facto do algoritmo utilizar a t´ecnica de gradient descent para encontrar os parˆametros que minimizam a fun¸c˜ao erro a cada passo [49]. 2.3.4 An´alise de Clustering An´alise de Cluster ´e um tipo de an´alise de dados que procura agrupar objetos com base nas rela¸c˜oes entre estes, estimando uma estrutura a partir de um conjunto de caracter´ısticas selecionadas dos objetos. ´ E usado como um nome gen´erico para um grupo de t´ecnicas de an´alise de dados multivariada, tendo como representante de cada agrupamento (cluster) um ponto no espa¸co dos dados. Na Figura 2.8, pode-se ver representado um exemplo da t´ecnica de clustering aplicado a um conjunto de objetos (pontos) num espa¸co de duas dimens˜oes. As diferentes cores referem-se `as diferentes agrega¸c˜oes, neste caso 3 agrega¸c˜oes. Os pontos negros referem-se aos clusters (representa¸c˜ao matem´atica do grupo) [50]. 49
Figura 2.8: Exemplo de clustering aplicado a um conjunto de dados a duas dimens˜oes. A an´alise de clusters pretende imitar a tarefa bastante humana de reconhecer padr˜oes num conjunto de dados, sendo particularmente ´util em situa¸c˜oes onde est˜ao presentes enormes quantidades de dados, sendo que esta enormidade dificulta a tarefa a um ser humano. Fazendo uso de t´ecnicas de clustering, a quantidade de dados pode ser reduzida para um n´umero simb´olico, mas ainda assim representativo dos dados, permitindo depois formular hip´oteses sobre a estrutura do problema em quest˜ao. A seguir s˜ao apresentadas breves descri¸c˜oes de dois algoritmos de clustering, nomeadamente o k-means e o k-medoids. K-Means Em clustering,k-means ´e um algoritmo usado frequentemente para agrupar um dataset em kgrupos, que encontrando as parti¸c˜oes de forma a que o erro quadr´atico (E∗) entre a m´edia emp´ırica do cluster e os pontos do cluster ´e minimizada [51] [52]: E∗(C) = K X k=1 X xi∈ck ||xi−µk||2(2.6) 50
com X={xi}, i = 1, ..., n oset de npontos de dimens˜ao da serem agrupados num set de K clusters,C={ck, k = 1, ..., K}eE∗(C) a soma do quadrado dos erros sobre todos os clusters K. O algoritmo de k-means necessita de 3 parˆametros iniciais: n´umero de clusters K, inicializa¸c˜ao dos clusters e a m´etrica de distˆancia. Tipicamente, a m´etrica de distˆancia utilizada ´e a m´etrica euclidiana, sendo que outras podem tamb´em ser usadas, como a distˆancia de Manhattan [53] [54]. O procedimento segue os seguintes passos, cuja representa¸c˜ao se encontra inclusive na Figura 2.9 [52]: 1. Selecionar uma parti¸c˜ao inicial para os clusters K. 2. Repetir at´e que os clusters estabilizem: (a) Gerar uma nova parti¸c˜ao, atribuindo cada elemento ao seu cluster mais pr´oximo. (b) Calcular novos centros dos clusters (centroids - posi¸c˜ao m´edia de todos os pontos). Figura 2.9: Procedimento algor´ıtmico de K-means clustering. 51
Na Figura 2.9, come¸ca-se com a distribui¸c˜ao dos dados em a), a inicializa¸c˜ao dos 2 clusters em b), atribui¸c˜ao a cada elemento dos dados o seu cluster mais pr´oximo em c), calcular o ponto m´edio de cada conjunto de dados para cada parti¸c˜ao em d), aplicar recursivamente os passos c) e d) e concluir em fquando os clusters estabilizarem, ou seja, n˜ao haver altera¸c˜oes nos clusters em rela¸c˜ao `a itera¸c˜ao anterior. K-Medoids Seguindo uma l´ogica similar `a do algoritmo k-means, o algoritmo k-medoids pretende segmentar os dados em k clusters, sendo que neste caso, os representantes dos clusters n˜ao s˜ao centroids, mas medoids, ou seja, os representantes dos clusters tˆem de pertencer ao conjunto de dados [55]. O algoritmo segue os seguintes passos: 1. Inicializar kpontos do conjunto de dados como medoids para reduzir o erro. 2. Associar cada ponto ao medoid mais pr´oximo. 3. Repetir enquanto o erro da configura¸c˜ao decresce: (a) Para cada medoid m e para cada ponto n˜ao-medoid o: i. Considerar a troca de mpor o, e calcular o erro da mudan¸ca. ii. Se o erro da mudan¸ca ´e o melhor encontrado, guardar este me a combina¸c˜ao de o. (b) Executar a mudan¸ca do melhor me o melhor o, se isso diminuir a fun¸c˜ao erro. De outra forma, o algoritmo termina. 52
53
54
Cap´ıtulo 3 Descri¸c˜ao de Dados 55
3.3 Conex˜ao do Estado de Arte com os Dados 3.3.1 Otimiza¸c˜ao energ´etica Em rela¸c˜ao `a explora¸c˜ao da otimiza¸c˜ao energ´etica, foi estudado na sec¸c˜ao do Estado de Arte a sua aplicabilidade a Centro de Dados e a infraestruturas IT de larga escala. Entretanto, como descrito na sec¸c˜ao introdut´oria, a Fujitsu tem uma posi¸c˜ao forte no mercado portuguˆes, tanto no setor p´ublico de Administra¸c˜ao como nos setores privados no Retalho, na Banca e nos Transportes. Deste modo, poderia ser interessante uma abordagem neste sentido `as infraestruturas da Fujitsu, fazendo uso das suas infraestruturas para o tratamento desta enormidade de dados. No entanto, n˜ao foi poss´ıvel implementar tal an´alise com os dados fornecidos da Nexthink, pois estes n˜ao possuem dados relativos `a informa¸c˜ao energ´etica ou custo computacional dos comportamentos associado `as execu¸c˜oes e/ou aos utilizadores. Fica inclusive a d´uvida se uma an´alise a infraestruturas de m´edia ou pequena dimens˜ao, ao n´ıvel da energia, teria a escalabilidade suficiente para obter resultados interessantes neste dom´ınio. Ainda assim, dados energ´eticos sobre os diferentes elementos envolvidos no processo de determinada empresa, integrados com as m´etricas dos pr´oprios processos (utiliza¸c˜ao de cpu, mem´oria computacional, tempo dos processos, qu˜ao bem foram atingidos os objetivos, assim como o impacto na experiˆencia utilizador), poderia permitir uma an´alise de modo a discernir os processos eficientes dos ineficientes e resultar em sugest˜oes sobre mudan¸cas de comportamentos ou mesmo nas infraestruturas. Esta abordagem, partindo do princ´ıpio que obteria resultados conclusivos, permitiria realizar uma melhor gest˜ao das tarefas computacionalmente mais exigentes, abrindo espa¸co para uma maior disponibilidade de recursos para os utilizadores, ao mesmo tempo que restringiria os custos para a empresa. Em rela¸c˜ao `a User-Experience propriamente dita, seria necess´ario fazer a ponte entre a informa¸c˜ao energ´etica de uma organiza¸c˜ao e o seu impacto na experiˆencia dos utilizadores, de modo a validar esta associa¸c˜ao. 3.3.2 Web-Analytics No caso da abordagem de Web-Analytics, e dentro do ˆambito de consultoria que a Fujitsu estabelece, poder-se-ia aplicar esta abordagem num contexto em que 62
h´a intera¸c˜ao direta entre os dispositivos e os utilizadores. Um exemplo ´obvio seria a aplica¸c˜ao de web-analytics numa empresa que fizesse uso de compras online, onde se poderia obter informa¸c˜ao acerca dos clientes e dos seus comportamentos. Como outro exemplo, podemos incluir a an´alise a um conjunto de lojas do Burger King ou McDonalds, onde existe uma intera¸c˜ao entre os empregados da rece¸c˜ao e os dispositivos de registo de pedidos ou ent˜ao os pr´oprios dispositivos touch de registo das encomendas, desta vez realizados pelos pr´oprios clientes. Neste ´ultimo caso, a abordagem que tipicamente ´e realizada para segmenta¸c˜ao de clientes online e o seu comportamento nas p´aginas web, poderia ser aplicada aos clientes que interagem com os ecr˜as de encomenda, j´a que nestes ´e estabelecida uma interface de intera¸c˜ao, e onde ´e poss´ıvel guardar os dados referentes a esta intera¸c˜ao. Dentro desta abordagem de web-analytics, m´etricas que foram identificadas como importantes inclui-se a informa¸c˜ao relativa aos elementos do website, como o n´umero de visitas, visitantes, os visitantes ´unicos, as pageviews, dura¸c˜ao da visita e dura¸c˜ao das p´aginas abertas. Inclui-se tamb´em informa¸c˜ao referente aos utilizadores como a sua demografia, frequˆencia de utiliza¸c˜ao, dura¸c˜ao das visitas, profundidade da visita na ´arvore das p´aginas, browser eOS e p´aginas de sa´ıda. Estas m´etricas podem ser obtidas tamb´em dentro de um registo mais profundo de dados em que realmente s˜ao armazenados os dados referentes a cada intera¸c˜ao realizada. Ainda dentro das m´etricas, pode-se enumerar algumas m´etricas de alvo, que permitem estabelecer qu˜ao bom foi a concretiza¸c˜ao de objetivos espec´ıficos, onde se incluem m´etricas como a convers˜ao (se determinado produto foi comprado, por exemplo), ou sobre a pr´opria avalia¸c˜ao direta da experiˆencia do utilizador. Esta abordagem traria valor ao permitir discernir a efic´acia das interfaces nos objetivos, a disposi¸c˜ao dos elementos na interface, os produtos com mais sucesso ou sugest˜oes para diferentes tipos de clientes com base numa segmenta¸c˜ao. No contexto dos dados da Nexthink analisados nesta disserta¸c˜ao, a abordagem web-analytics ´e utilizada na segmenta¸c˜ao dos utilizadores ou dispositivos (cria¸c˜ao de personnas) com base nas aplica¸c˜oes que foram sendo executadas (o dataset n˜ao cont´em informa¸c˜ao direta sobre as aplica¸c˜oes instaladas nos dispositivos). Para al´em disso, os dados fornecem informa¸c˜ao acerca dos eventos que v˜ao ocorrendo em rela¸c˜ao `a sua utiliza¸c˜ao, como os erros de dispositivo ou de execu¸c˜ao (bem como os warnings), permitindo assim agrupar os v´arios elementos envolvidos de forma a identificar as fontes de tais problemas (de erros e warnings) e assim, melhorar a experiˆencia dos utilizadores e reduzir os custos para a empresa envolvida. 63
64
Cap´ıtulo 4 An´alise de Dados e Resultados 65
4.1 Estat´ıstica Descritiva Nesta sec¸c˜ao, descrever-se-˜ao os dados de um ponto de vista estat´ıstico. S˜ao exibidas v´arias agrega¸c˜oes acerca dos dados (m´edia, mediana, m´ınimo e m´aximo), bem como o n´umero de registos, o n´umero de dados em falta e ainda o n´umero de campos ´unicos dentro de cada categoria. Da Tabela 4.1 `a 4.3 s˜ao apresentadas as estat´ısticas descritivas referentes aos objetos dos dados. As Tabelas 4.4, 4.6, 4.8, 4.10 e 4.12 contˆem as estat´ısticas dos dados dos eventos, e as Tabelas 4.5, 4.7, 4.9, 4.11 e 4.13 representam as estat´ısticas para os dados que permitem estabelecer as rela¸c˜oes entre as tabelas dos objetos e as tabelas dos eventos. Tabela 4.1: Estat´ıstica da Tabela ”Application”. Application Registos Missing ´ Unicos M´edia M´ınimo Mediana M´aximo id 1684 0 nan nan nan nan nan name 1684 0 1588 nan nan nan nan company 1684 0 693 nan nan nan nan platform 1684 0 2 nan nan nan nan total active days 1684 0 nan 15.27 0 14 34 66
Tabela 4.2: Estat´ıstica da Tabela ”Device”. Device Registos ´ Unicos M´ınimo Mediana M´aximo id 1327 nan nan nan nan entity 1327 28 nan nan nan device type 1327 3 nan nan nan cpu frequency 1327 nan 1100 Mhz 3401 Mhz 4200 Mhz cpu model 1327 60 nan nan nan hard disks 1348 125 nan nan nan device manufacturer 1327 9 nan nan nan os architecture 1327 2 nan nan nan total active days 1327 nan 0 6 34 os version and architecture 1327 26 nan nan nan total ram 1327 nan 2.00 Gb 8.00 Gb 64.00 Gb system drive free space 1327 nan 637.28 Mb 316.21 Gb 877.05 Gb system drive capacity 1327 nan 31.90 Gb 372.53 Gb 1044.12 Gb system drive usage 1327 nan 0.06 0.15 1.0 platform 1327 2 nan nan nan Tabela 4.3: Estat´ıstica da Tabela ”User”. User Registos Missing ´ Unicos M´edia M´ınimo Mediana M´aximo id 5038 0 nan nan nan nan nan full name 5038 36 4607 nan nan nan nan job title 5038 4994 14 nan nan nan nan department 5038 4994 3 nan nan nan nan total active days 5038 0 nan 15.44 0 16 34 As Tabelas 4.1, 4.2 e 4.3, referentes aos dados sobre os objetos, permitem observar que existem 1684 applications, 1327 devices e 5038 users em registo. Pela coluna ”´ Unicos”, pode-se verificar que existem atributos que se repetem para v´arias applications,devices eusers, como por exemplo para a Tabela de Application, o nome, a empresa e a plataforma, que n˜ao tˆem missing values. 67
Tabela 4.4: Estat´ıstica da Tabela ”Device error”. Device error Registos ´ Unicos M´ınimo Mediana M´aximo id 881 nan nan nan nan start time 881 nan 2019-08-04 2019-08-29 2019-09-07 type 881 3 nan nan nan error label 881 7 nan nan nan Tabela 4.5: Estat´ıstica da Tabela ”Device error relations”. Device error relations Registos ´ Unicos device error id 814 814 device id 814 182 Tabela 4.6: Estat´ıstica da Tabela ”Device warning”. Device warning Registos ´ Unicos M´edia M´ınimo Mediana M´aximo id 178527 nan nan nan nan nan duration 178527 nan 9.95 min 29.99 s 59.99 s 23.58 hrs start time 178527 nan nan 2019-08-04 2019-08-24 2019-09-07 end time 178527 nan nan 2019-08-04 2019-08-24 2019-09-07 type 178527 5 nan nan nan nan Tabela 4.7: Estat´ıstica da Tabela ”Device warning relations”. Device warning relations Registos ´ Unicos device warning id 178527 178527 device id 178527 642 Tabela 4.8: Estat´ıstica da Tabela ”Execution error”. Execution error Registos ´ Unicos M´ınimo Mediana M´aximo id 7204 nan nan nan nan type 7204 2 nan nan nan time 7204 nan 2019-08-04 2019-08-23 2019-09-07 68
Tabela 4.9: Estat´ıstica da Tabela ”Execution error relations”. Execution error relations Registos ´ Unicos execution error id 7204 7204 application id 7204 160 device id 7204 551 user id 7204 521 Tabela 4.10: Estat´ıstica da Tabela ”Execution warning”. Execution warning Registos ´ Unicos M´edia M´ınimo Mediana M´aximo id 170138 nan nan nan nan nan start time 170138 nan nan 2019-08-04 2019-08-23 2019-09-07 end time 170138 nan nan 2019-08-04 2019-08-23 2019-09-07 warning duration 170138 nan 20.93 min 0 ms 89.99 s 23.58 hrs type 170138 2 nan nan nan nan Tabela 4.11: Estat´ıstica da Tabela ”Execution warning relations”. Execution warning relations Registos ´ Unicos execution warning id 170138 170138 application id 170138 364 device id 170138 658 user id 170138 836 Tabela 4.12: Estat´ıstica da Tabela ”Execution”. Execution Registos ´ Unicos M´edia M´ınimo Mediana M´aximo id 6805700 nan nan nan nan nan total cpu time 6805700 nan 6.4 s 0 ms 0 ms 5.29 days average memory usage 6805700 nan 8.18 Mb 0.00 bytes 0.00 bytes 15.97 Gb cardinality 6805700 nan 5.43 1.0 1.0 64433.0 duration 6805700 nan 99.26 min 0 ms 7.05 min 17.72 days start time 6805700 nan nan 2019-08-04 2019-08-24 2019-09-07 end time 6805700 nan nan 2019-08-04 2019-08-24 2019-09-07 privilege level 6805700 4 nan nan nan nan 69
Tabela 4.13: Estat´ıstica da Tabela ”Execution relations”. . Execution relations Registos ´ Unicos execution id 4173229 4173229 application id 4173229 1417 device id 4173229 1204 user id 4173229 1855 Em rela¸c˜ao `as tabelas dos eventos (4.4, 4.6, 4.8, 4.10 e 4.12), os eventos registados encontram-se entre o dia 2019-08-04 e 2019-09-07 (Tabela 4.12), sendo que neste per´ıodo, houve 881 erros de device, 178527 warnings de device, 7204 erros de execution e 170138 warnings de execution, num total de 6805700 executions. No caso de erros de device, a Tabela 4.5 ´e a tabela que permite relacionar esses erros com o device em que se deu cada erro. Comparando as Tabelas 4.4 e 4.5, pode-se verificar que estas n˜ao contˆem o mesmo n´umero de registos. Isto significa definitivamente que faltam registos de dados, violando, portanto, a consistˆencia destes mesmos dados. O mesmo acontece para as Tabelas 4.12 e 4.13, em que a tabela Execution relations tem menos de dois ter¸cos dos registos encontrados na tabela Execution. Esta observa¸c˜ao implica uma limita¸c˜ao razo´avel em rela¸c˜ao `a an´alise que poder´a ser realizada, especialmente `a sua validade. No entanto, optou-se por excluir os registos de eventos, que apesar de se encontrarem nas tabelas de eventos, n˜ao se encontram na tabela de rela¸c˜oes. Quanto `as restantes tabelas, apesar de conterem o mesmo n´umero de eventos, n˜ao foi poss´ıvel confirmar se contˆem a totalidade dos registos. 4.2 Visualiza¸c˜ao dos Dados Nesta sec¸c˜ao, ser˜ao apresentados v´arios gr´aficos que representam a descri¸c˜ao dos erros e dos warnings de device eexecution agregados em tempo, device,application euser. 70
4.2.1 Eventos de Device Figura 4.1: Gr´afico de barras com os erros de device por dia para cada tipo de erro. Figura 4.2: Gr´afico de barras com os warnings de device por dia para cada tipo de warning. Nos gr´aficos das Figuras 4.1 e 4.2, pode-se observar o n´umero de erros e warnings de device em cada dia, por tipo (de erro e warning). 71
N˜ao sendo o caso para a Figura 4.12, que cont´em uma distribui¸c˜ao mais uniforme dos eventos, a Figura 4.11 apresenta uma situa¸c˜ao similar `a das Figuras 4.9 e 4.10, onde ´e poss´ıvel isolar 1 ou 2 devices de modo a resolver a grande maioria dos erros. No entanto, a visualiza¸c˜ao dos gr´aficos de barras referentes aos eventos dos user ´e mais revelador. 4.2.3 Erros vs Warnings Nesta sec¸c˜ao ser˜ao apresentados alguns gr´aficos em que se demonstra a rela¸c˜ao entre o n´umero de erros e o n´umero de warnings. Figura 4.13: Gr´afico de Erros vs Warnings de device em escala logar´ıtmica. 78
Figura 4.14: Gr´afico de Erros vs Warnings de execution em escala logar´ıtmica. Nas Figuras 4.13 e 4.14 encontram-se os gr´aficos de Erros vs Warnings em escala logar´ıtmica. Como se pode observar, n˜ao se consegue retirar uma rela¸c˜ao entre a existˆencia de um n´umero elevado de erros e de warnings. Este resultado n˜ao causa espanto, j´a que os tipos de warnings e tipos de erros utilizados n˜ao est˜ao necessariamente relacionados. Por exemplo, a existˆencia de warnings de utiliza¸c˜ao elevada de mem´oria ou processamento n˜ao se reflete, necessariamente, num posterior erro (crash ou application not responding) no dispositivo em quest˜ao. 79
4.3 An´alise de Clustering Uma das abordagens aplicadas nesta disserta¸c˜ao refere-se `a segmenta¸c˜ao de devices eusers de forma a criar as tais personnas referidas na sec¸c˜ao de Web-Analytics do Estado de Arte. Estas personnas referem-se a uma abstra¸c˜ao ou representa¸c˜ao de elementos que condensam um grupo de objetos com as mesmas caracter´ısticas. Esta abordagem utilizou os dados das applications executadas pelos users ou nos devices de forma a agrupar users ou devices com execu¸c˜oes de applications semelhantes. Grupos com execu¸c˜oes de applications semelhantes dever˜ao desempenhar fun¸c˜oes semelhantes, e portanto, podem-se reduzir ou eliminar redundˆancias nas applications para desempenhar determinada fun¸c˜ao, isto ´e, a empresa estudada poderia tentar uniformizar as applications que utiliza para determinada fun¸c˜ao, reduzindo por exemplo, no custo das licen¸cas. Por outro lado, e de maior importˆancia para este trabalho, permitiria averiguar mais a fundo cada cluster ou personna de forma a entender que tipo de utilizador est´a representado na empresa, precisamente pela seu padr˜ao de utiliza¸c˜ao dos recursos digitais. Os dados foram tratados de forma a criar uma tabela que inclua como ind´ıce cada um dos devices/users e as colunas com o id de cada application. Cada valor toma o valor de 0 ou 1, consoante a application foi ou n˜ao executada pela user ou executada no device durante o intervalo de tempo dos dados recolhidos. Foram realizados 2 tipos de an´alises, tanto para os users, como para os devices. Um deles refere-se `a aplica¸c˜ao do algoritmo k-medoids, com 4 clusters. O n´umero de clusters foi obtido por visualiza¸c˜ao da curva dos erros quadr´aticos e tamb´em confirmado atrav´es da visualiza¸c˜ao gr´afica posterior. Os resultados encontram-se nas Figuras 4.15 e 4.16. 80
Figura 4.15: Representa¸c˜ao 3D (por PCA) do clustering aplicado aos users. Figura 4.16: Representa¸c˜ao 3D (por PCA) do clustering aplicado aos devices. As representa¸c˜oes tridimensionais das an´alises descritas anteriormente foram obtidas aplicando An´alise de Componentes Principais por forma a reduzir a dimens˜ao do espa¸co de applications, de modo a ser poss´ıvel a sua visualiza¸c˜ao. Nas Figuras 4.15 e 4.16, pode-se observar os 4 clusters. Apresentam-se tamb´em 81
os ids dos objetos (users edevices) no canto inferior direito, que representam as personnas (representantes) referidas anteriormente. Para o caso dos users, os representantes obtidos foram os users com id 944, 1668, 597 e 972. Por outro lado, para o caso dos devices, os representantes obtidos foram os devices com id 689, 848, 2876 e 3567. Estes representantes s˜ao o resultados da minimiza¸c˜ao das distˆancias euclidianas dentro do cluster. Verifica-se pelas duas Figuras 4.15 e 4.16, que o clustering por devices parece formar clusters mais consistentes e bem definidos. No total, foram encontrados 4 representantes que podem ser utilizados como tipos de devices existentes nos dados. Uma an´alise mais detalhada sobre o tipo de aplica¸c˜oes executadas por cada representante poderia fornecer mais informa¸c˜oes acerca destes. 82
4.4 Regress˜ao de Random Forest eGradient Boost Uma outra abordagem tomada nesta disserta¸c˜ao foi tentar prever o n´umero de eventos (erros e warnings) para determinado tipo de objeto (registos de devices, users eapplication). Para isso, os eventos foram agregados por objeto e aplicavase ent˜ao um algoritmo de regress˜ao com o intuito de prever os eventos (erros e warnings) associados aos registos de cada tipo de objeto. Os algoritmos usados nesta an´alise foram a Random Forest e o Gradient Boost de Regress˜ao, ambos baseados em ensembles de ´arvores de decis˜ao. Parte dos resultados obtidos encontram-se nas Figuras 4.17 e 4.18. Estes gr´aficos apresentam o n´umero m´edio de erros di´ario encontrado para cada objeto. No eixo horizontal, encontram-se a m´edia de erros di´aria observada, enquanto que no eixo vertical se encontra a m´edia de erros di´aria prevista, respetivamente. Figura 4.17: Resultados da Previs˜ao de Erros de Device por dias ativos para o algoritmo de Random Forest. 83
Figura 4.18: Resultados da Previs˜ao de Erros de Device por dias ativos para o algoritmo de Gradient Boost. Na Figura 4.17 pode-se observar que o algoritmo n˜ao tem qualquer capacidade aceit´avel de previs˜ao da m´edia dos erros di´arios, principalmente para casos com m´edias mais elevadas, sendo que estas seriam as mais interessantes de prever. Por exemplo, no caso extremo da m´edia de erros di´arios observada de 17, o algoritmo prevˆe uma m´edia de erros di´arios de 0.37. Esta qualidade de previs˜ao ´e refletida na medida de ajuste de R2a seguir definida: R2= 1 −P i (yi−ˆyi)2 P i (yi−y)2(4.1) onde yis˜ao os valores observados, ˆyis˜ao as previs˜oes do modelo, y´e a m´edia dos valores observados e i∈ {1, ..., n}, sendo no n´umero de observa¸c˜oes. De facto, o algoritmo apresenta um R2de 0.02 (equa¸c˜ao 4.1), confirmando essa incapacidade. Al´em disso, analisando com mais detalhe os atributos mais importantes nas ´arvores de decis˜ao presentes na Random Forest, chega-se `a conclus˜ao 84
de que o atributo mais importante ´e o id do pr´oprio device, ou seja, o algoritmo n˜ao est´a a obter conhecimento com o agrupamento dos dados. Em vez disso, atua mais como um detetor de outliers, isolando ids em particular. Mesmo assim, n˜ao apresenta uma capacidade de previs˜ao aceit´avel. No caso da Figura 4.18, pode-se observar as previs˜oes do algoritmo Gradient Boost, onde este modelo apresenta um R2de -3.7, pelo que se coloca num patamar pior do que o pr´oprio algoritmo de Random Forest. 85
4.5 Entropia Modificada 4.5.1 Introdu¸c˜ao A equa¸c˜ao 2.1 estabelece a forma de c´alculo da entropia. Para um dado vetor de probabilidades de determinado evento, esta estabelece a quantidade m´edia de quest˜oes bin´arias (0 ou 1) necess´arias para obter a informa¸c˜ao sobre determinado evento. Por exemplo, para um evento com 4 categorias poss´ıveis, cujo vetor de probabilidades ´e [0.5,0.25,0.125,0.125], a ´arvore bin´aria (a entropia ´e definida pelo n´umero de quest˜oes bin´arias) ´e representada na Figura 4.19. Nesta Figura, est´a representado o processo com os v´arias resultados, onde os nodos neutros (sem n´umero) correspondem `as quest˜oes bin´arias, os nodos numerados aos resultados correspondentes aos ind´ıces do vetor de probabilidades. Em cada aresta encontra-se a probabilidade do processo terminar no nodo. Figura 4.19: ´ Arvore bin´aria que descreve os resultados para um processo probabil´ıstico de 4 categorias com probabilidades 0.5,0.25,0.125,0.125, respetivamente. Sendo assim, e como se pode acompanhar pela Figura 4.19, o n´umero de nodos para uma ´arvore bin´aria na profundidade P ´e 2P. Este n´umero de nodos depende do inverso da probabilidade de determinado nodo. Por exemplo, para o nodo 4, a sua probabilidade ´e de 0.125, sendo que para uma ´arvore bin´aria, `a profundidade de 3, esta cont´em 8 nodos (23). Sendo assim, para se obter a profundidade da ´arvore 86
(n´umero de quest˜oes) para a probabilidade de determinado resultado (p), faz-se uso da equa¸c˜ao 4.2. P=log2(1 p) (4.2) Ent˜ao, para se obter o n´umero m´edio de quest˜oes bin´arias necess´arias (profundidade P) para obter o resultado, calcula-se a entropia pela equa¸c˜ao 2.1. No caso da ´arvore descrita pela Figura 4.19, a entropia calcula-se: E= 0.5·log2(1 0.5)+0.25 ·log2(1 0.25)+2·0.125 ·log2(1 0.125) = 1.75 bits Pela express˜ao anterior, conclui-se que para o processo representado na Figura 4.19 s˜ao precisos, em m´edia, 1.75 bits de informa¸c˜ao, ou seja, ´e necess´ario responder em m´edia a 1.75 quest˜oes bin´arias. Voltemos `a Figura 4.10. Esta figura ´e bastante interessante, pois revela bastante informa¸c˜ao ´util em rela¸c˜ao aos warnings de execution para os users, onde apenas visualizando o gr´afico de barras, ´e poss´ıvel verificar que os warnings est˜ao bastante concentrados em apenas um user. A aten¸c˜ao da empresa podia ent˜ao ser voltada para resolver a quest˜ao deste user em particular, resolvendo assim a grande maioria dos warnings que foram aparecendo, usando uma quantidade limitada de recursos para o conseguir. 4.5.2 Entropia Modificada A an´alise da entropia permite ent˜ao medir o desequ´ılibro de um determinado vetor, medindo a informa¸c˜ao contida neste. No caso dos dados analisados nesta disserta¸c˜ao, o objetivo desta abordagem ´e comparar o desequ´ılibro dos vetores que contˆem os erros/warnings para cada atributo de cada tipo de objeto (por exemplo, company dentro da tabela das applications). Naturalmente, estes vetores ter˜ao tamanhos diferentes consoante o n´umero de registos ´unicos dentro de cada atributo. Por forma a poder estabelecer-se uma compara¸c˜ao entre o desequ´ılibro destes vetores, ´e preciso aplicar uma normaliza¸c˜ao no c´alculo da entropia. 87
4.5.3 Aplica¸c˜ao GUI de Monitoriza¸c˜ao De forma a colocar em pr´atica a abordagem desenvolvida na sec¸c˜ao anterior da entropia modificada, foi desenvolvida uma aplica¸c˜ao Graphical User Interface (GUI) como prot´otipo de apresenta¸c˜ao de dados e resultados dessa mesma abordagem. A aplica¸c˜ao foi desenvolvida utilizando principalmente as bibliotecas PyQt5, pyqtgraph,pandas,threading eSQLAlchemy da linguagem de programa¸c˜ao Python. Em seguida, ser˜ao apresentadas as diferentes etapas de visualiza¸c˜ao e monitoriza¸c˜ao da an´alise de entropia modificada aos dados na aplica¸c˜ao GUI. Come¸ca, ent˜ao, com a Janela de apresenta¸c˜ao inicial da GUI na Figura 4.20. Nesta, apesar de serem apresentadas as funcionalidades que ser˜ao utilizadas, estas est˜ao desabilitadas at´e que se carreguem os dados para a mem´oria. Figura 4.20: Janela de apresenta¸c˜ao inicial da GUI. Para carregar os dados para a mem´oria, ´e necess´ario especificar o caminho da base de dados (.db), utilizando o menu ”File”, em que se tem a op¸c˜ao de abrir a base de dados, como mostra na Figura 4.21. Depois de especificado o caminho, o programa come¸car´a ent˜ao a importar os dados, dando-se a indica¸c˜ao de Loading na barra de status at´e finalizar a importa¸c˜ao. 94
Figura 4.21: Procedimento para carregar os dados para a mem´oria, especificando o caminho para a base de dados. Finalizada a importa¸c˜ao dos dados, algumas op¸c˜oes na janela principal estar˜ao desta vez dispon´ıveis, como se mostra na Figura 4.22. Desta vez, est˜ao dispon´ıveis as op¸c˜oes de escolha de datas iniciais e finais, o fator γe ainda a op¸c˜ao de ”Aplicar Defini¸c˜oes”. Esta op¸c˜ao, ent˜ao, executa as restri¸c˜oes necess´arias aos dados, assim como calcula os dados necess´arios para a pr´oxima fase. Deve-se ter em conta ainda que estes procedimentos demorados s˜ao realizados numa segunda thread, de forma a n˜ao interferir com a interatividade da GUI enquanto carrega e calcula os dados. Figura 4.22: Procedimento de escolha das datas iniciais e finais de c´alculo, assim como do fator de γ(”gamma”). 95
Ap´os serem efetuados os c´alculos necess´arios `a pr´oxima fase, a GUI volta a habilitar as outras op¸c˜oes dos passos seguintes da abordagem, como se mostra na Figura 4.23. Desta vez, ´e poss´ıvel fazer o desenho dos gr´aficos com os ”Objeto (atributo)”ordenados por valor crescente de entropia, assim como mostrar a tabela para cada ”Objeto (atributo) de cada tipo de evento, ou seja, uma tabela muito similar ao que deu origem `as Tabelas 4.16, 4.19 e 4.20. Figura 4.23: Interatividade da GUI agora toda dispon´ıvel para o utilizador. Em seguida, na Figura 4.24, ´e mostrada a apresenta¸c˜ao da GUI quando se carregou na op¸c˜ao ”Draw Gr´aficos”. Foi desenhado o gr´afico de barras para os 4 tipos de eventos (erros de device,warnings de device, erros de execution ewarnings de execution). Os gr´aficos contˆem o valor de cada categoria para cada objeto, apresentados de forma ordenada por valor de entropia, como se pode, ali´as, observar. O eixo de baixo dos gr´aficos de barras apresenta-se inicialmente com os nomes sobrepostos. Isto deve-se ao facto de ainda n˜ao estar implementado em pyqtgraph a funcionalidade de os colocar na vertical. 96
Figura 4.24: Imagem ilustrativa da GUI apresentando os gr´aficos de barras da entropia modificada para cada tipo de evento/objeto/categoria, ordenados pelo valor da entropia modificada. No entanto, os gr´aficos s˜ao interativos e pode-se facilmente fazer zoom nas barras `a escolha. A interatividade permite ainda aplicar transforma¸c˜oes, mudar cores, exportar as imagens, entre outras funcionalidades. Algumas delas, encontramse expostas na Figura 4.25. 97
Figura 4.25: Figura demonstrativa da interactividade com os gr´aficos da GUI. Por outro lado, h´a dispon´ıvel ainda a op¸c˜ao de visualizar a tabela com a informa¸c˜ao sobre as categorias dos objetos para cada tipo de evento, fazendo uso da parte inferior da janela principal da GUI. Na Figura 4.26, pode-se ent˜ao observar uma dessas tabelas. S˜ao apresentados no t´ıtulo da janela o tipo de evento, assim como o objeto a que corresponde a an´alise. Na primeira coluna est´a contida a categoria pelo qual foi feita a agrega¸c˜ao. No caso desta tabela, foi selecionada a categoria application id, em que se pode analisar as diferen¸cas entre as diferentes applications, denotadas pelo seu identificador. Nas restantes colunas, ´e mostrada a contagem de eventos (count), o tempo de execu¸c˜ao em dias (timespan), o impacto (impact) da application id em espec´ıfico, ou seja, quantos objetos cont´em aquele identificador (neste caso, s˜ao todos ´unicos, portanto tomam todos o valor de 1) e ainda a probabilidade (prob), que ´e estimada pela raz˜ao do n´umero de eventos pelo tempo de execu¸c˜ao e pelo total de eventos, normalizada ao vetor inteiro. Esta ´ultima, tenta responder `a quest˜ao ”Contando que se colocam todos os dispositivos a executar durante um per´ıodo de tempo igual, qual a probabilidade do pr´oximo evento ser atribu´ıdo ao application id referente a essa linha?” 98
Figura 4.26: Figura demonstrativa da op¸c˜ao de visualizar a tabela correspondente a um evento/objeto/categoria. Finalmente, foi criado um execut´avel com a aplica¸c˜ao GUI, de forma a ser poss´ıvel execut´a-la facilmente. 99
100
Cap´ıtulo 5 Conclus˜oes e Trabalho Futuro 101
Esta disserta¸c˜ao abordou a explora¸c˜ao de m´etricas, objetivos e abordagens para a melhoria da experiˆencia dos utilizadores. A primeira fase teve uma componente principalmente explorat´oria, em que se pretendeu conhecer que m´etricas sobre os dados se devem recolher, fazendo uso do reportado atualmente a n´ıvel cient´ıfico e empresarial. Al´em disso, foram tamb´em explorados os objetivos a que se prop˜oem nos ´ultimos anos os v´arios grupos que se debru¸cam neste tipo de estudo e se de facto estes s˜ao ating´ıveis. Sendo assim, esta disserta¸c˜ao fornece informa¸c˜oes valiosas sobre as m´etricas que a Fujitsu dever´a procurar em termos de dados, bem como os objetivos a que se poder´a e dever´a propor atingir, seja na pr´opria empresa, ou na atividade de consultoria. Foram explorados e expostos ainda algumas abordagens com as diferentes m´etricas e objetivos delineados no Estado de Arte. Quanto `a an´alise de dados propriamente dita, foram encontradas algumas limita¸c˜oes. Em primeiro lugar, foram encontrados graves problemas com a consistˆencia dos dados, nomeadamente a existˆencia de registos em algumas tabelas que deveriam ter o seu correspondente noutras, sendo que n˜ao se encontram nestas ´ultimas. Esta inconsistˆencia n˜ao impediu que se realizasse a an´alise, mas questionaria a validade das extrapola¸c˜oes, caso os resultados da an´alise fossem aplicados `a empresa a que se referem os dados recolhidos. Por outro lado, as limita¸c˜oes tamb´em se verificaram no facto de n˜ao apenas os dados n˜ao conterem as m´etricas necess´arias para aplicar as abordagens e an´alises dispostas na literatura, como por exemplo medidas dos recursos dispon´ıveis aos utilizadores durante as suas tarefas ou medidas relacionadas com a navega¸c˜ao dos utilizadores na elabora¸c˜ao dessas mesmas tarefas, como tamb´em n˜ao estarem dispon´ıveis nos dados, m´etricas expl´ıcitas de avalia¸c˜ao da experiˆencia dos utilizadores, sendo que estas m´etricas eram essenciais para atingir o objetivo primordial da disserta¸c˜ao. Ainda assim, tentou-se encontrar formas indiretas de melhorar a experiˆencia dos utilizadores. Uma delas foi a segmenta¸c˜ao dos utilizadores e dos dispositivos que interagiam com estes, de forma a ser poss´ıvel personalizar a an´alise. Como se observa na Figura 4.16, foram determinados dois grupos de dispositivos cujos utilizadores apresentam elevado n´ıvel de similaridade, com representantes 689 e 848, e onde se podiam estabelecer o que se chama na literatura de personna, e ainda outros 2 grupos mais difuso, com representantes 2876 e 3567. Uma interpreta¸c˜ao mais detalhada desta an´alise n˜ao foi realizada por escassez de informa¸c˜ao acerca dos identificadores das 102
aplica¸c˜oes utilizadas. Uma outra forma indireta debru¸cou-se na tentativa de prever ou de alguma forma entender os erros e warnings que foram registados. A l´ogica seria, diminuindo os erros e warnings a que se expunham os utilizadores, a sua experiˆencia melhoraria. Fazendo uso das m´etricas recolhidas dos objetos, tentou-se prever o n´umero de eventos ao longo do tempo com uma s´erie de algoritmos preditivos do tipo Emsemble com ´arvores de decis˜ao. Esta acabou por se revelar n˜ao ter sido bem sucedida, com as regress˜oes, usando os tais algoritmos de Ensemble, a terem resultados nada satisfat´orios. Este facto sugere que estes eventos dependem de outras caracter´ısticas dos objetos, para al´em das dispon´ıveis nos dados, sendo que conhecer o contexto interno da empresa poderia ter um grande impacto. Sendo assim, a abordagem transitou para desenvolver estrat´egias de isolamento de objetos interessantes no sentido de influenciarem com uma quantidade de eventos (erros e warnings) elevada. Desta forma, poder-se-iam fornecer dicas ao analista de dados da empresa, tendo acesso a informa¸c˜oes internas sobre o contexto dos processos na empresa, conseguindo, portanto, relacionar os desequ´ılibros demonstrados por certos objetos, de forma a avaliar se estes fazem ou n˜ao sentido nos processos da empresa. A ´ultima an´alise (entropia modificada e aplica¸c˜ao de monitoriza¸c˜ao) focouse precisamente neste ponto, tentando encontrar e isolar certos objetos que criam desequilibros nos eventos, resultando numa entropia baixa no vetor em quest˜ao. Isso permite que se realcem estes objetos problem´aticos, focando a aten¸c˜ao e recursos da empresa para os resolver, tendo assim um impacto elevado nos processos da empresa em quest˜ao. Esta an´alise de entropia modificada demonstrou bons resultados e criou expectativas de sucesso a n´ıvel empresarial. Com a aplica¸c˜ao desta t´ecnica, foi poss´ıvel isolar certos devices, e em particular apontar grandes desequ´ılibros, sendo que na Tabela 4.16 se pode verificar que os erros todos surgem dos sistemas operativos de 64bits e na pela Tabela 4.18, onde a platform das applications ou de novo o sistema operativo dos devices s˜ao apontados como pontos que requerem aten¸c˜ao e onde podem existir objetos que est˜ao a criar problemas. Foi ainda desenvolvida uma aplica¸c˜ao GUI que permite auxiliar o processo descrito no par´agrafo anterior. O trabalho futuro dever´a ent˜ao focar-se no melhoramento das limita¸c˜oes demonstradas nesta disserta¸c˜ao, nomeadamente, deve ter-se aten¸c˜ao `a programa¸c˜ao da recolha de m´etricas com valor, ao estabelecimento de objetivos concretos, fazendo103
[47] Tomislav Hengl et al. Random forest as a generic framework for predictive modeling of spatial and spatio-temporal variables. Em: PeerJ 8 (2018). issn: 21678359. doi:10.7717/peerj.5518. [48] Tianqi Chen e Carlos Guestrin. XGBoost: A scalable tree boosting system. Em: Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining 13-17-Augu (2016), pp. 785–794. doi:10.1145/2939672.2939785. arXiv: 1603.02754. [49] Shirin Glader. Machine Learning Basics - Gradient Boosting & XGBoost. 2020. url:https://www.shiringlander.de/2018/11/ml%7B%5C_%7Dbasics%7B%5C_%7Dgbm/. [50] Duncan Greaves. Making Sense of Big Data Using Cluster Analysis. Em: Impact 2019.1 (2019), pp. 25–29. issn: 2058-802X. doi: 10.1080/2058802x.2019.1571299. [51] Kiri Wagstaff et al. Constrained K-means Clustering with Background Knowledge. Em: International Conference on Machine Learning ICML pages (2001), pp. 577–584. url:http://citeseerx.ist.psu.edu/viewdoc/ download?doi=10.1.1.90.4624%7B%5C&%7Drep=rep1%7B%5C&%7Dtype=pdf. [52] Anil K. Jain. Data clustering: 50 years beyond K-means. Em: Pattern Recognition Letters 31.8 (2010), pp. 651–666. issn: 01678655. doi: 10.1016/j.patrec.2009.09.011.url: http://dx.doi.org/10.1016/j.patrec.2009.09.011. [53] Hisashi Kashima et al. K-means clustering of proportional data using L1 distance. Em: Proceedings - International Conference on Pattern Recognition (2009), pp. 1–4. issn: 10514651. doi: 10.1109/icpr.2008.4760982. [54] Jianchang Mao e A.K. Jain. A self-organizing network for hyperellipsoidal clustering (HEC). Em: IEEE Transactions on Neural Networks I.1 (1996), pp. 16–29. [55] Hae Sang Park e Chi Hyuck Jun. A simple and fast algorithm for K-medoids clustering. Em: Expert Systems with Applications 36.2 PART 2 (2009), pp. 3336–3341. issn: 09574174. doi:10.1016/j.eswa.2008.01.039. url:http://dx.doi.org/10.1016/j.eswa.2008.01.039. 110
[56] Linda Musthaler. Nexthink’s digital experience management platform quickly solves performance problems. 2020. url: https://www.networkworld.com/article/3285646/nexthinks-digitalexperience-management-platform-quickly-solves-performanceproblems.html. [57] NXQL Tutorial. 2020. url:https://doc.nexthink.com/Documentation/ Nexthink/latest/APIAndIntegrations/NXQLTutorial. [58] NXQL Data Model. 2020. url:https://doc.nexthink.com/ Documentation/Nexthink/latest/APIAndIntegrations/NXQLDataModel. 111