68
FACULDADE DE E NGENHARIA DA UNIVERSIDADE DO P ORTO Plataforma para Data Mining Colaborativo Hugo Filipe da Silva Matos Mestrado Integrado em Engenharia Informática e Computação Orientador: Rui Camacho (FEUP) 25 de Julho de 2016

Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Plataforma para Data MiningColaborativo

Hugo Filipe da Silva Matos

Mestrado Integrado em Engenharia Informaacutetica e Computaccedilatildeo

Orientador Rui Camacho (FEUP)

25 de Julho de 2016

Plataforma para Data Mining Colaborativo

Hugo Filipe da Silva Matos

Mestrado Integrado em Engenharia Informaacutetica e Computaccedilatildeo

Aprovado em provas puacuteblicas pelo Juacuteri

Presidente Cristina Ribeiro (FEUP)

Arguente Benedita Malheiro (ISEP)

Vogal Rui Camacho (FEUP)25 de Julho de 2016

Abstract

Data Mining practioners use in general a set of algorithms to analyze the various datasetsthey work with It is also frequent that Data Mining practioners in a simple study try out severalalgorithms and run them with different parameter combinations In short Data Mining practionersgenerates a lot of data that may be useful to share with others They are also sometimes involvedin research teams In all these Data Mining investigation aspects a large quantity of informationis produced and can be relevant to other researchers It is then extremely advantageous to thecommunity if each investigator allows the access(controlled by himself) to his data experience re-sults algorithms papers and even computational resources This thesis proposes a platform whichallows sharing valuable information to the Data Mining community as it facilitates collaborativework in big projects

i

ii

Resumo

Praticantes de Data Mining utilizam em geral um conjunto de algoritmos para analisar osdiversos conjuntos de dados com que trabalham Acresce ainda que praticantes de Data Miningnum estudo simples experimentam vaacuterios algoritmos e executam estes com vaacuterias combinaccedilotildeesdiferentes de paracircmetros Em suma praticantes de Data Mining geram enormes quantidades dedados que podem ser uacuteteis ao serem partilhados com outros Estes por vezes estatildeo envolvidos emequipas de investigaccedilatildeo Em todos estes aspectos da investigaccedilatildeo em Data Mining se produz umagrande quantidade de informaccedilatildeo que pode ser relevante para outros investigadores Seraacute poisextremamente vantajoso para a comunidade se cada investigador permitir o acesso (controlado)aos seus dados resultados de experiecircncias algoritmos artigos e mesmo recursos computacionaisEste trabalho de mestrado pretende desenvolver uma plataforma que permita tanto a partilha deinformaccedilatildeo valiosa para a comunidade de Data Mining como a facilitaccedilatildeo de trabalho colaborativoem grandes projectos

iii

iv

Agradecimentos

Os meus agradecimentos vatildeo em primeiro lugar para o meu orientador o professor Rui Ca-macho pela sua disponibilidade e ajuda ao longo de todo o desenvolvimento

Em segundo lugar agradeccedilo aos meus amigos que sempre estiveram presentes e ao meu ladoao longo de toda esta caminhada que culminou nesta dissertaccedilatildeo

Por fim agradeccedilo agrave minha famiacutelia por ter providenciado com tudo o que eu precisei paraatingir este objetivo

Hugo Matos

v

vi

ldquoThe trouble isyou think you have timerdquo

Anonimous

vii

viii

Conteuacutedo

1 Introduccedilatildeo 111 ContextoEnquadramento 112 Motivaccedilatildeo e Objetivos 213 Estrutura da Dissertaccedilatildeo 2

2 Conceitos e tecnologia em Data Mining 321 Data Mining 322 Metadados 1023 Web services 13

231 Web API 1324 Web Framework 1325 Padratildeo de arquitetura MVC 1526 Protocolo FTP 1627 Peer-to-Peer 1828 Sumaacuterio 19

3 Plataforma para Data Mining Colaborativo 2131 Problema 2132 Acircmbito da soluccedilatildeo 2133 Arquitetura da soluccedilatildeo 21

331 Exemplo de arquitetura 22332 Esquemas de metadados 23

34 Implementaccedilatildeo 25341 Diagrama de casos de uso 25342 Diagrama UML de classes 27343 Base de dados 27344 Servidor Web 32345 Servidor FTP 34

35 Resumo e Conclusotildees 35

4 Caso de estudo 3741 Objetivo 3742 Descriccedilatildeo do caso 3743 Especificaccedilatildeo do caso 3844 Interpretaccedilatildeo de resultados 4345 Conclusotildees 43

ix

CONTEUacuteDO

5 Conclusotildees e Trabalho Futuro 4551 Conclusatildeo 4552 Trabalho Futuro 46

Referecircncias 47

x

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 2: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

Hugo Filipe da Silva Matos

Mestrado Integrado em Engenharia Informaacutetica e Computaccedilatildeo

Aprovado em provas puacuteblicas pelo Juacuteri

Presidente Cristina Ribeiro (FEUP)

Arguente Benedita Malheiro (ISEP)

Vogal Rui Camacho (FEUP)25 de Julho de 2016

Abstract

Data Mining practioners use in general a set of algorithms to analyze the various datasetsthey work with It is also frequent that Data Mining practioners in a simple study try out severalalgorithms and run them with different parameter combinations In short Data Mining practionersgenerates a lot of data that may be useful to share with others They are also sometimes involvedin research teams In all these Data Mining investigation aspects a large quantity of informationis produced and can be relevant to other researchers It is then extremely advantageous to thecommunity if each investigator allows the access(controlled by himself) to his data experience re-sults algorithms papers and even computational resources This thesis proposes a platform whichallows sharing valuable information to the Data Mining community as it facilitates collaborativework in big projects

i

ii

Resumo

Praticantes de Data Mining utilizam em geral um conjunto de algoritmos para analisar osdiversos conjuntos de dados com que trabalham Acresce ainda que praticantes de Data Miningnum estudo simples experimentam vaacuterios algoritmos e executam estes com vaacuterias combinaccedilotildeesdiferentes de paracircmetros Em suma praticantes de Data Mining geram enormes quantidades dedados que podem ser uacuteteis ao serem partilhados com outros Estes por vezes estatildeo envolvidos emequipas de investigaccedilatildeo Em todos estes aspectos da investigaccedilatildeo em Data Mining se produz umagrande quantidade de informaccedilatildeo que pode ser relevante para outros investigadores Seraacute poisextremamente vantajoso para a comunidade se cada investigador permitir o acesso (controlado)aos seus dados resultados de experiecircncias algoritmos artigos e mesmo recursos computacionaisEste trabalho de mestrado pretende desenvolver uma plataforma que permita tanto a partilha deinformaccedilatildeo valiosa para a comunidade de Data Mining como a facilitaccedilatildeo de trabalho colaborativoem grandes projectos

iii

iv

Agradecimentos

Os meus agradecimentos vatildeo em primeiro lugar para o meu orientador o professor Rui Ca-macho pela sua disponibilidade e ajuda ao longo de todo o desenvolvimento

Em segundo lugar agradeccedilo aos meus amigos que sempre estiveram presentes e ao meu ladoao longo de toda esta caminhada que culminou nesta dissertaccedilatildeo

Por fim agradeccedilo agrave minha famiacutelia por ter providenciado com tudo o que eu precisei paraatingir este objetivo

Hugo Matos

v

vi

ldquoThe trouble isyou think you have timerdquo

Anonimous

vii

viii

Conteuacutedo

1 Introduccedilatildeo 111 ContextoEnquadramento 112 Motivaccedilatildeo e Objetivos 213 Estrutura da Dissertaccedilatildeo 2

2 Conceitos e tecnologia em Data Mining 321 Data Mining 322 Metadados 1023 Web services 13

231 Web API 1324 Web Framework 1325 Padratildeo de arquitetura MVC 1526 Protocolo FTP 1627 Peer-to-Peer 1828 Sumaacuterio 19

3 Plataforma para Data Mining Colaborativo 2131 Problema 2132 Acircmbito da soluccedilatildeo 2133 Arquitetura da soluccedilatildeo 21

331 Exemplo de arquitetura 22332 Esquemas de metadados 23

34 Implementaccedilatildeo 25341 Diagrama de casos de uso 25342 Diagrama UML de classes 27343 Base de dados 27344 Servidor Web 32345 Servidor FTP 34

35 Resumo e Conclusotildees 35

4 Caso de estudo 3741 Objetivo 3742 Descriccedilatildeo do caso 3743 Especificaccedilatildeo do caso 3844 Interpretaccedilatildeo de resultados 4345 Conclusotildees 43

ix

CONTEUacuteDO

5 Conclusotildees e Trabalho Futuro 4551 Conclusatildeo 4552 Trabalho Futuro 46

Referecircncias 47

x

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 3: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Abstract

Data Mining practioners use in general a set of algorithms to analyze the various datasetsthey work with It is also frequent that Data Mining practioners in a simple study try out severalalgorithms and run them with different parameter combinations In short Data Mining practionersgenerates a lot of data that may be useful to share with others They are also sometimes involvedin research teams In all these Data Mining investigation aspects a large quantity of informationis produced and can be relevant to other researchers It is then extremely advantageous to thecommunity if each investigator allows the access(controlled by himself) to his data experience re-sults algorithms papers and even computational resources This thesis proposes a platform whichallows sharing valuable information to the Data Mining community as it facilitates collaborativework in big projects

i

ii

Resumo

Praticantes de Data Mining utilizam em geral um conjunto de algoritmos para analisar osdiversos conjuntos de dados com que trabalham Acresce ainda que praticantes de Data Miningnum estudo simples experimentam vaacuterios algoritmos e executam estes com vaacuterias combinaccedilotildeesdiferentes de paracircmetros Em suma praticantes de Data Mining geram enormes quantidades dedados que podem ser uacuteteis ao serem partilhados com outros Estes por vezes estatildeo envolvidos emequipas de investigaccedilatildeo Em todos estes aspectos da investigaccedilatildeo em Data Mining se produz umagrande quantidade de informaccedilatildeo que pode ser relevante para outros investigadores Seraacute poisextremamente vantajoso para a comunidade se cada investigador permitir o acesso (controlado)aos seus dados resultados de experiecircncias algoritmos artigos e mesmo recursos computacionaisEste trabalho de mestrado pretende desenvolver uma plataforma que permita tanto a partilha deinformaccedilatildeo valiosa para a comunidade de Data Mining como a facilitaccedilatildeo de trabalho colaborativoem grandes projectos

iii

iv

Agradecimentos

Os meus agradecimentos vatildeo em primeiro lugar para o meu orientador o professor Rui Ca-macho pela sua disponibilidade e ajuda ao longo de todo o desenvolvimento

Em segundo lugar agradeccedilo aos meus amigos que sempre estiveram presentes e ao meu ladoao longo de toda esta caminhada que culminou nesta dissertaccedilatildeo

Por fim agradeccedilo agrave minha famiacutelia por ter providenciado com tudo o que eu precisei paraatingir este objetivo

Hugo Matos

v

vi

ldquoThe trouble isyou think you have timerdquo

Anonimous

vii

viii

Conteuacutedo

1 Introduccedilatildeo 111 ContextoEnquadramento 112 Motivaccedilatildeo e Objetivos 213 Estrutura da Dissertaccedilatildeo 2

2 Conceitos e tecnologia em Data Mining 321 Data Mining 322 Metadados 1023 Web services 13

231 Web API 1324 Web Framework 1325 Padratildeo de arquitetura MVC 1526 Protocolo FTP 1627 Peer-to-Peer 1828 Sumaacuterio 19

3 Plataforma para Data Mining Colaborativo 2131 Problema 2132 Acircmbito da soluccedilatildeo 2133 Arquitetura da soluccedilatildeo 21

331 Exemplo de arquitetura 22332 Esquemas de metadados 23

34 Implementaccedilatildeo 25341 Diagrama de casos de uso 25342 Diagrama UML de classes 27343 Base de dados 27344 Servidor Web 32345 Servidor FTP 34

35 Resumo e Conclusotildees 35

4 Caso de estudo 3741 Objetivo 3742 Descriccedilatildeo do caso 3743 Especificaccedilatildeo do caso 3844 Interpretaccedilatildeo de resultados 4345 Conclusotildees 43

ix

CONTEUacuteDO

5 Conclusotildees e Trabalho Futuro 4551 Conclusatildeo 4552 Trabalho Futuro 46

Referecircncias 47

x

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 4: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

ii

Resumo

Praticantes de Data Mining utilizam em geral um conjunto de algoritmos para analisar osdiversos conjuntos de dados com que trabalham Acresce ainda que praticantes de Data Miningnum estudo simples experimentam vaacuterios algoritmos e executam estes com vaacuterias combinaccedilotildeesdiferentes de paracircmetros Em suma praticantes de Data Mining geram enormes quantidades dedados que podem ser uacuteteis ao serem partilhados com outros Estes por vezes estatildeo envolvidos emequipas de investigaccedilatildeo Em todos estes aspectos da investigaccedilatildeo em Data Mining se produz umagrande quantidade de informaccedilatildeo que pode ser relevante para outros investigadores Seraacute poisextremamente vantajoso para a comunidade se cada investigador permitir o acesso (controlado)aos seus dados resultados de experiecircncias algoritmos artigos e mesmo recursos computacionaisEste trabalho de mestrado pretende desenvolver uma plataforma que permita tanto a partilha deinformaccedilatildeo valiosa para a comunidade de Data Mining como a facilitaccedilatildeo de trabalho colaborativoem grandes projectos

iii

iv

Agradecimentos

Os meus agradecimentos vatildeo em primeiro lugar para o meu orientador o professor Rui Ca-macho pela sua disponibilidade e ajuda ao longo de todo o desenvolvimento

Em segundo lugar agradeccedilo aos meus amigos que sempre estiveram presentes e ao meu ladoao longo de toda esta caminhada que culminou nesta dissertaccedilatildeo

Por fim agradeccedilo agrave minha famiacutelia por ter providenciado com tudo o que eu precisei paraatingir este objetivo

Hugo Matos

v

vi

ldquoThe trouble isyou think you have timerdquo

Anonimous

vii

viii

Conteuacutedo

1 Introduccedilatildeo 111 ContextoEnquadramento 112 Motivaccedilatildeo e Objetivos 213 Estrutura da Dissertaccedilatildeo 2

2 Conceitos e tecnologia em Data Mining 321 Data Mining 322 Metadados 1023 Web services 13

231 Web API 1324 Web Framework 1325 Padratildeo de arquitetura MVC 1526 Protocolo FTP 1627 Peer-to-Peer 1828 Sumaacuterio 19

3 Plataforma para Data Mining Colaborativo 2131 Problema 2132 Acircmbito da soluccedilatildeo 2133 Arquitetura da soluccedilatildeo 21

331 Exemplo de arquitetura 22332 Esquemas de metadados 23

34 Implementaccedilatildeo 25341 Diagrama de casos de uso 25342 Diagrama UML de classes 27343 Base de dados 27344 Servidor Web 32345 Servidor FTP 34

35 Resumo e Conclusotildees 35

4 Caso de estudo 3741 Objetivo 3742 Descriccedilatildeo do caso 3743 Especificaccedilatildeo do caso 3844 Interpretaccedilatildeo de resultados 4345 Conclusotildees 43

ix

CONTEUacuteDO

5 Conclusotildees e Trabalho Futuro 4551 Conclusatildeo 4552 Trabalho Futuro 46

Referecircncias 47

x

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 5: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Resumo

Praticantes de Data Mining utilizam em geral um conjunto de algoritmos para analisar osdiversos conjuntos de dados com que trabalham Acresce ainda que praticantes de Data Miningnum estudo simples experimentam vaacuterios algoritmos e executam estes com vaacuterias combinaccedilotildeesdiferentes de paracircmetros Em suma praticantes de Data Mining geram enormes quantidades dedados que podem ser uacuteteis ao serem partilhados com outros Estes por vezes estatildeo envolvidos emequipas de investigaccedilatildeo Em todos estes aspectos da investigaccedilatildeo em Data Mining se produz umagrande quantidade de informaccedilatildeo que pode ser relevante para outros investigadores Seraacute poisextremamente vantajoso para a comunidade se cada investigador permitir o acesso (controlado)aos seus dados resultados de experiecircncias algoritmos artigos e mesmo recursos computacionaisEste trabalho de mestrado pretende desenvolver uma plataforma que permita tanto a partilha deinformaccedilatildeo valiosa para a comunidade de Data Mining como a facilitaccedilatildeo de trabalho colaborativoem grandes projectos

iii

iv

Agradecimentos

Os meus agradecimentos vatildeo em primeiro lugar para o meu orientador o professor Rui Ca-macho pela sua disponibilidade e ajuda ao longo de todo o desenvolvimento

Em segundo lugar agradeccedilo aos meus amigos que sempre estiveram presentes e ao meu ladoao longo de toda esta caminhada que culminou nesta dissertaccedilatildeo

Por fim agradeccedilo agrave minha famiacutelia por ter providenciado com tudo o que eu precisei paraatingir este objetivo

Hugo Matos

v

vi

ldquoThe trouble isyou think you have timerdquo

Anonimous

vii

viii

Conteuacutedo

1 Introduccedilatildeo 111 ContextoEnquadramento 112 Motivaccedilatildeo e Objetivos 213 Estrutura da Dissertaccedilatildeo 2

2 Conceitos e tecnologia em Data Mining 321 Data Mining 322 Metadados 1023 Web services 13

231 Web API 1324 Web Framework 1325 Padratildeo de arquitetura MVC 1526 Protocolo FTP 1627 Peer-to-Peer 1828 Sumaacuterio 19

3 Plataforma para Data Mining Colaborativo 2131 Problema 2132 Acircmbito da soluccedilatildeo 2133 Arquitetura da soluccedilatildeo 21

331 Exemplo de arquitetura 22332 Esquemas de metadados 23

34 Implementaccedilatildeo 25341 Diagrama de casos de uso 25342 Diagrama UML de classes 27343 Base de dados 27344 Servidor Web 32345 Servidor FTP 34

35 Resumo e Conclusotildees 35

4 Caso de estudo 3741 Objetivo 3742 Descriccedilatildeo do caso 3743 Especificaccedilatildeo do caso 3844 Interpretaccedilatildeo de resultados 4345 Conclusotildees 43

ix

CONTEUacuteDO

5 Conclusotildees e Trabalho Futuro 4551 Conclusatildeo 4552 Trabalho Futuro 46

Referecircncias 47

x

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 6: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

iv

Agradecimentos

Os meus agradecimentos vatildeo em primeiro lugar para o meu orientador o professor Rui Ca-macho pela sua disponibilidade e ajuda ao longo de todo o desenvolvimento

Em segundo lugar agradeccedilo aos meus amigos que sempre estiveram presentes e ao meu ladoao longo de toda esta caminhada que culminou nesta dissertaccedilatildeo

Por fim agradeccedilo agrave minha famiacutelia por ter providenciado com tudo o que eu precisei paraatingir este objetivo

Hugo Matos

v

vi

ldquoThe trouble isyou think you have timerdquo

Anonimous

vii

viii

Conteuacutedo

1 Introduccedilatildeo 111 ContextoEnquadramento 112 Motivaccedilatildeo e Objetivos 213 Estrutura da Dissertaccedilatildeo 2

2 Conceitos e tecnologia em Data Mining 321 Data Mining 322 Metadados 1023 Web services 13

231 Web API 1324 Web Framework 1325 Padratildeo de arquitetura MVC 1526 Protocolo FTP 1627 Peer-to-Peer 1828 Sumaacuterio 19

3 Plataforma para Data Mining Colaborativo 2131 Problema 2132 Acircmbito da soluccedilatildeo 2133 Arquitetura da soluccedilatildeo 21

331 Exemplo de arquitetura 22332 Esquemas de metadados 23

34 Implementaccedilatildeo 25341 Diagrama de casos de uso 25342 Diagrama UML de classes 27343 Base de dados 27344 Servidor Web 32345 Servidor FTP 34

35 Resumo e Conclusotildees 35

4 Caso de estudo 3741 Objetivo 3742 Descriccedilatildeo do caso 3743 Especificaccedilatildeo do caso 3844 Interpretaccedilatildeo de resultados 4345 Conclusotildees 43

ix

CONTEUacuteDO

5 Conclusotildees e Trabalho Futuro 4551 Conclusatildeo 4552 Trabalho Futuro 46

Referecircncias 47

x

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 7: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Agradecimentos

Os meus agradecimentos vatildeo em primeiro lugar para o meu orientador o professor Rui Ca-macho pela sua disponibilidade e ajuda ao longo de todo o desenvolvimento

Em segundo lugar agradeccedilo aos meus amigos que sempre estiveram presentes e ao meu ladoao longo de toda esta caminhada que culminou nesta dissertaccedilatildeo

Por fim agradeccedilo agrave minha famiacutelia por ter providenciado com tudo o que eu precisei paraatingir este objetivo

Hugo Matos

v

vi

ldquoThe trouble isyou think you have timerdquo

Anonimous

vii

viii

Conteuacutedo

1 Introduccedilatildeo 111 ContextoEnquadramento 112 Motivaccedilatildeo e Objetivos 213 Estrutura da Dissertaccedilatildeo 2

2 Conceitos e tecnologia em Data Mining 321 Data Mining 322 Metadados 1023 Web services 13

231 Web API 1324 Web Framework 1325 Padratildeo de arquitetura MVC 1526 Protocolo FTP 1627 Peer-to-Peer 1828 Sumaacuterio 19

3 Plataforma para Data Mining Colaborativo 2131 Problema 2132 Acircmbito da soluccedilatildeo 2133 Arquitetura da soluccedilatildeo 21

331 Exemplo de arquitetura 22332 Esquemas de metadados 23

34 Implementaccedilatildeo 25341 Diagrama de casos de uso 25342 Diagrama UML de classes 27343 Base de dados 27344 Servidor Web 32345 Servidor FTP 34

35 Resumo e Conclusotildees 35

4 Caso de estudo 3741 Objetivo 3742 Descriccedilatildeo do caso 3743 Especificaccedilatildeo do caso 3844 Interpretaccedilatildeo de resultados 4345 Conclusotildees 43

ix

CONTEUacuteDO

5 Conclusotildees e Trabalho Futuro 4551 Conclusatildeo 4552 Trabalho Futuro 46

Referecircncias 47

x

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 8: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

vi

ldquoThe trouble isyou think you have timerdquo

Anonimous

vii

viii

Conteuacutedo

1 Introduccedilatildeo 111 ContextoEnquadramento 112 Motivaccedilatildeo e Objetivos 213 Estrutura da Dissertaccedilatildeo 2

2 Conceitos e tecnologia em Data Mining 321 Data Mining 322 Metadados 1023 Web services 13

231 Web API 1324 Web Framework 1325 Padratildeo de arquitetura MVC 1526 Protocolo FTP 1627 Peer-to-Peer 1828 Sumaacuterio 19

3 Plataforma para Data Mining Colaborativo 2131 Problema 2132 Acircmbito da soluccedilatildeo 2133 Arquitetura da soluccedilatildeo 21

331 Exemplo de arquitetura 22332 Esquemas de metadados 23

34 Implementaccedilatildeo 25341 Diagrama de casos de uso 25342 Diagrama UML de classes 27343 Base de dados 27344 Servidor Web 32345 Servidor FTP 34

35 Resumo e Conclusotildees 35

4 Caso de estudo 3741 Objetivo 3742 Descriccedilatildeo do caso 3743 Especificaccedilatildeo do caso 3844 Interpretaccedilatildeo de resultados 4345 Conclusotildees 43

ix

CONTEUacuteDO

5 Conclusotildees e Trabalho Futuro 4551 Conclusatildeo 4552 Trabalho Futuro 46

Referecircncias 47

x

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 9: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

ldquoThe trouble isyou think you have timerdquo

Anonimous

vii

viii

Conteuacutedo

1 Introduccedilatildeo 111 ContextoEnquadramento 112 Motivaccedilatildeo e Objetivos 213 Estrutura da Dissertaccedilatildeo 2

2 Conceitos e tecnologia em Data Mining 321 Data Mining 322 Metadados 1023 Web services 13

231 Web API 1324 Web Framework 1325 Padratildeo de arquitetura MVC 1526 Protocolo FTP 1627 Peer-to-Peer 1828 Sumaacuterio 19

3 Plataforma para Data Mining Colaborativo 2131 Problema 2132 Acircmbito da soluccedilatildeo 2133 Arquitetura da soluccedilatildeo 21

331 Exemplo de arquitetura 22332 Esquemas de metadados 23

34 Implementaccedilatildeo 25341 Diagrama de casos de uso 25342 Diagrama UML de classes 27343 Base de dados 27344 Servidor Web 32345 Servidor FTP 34

35 Resumo e Conclusotildees 35

4 Caso de estudo 3741 Objetivo 3742 Descriccedilatildeo do caso 3743 Especificaccedilatildeo do caso 3844 Interpretaccedilatildeo de resultados 4345 Conclusotildees 43

ix

CONTEUacuteDO

5 Conclusotildees e Trabalho Futuro 4551 Conclusatildeo 4552 Trabalho Futuro 46

Referecircncias 47

x

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 10: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

viii

Conteuacutedo

1 Introduccedilatildeo 111 ContextoEnquadramento 112 Motivaccedilatildeo e Objetivos 213 Estrutura da Dissertaccedilatildeo 2

2 Conceitos e tecnologia em Data Mining 321 Data Mining 322 Metadados 1023 Web services 13

231 Web API 1324 Web Framework 1325 Padratildeo de arquitetura MVC 1526 Protocolo FTP 1627 Peer-to-Peer 1828 Sumaacuterio 19

3 Plataforma para Data Mining Colaborativo 2131 Problema 2132 Acircmbito da soluccedilatildeo 2133 Arquitetura da soluccedilatildeo 21

331 Exemplo de arquitetura 22332 Esquemas de metadados 23

34 Implementaccedilatildeo 25341 Diagrama de casos de uso 25342 Diagrama UML de classes 27343 Base de dados 27344 Servidor Web 32345 Servidor FTP 34

35 Resumo e Conclusotildees 35

4 Caso de estudo 3741 Objetivo 3742 Descriccedilatildeo do caso 3743 Especificaccedilatildeo do caso 3844 Interpretaccedilatildeo de resultados 4345 Conclusotildees 43

ix

CONTEUacuteDO

5 Conclusotildees e Trabalho Futuro 4551 Conclusatildeo 4552 Trabalho Futuro 46

Referecircncias 47

x

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 11: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conteuacutedo

1 Introduccedilatildeo 111 ContextoEnquadramento 112 Motivaccedilatildeo e Objetivos 213 Estrutura da Dissertaccedilatildeo 2

2 Conceitos e tecnologia em Data Mining 321 Data Mining 322 Metadados 1023 Web services 13

231 Web API 1324 Web Framework 1325 Padratildeo de arquitetura MVC 1526 Protocolo FTP 1627 Peer-to-Peer 1828 Sumaacuterio 19

3 Plataforma para Data Mining Colaborativo 2131 Problema 2132 Acircmbito da soluccedilatildeo 2133 Arquitetura da soluccedilatildeo 21

331 Exemplo de arquitetura 22332 Esquemas de metadados 23

34 Implementaccedilatildeo 25341 Diagrama de casos de uso 25342 Diagrama UML de classes 27343 Base de dados 27344 Servidor Web 32345 Servidor FTP 34

35 Resumo e Conclusotildees 35

4 Caso de estudo 3741 Objetivo 3742 Descriccedilatildeo do caso 3743 Especificaccedilatildeo do caso 3844 Interpretaccedilatildeo de resultados 4345 Conclusotildees 43

ix

CONTEUacuteDO

5 Conclusotildees e Trabalho Futuro 4551 Conclusatildeo 4552 Trabalho Futuro 46

Referecircncias 47

x

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 12: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

CONTEUacuteDO

5 Conclusotildees e Trabalho Futuro 4551 Conclusatildeo 4552 Trabalho Futuro 46

Referecircncias 47

x

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 13: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Lista de Figuras

21 Data Mining como um processo de descoberta de conhecimento [HK06] 422 Diagrama do processo CRISP-DM [Wik16a] 523 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b] 1424 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC1 1525 Diagrama duma rede baseada em P2P 2 1826 Diagrama duma rede baseada num servidor central 3 18

31 Arquitectura da Soluccedilatildeo Proposta 2232 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo 2633 Diagrama UML de classes 2734 Artigos 2735 Algoritmos 2836 Datasets 2837 Recursos computacionais 2838 Resultados de experiecircncias 2939 Ficheiros 30

41 Homepage da plataforma Web 3842 Paacutegina de artigos 3943 Secccedilatildeo da paacutegina de artigos contendo um ficheiro 4044 Formulaacuterio de upload de artigos 4145 Paacutegina de artigos com artigo listado 4246 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autor

Rocha 4247 Paacutegina de detalhe dum artigo 43

xi

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 14: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

LISTA DE FIGURAS

xii

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 15: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Lista de Tabelas

21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks 17

xiii

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 16: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

LISTA DE TABELAS

xiv

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 17: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Abreviaturas e Siacutembolos

ANN Artificial Neural NetworkAPI Application Programming InterfaceCPU Central Processing UnitCRISP-DM Cross Industry Standard Process for Data MiningDCMES Dublin Core Metadata Element SetDM Data MiningDT Decision TreesFTP File Transfer ProtocolGUI Graphical User InterfaceHTML HyperText Markup LanguageHTTP Hypertext Transfer ProtocolILP Inductive Logic ProgrammingIP Internet ProtocolJSON JavaScript Object NotationKDD Knowledge Discovery Databasek-NN k-Nearest NeighborsML Machine LearningMVC Model View ControllerP2P Peer to PeerRAM Random Access MemoryREST Representational State TransferRF Random ForestSVM Support Vector MachineURL Uniform Resource LocatorURN Uniform Resource NameXML eXtensible Markup LanguageWS Web Service

xv

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 18: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Capiacutetulo 1

Introduccedilatildeo

Esta dissertaccedilatildeo insere-se na aacuterea de Data Mining(DM)1 colaborativo focando-se na criaccedilatildeo

duma plataforma inovadora que permita a partilha de recursos entre investigadores relacionados

com esta aacuterea de estudo procurando tornar o trabalho do utilizador de DM mais eficiente

11 ContextoEnquadramento

O trabalho colaborativo eacute atualmente uma metodologia extremamente relevante para o desen-

volvimento cientiacutefico e empresarial A colaboraccedilatildeo permite a rentabilizaccedilatildeo de recursos partilha

de experiecircncias que por fim levam agrave abreviaccedilatildeo da produccedilatildeo de resultados

Embora haja hoje em dia tecnologias de viacutedeo conferecircncia que permitem evitar as reuniotildees

presenciais e assim reduzir custos do trabalho colaborativo estas tecircm limitaccedilotildees sobretudo para

colaboraccedilotildees envolvendo elevado nuacutemero de participantes Algumas desvantagens incluem obri-

gaccedilatildeo de definir uma datahoraacuterio comum a indiviacuteduos que muitas vezes tecircm horaacuterio jaacute preen-

chidos disponibilizar instalaccedilotildees (como salas de reuniatildeo) para um grande nuacutemero de indiviacuteduos

etc

Projetos de DM requerem geralmente grandes quantidades de dados de vaacuterios tipos e envol-

vem uma seacuterie de operaccedilotildees para os analisar Por vezes eacute necessaacuteria a partilha dos mesmos entre

um grupo de trabalho ou participantes no projeto No entanto existe a dificuldade de manter um

registo atualizado sobre quais dados que estatildeo a ser trabalhados e por quem os estaacute a trabalhar

O trabalho proposto consiste em desenvolver uma plataforma computacional que permita a

realizaccedilatildeo de trabalho colaborativo em projetos de DM

1Data Mining eacute uma das fases do processo completo da anaacutelise de dados conhecido por Knowlegde Discovery inDatabases(KDD) Eacute vulgar na literatura KDD e DM serem usados de modo equivalente Nesta dissertaccedilatildeo sempre quenatildeo for necessaacuterio distinguir os dois termos usaremos o termo DM para definir tanto o processo completo de anaacutelisede dados como a parte onde satildeo construiacutedos os modelos para dados

1

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 19: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Introduccedilatildeo

12 Motivaccedilatildeo e Objetivos

O principal objetivo deste trabalho eacute o desenho e a implementaccedilatildeo de uma plataforma compu-

tacional para trabalho colaborativo em DM A plataforma seraacute baseada em Web services permitiraacute

troca segura de informaccedilotildees e dados usando pedidos credenciados definiccedilatildeo de uma aacuterea de da-

dos privada e outra puacuteblica motores de busca de informaccedilatildeo e partilha de recursos computacionais

entre os colaboradores

Sendo que atualmente natildeo existe nenhuma outra plataforma orientada para este tipo de tra-

balho

A metodologia para a prossecuccedilatildeo dos objetivos consiste em primeiro lugar numa anaacutelise

do estado da arte relativo ao desenvolvimento da plataforma colaborativa no acircmbito do DM De

seguida a especificaccedilatildeo das funcionalidades da plataforma a desenvolver complementando com

uma proposta duma arquitetura para a plataforma Por fim a implementaccedilatildeo do protoacutetipo e o teste

da plataforma usando um caso de estudo

13 Estrutura da Dissertaccedilatildeo

Para aleacutem da introduccedilatildeo esta dissertaccedilatildeo conteacutem mais 4 capiacutetulos No Capiacutetulo 2 satildeo apre-

sentados os conceitos terminologias ferramentas e trabalhos relacionados com o tema da tese

No Capiacutetulo 3 eacute apresentada a descriccedilatildeo da soluccedilatildeo do problema No Capiacutetulo 4 satildeo apresenta-

dos casos de estudo No Capiacutetulo 5 conclui-se a dissertaccedilatildeo sumarizando os resultados obtidos e

propondo trabalho futuro

2

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 20: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Capiacutetulo 2

Conceitos e tecnologia em Data Mining

Os Projetos de Data Mining (DM) requerem normalmente um estudo preacutevio do problema a

resolver e a recolha tratamento e anaacutelise dos dados O objetivo eacute identificar ou construir a partir

dos dados conhecimento que seja uacutetil para o utilizador final

Com o crescimento e aperfeiccediloamento da tecnologia de recolha de dados diversificando os

dispositivos sensores formatos diferentes maior nuacutemero de aplicaccedilotildees a quantidade de dados

recolhida e armazenada eacute hoje imensa e requer teacutecnicas sofisticadas de recolha e processamento

desses dados[FB13]

O DM natildeo seria possiacutevel sem grandes conjuntos de dados e Big Data estaacute diretamente relaci-

onada com as aplicaccedilotildees de DM

21 Data Mining

O DM eacute um processo que se refere agrave extraccedilatildeo de conhecimento atraveacutes de grandes conjuntos

de dados [HK06] O DM tambeacutem representa uma forma de resolver problemas usando dados

sendo considerado normalmente uma atividade criativa Sendo parecida com praacuteticas de desco-

berta cientiacutefica e usando teacutecnicas como induccedilatildeo com o objetivo de propor hipoacuteteses que ajudem

agrave perceccedilatildeo do problema e finalmente agrave chegada a uma soluccedilatildeo [Moy05]

O processo de DM eacute por vezes designado Knowledge Discovery in Databases (KDD) e eacute

constituiacutedo por vaacuterias fases seleccedilatildeo preacute-processamento transformaccedilatildeo construccedilatildeo de modelos

interpretaccedilatildeo [FU96] Um exemplo pode ser visto na figura 21

Existem inuacutemeros sistemas de DM e estes podem ser classificados de acordo com os tipos de

dados analisados tipos de conhecimento a ser adquirido ou pelas teacutecnicas utilizadas [HK06]

Cross Industry Standard Process for Data Mining

O Cross Industry Standard Process for Data Mining CRISP-DM eacute uma metodologia de DM

que descreve abordagens geralmente usadas por especialistas em DM Um diagrama do processo

CRISP-DM pode ser visto na figura 22

3

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 21: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

Figura 21 Data Mining como um processo de descoberta de conhecimento [HK06]

Este processo tem as seguintes fases [Wik16a]

bull Entender o Negoacutecio foca no entendimento e especificaccedilatildeo dos objetivos do projeto a partir

de uma perspetiva de negoacutecios definindo um plano preliminar para atingir os objetivos

bull Entender os Dados recolhimento de dados e iniacutecio de atividades para familiarizaccedilatildeo com

os dados identificando problemas ou conjuntos interessantes

bull Preparar dos Dados construccedilatildeo do conjunto de dados final a partir dos dados iniciais Nor-

malmente ocorre vaacuterias vezes no processo

bull Modelar vaacuterias teacutecnicas de construccedilatildeo de modelos satildeo aplicadas e os seus paracircmetros

calibrados para otimizaccedilatildeo Assim eacute comum retornar agrave Preparaccedilatildeo dos Dados durante esta

fase

bull Avaliaccedilatildeo no passo anterior eacute construiacutedo um modelo com grande qualidade de uma perspe-

tiva de anaacutelise de dados No entanto eacute necessaacuterio verificar se o modelo atinge os objetivos

do negoacutecio

bull Desenvolvimento o conhecimento adquirido pelo modelo eacute organizado e apresentado de

uma maneira que o cliente possa utilizar

Tipos de tarefas de DM

As tarefas mais importantes em DM satildeo[MR11]

bull Aprendizagem supervisionada quando satildeo conhecidas as variaacuteveis de output(classes) do

dataset incluindo

4

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 22: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

Figura 22 Diagrama do processo CRISP-DM [Wik16a]

ndash Classificaccedilatildeo previsatildeo das classes tipicamente as variaacuteveis de output satildeo programa-

das de forma a gerarem um nuacutemero inteiro

ndash Classificaccedilatildeo fuzzy associaccedilotildees graduais de valores entre 0 e 1 aplicados a diferentes

classes

ndash Regressatildeo prediccedilatildeo das classes na forma dum valor real incluindo casos especiais de

previsatildeo de valores numa seacuterio temporal atraveacutes de valores recentes ou do passado

bull Aprendizagem natildeo supervisionada quando natildeo satildeo conhecidas as variaacuteveis de output do

dataset incluindo

ndash Clustering encontra e descreve grupos de exemplos semelhantes em dados usando

algoritmos de clustering

ndash Associaccedilatildeo encontra grupos de items que ocorrem frequentemente juntos em exem-

plos

bull Aprendizagem semi-supervisionada onde as variaacuteveis de output satildeo conhecidas apenas em

alguns exemplos

Cada uma destas tarefas consiste numa cadeia de tarefas de baixo niacutevel Aleacutem disso algumas

destas tarefas atuam stand-alone por exemplo identificando num dataset extenso elementos que

possuem um niacutevel de semelhanccedila alto

Exemplos destas tarefas de baixo niacutevel

bull Limpeza de dados(eg deteccedilatildeo de ruiacutedo)

bull Filtraccedilatildeo de dados

5

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 23: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

bull Extraccedilatildeo de caracteriacutesticas de seacuteries temporais imagens viacutedeos(pex consistindo na seg-

mentaccedilatildeo e descriccedilatildeo de segmentos em imagens)

bull Transformaccedilatildeo de caracteriacutesticas(eg operaccedilotildees matemaacuteticas incluindo logaritmos redu-

ccedilatildeo de dimensotildees atraveacutes de combinaccedilotildees lineares ou natildeo-lineares dum componente princi-

pal da anaacutelise)

bull Avaliaccedilatildeo e seleccedilatildeo de caracteriacutesticas

bull Computaccedilatildeo de semelhanccedilas e deteccedilatildeo dos elementos mais parecidos em termos de exem-

plos ou caracteriacutesticas(eg por meacutetodos k-nearest-neighbor e anaacutelise de correlaccedilatildeo)

bull Validaccedilatildeo de modelos(cross validation bootstrap-ping testes de relevacircncia estatiacutestica e

medidas de complexidade)

bull Fusatildeo de modelos

bull Otimizaccedilatildeo de modelos(eg por algoritmos evolucionaacuterios)

Ferramentas de DM

As ferramentas de DM podem ser subdivididas em soluccedilotildees clienteservidor e stand-alone

As soluccedilotildees clienteservidor dominam especialmente em produtos concebidos para utilizadores

empresariais Estes estatildeo disponiacuteveis para diferentes plataformas incluindo Windows Mac OS

Linux ou estruturas especiais de supercomputadores Existe um nuacutemero crescente de sistemas

Java-based independentes da plataforma para investigadores[MR11]

Na votaccedilatildeo rsquoData MiningAnalytic tools used poll 2010rsquo pela KDnuggets com 912 votos1 o

top 10 de ferramentas RapidMiner2 R3Excel4 KNIME5 WEKA6 SAS7 MATLAB8IBM SPSS

Statistics9 IBM SPSS Modeler10 Microsoft SQL Server11

Teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos

Em DM existem vaacuterias teacutecnicas e meacutetodos de avaliaccedilatildeo de modelos que tecircm como objetivo

assegurar que as taxas de sucesso dos algoritmos tecircm fundamentos praacuteticos ou seja fornecer-lhes

credibilidade[WF05]1httpwwwkdnuggetscompolls2010data-mining-analytics-toolshtml2wwwrapidminercom3wwwr-projectorg4wwwmicrosoftcomexcel5wwwknimeorg6sourceforgenetprojectsweka7wwwsascomproductsminer8wwwmathworkscom9wwwspsscomsoftwarestatistics

10wwwspsscomsoftwaremodelingmodeler11wwwmicrosoftcomsql

6

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 24: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

Holdout

Considerando a quantidade de dados disponiacuteveis para treino e teste este meacutetodo reserva uma

parte dos dados para teste e usa o restante para treino (guardando se necessaacuterio uma parte dos

dados de treino para validaccedilatildeo) Em termos praacuteticos eacute comum guardar-se um terccedilo dos dados para

teste e os restantes dois terccedilos dos dados para treino Contudo esta teacutecnica natildeo eacute completamente

fiaacutevel pois a amostra usada para treino (ou teste) pode natildeo ser representativa Normalmente natildeo

eacute possiacutevel determinar se uma amostra eacute representativa ou natildeo No entanto existe uma teacutecnica

que tenta mitigar esta situaccedilatildeo cada classe no dataset deve estar representada na proporccedilatildeo certa

tanto no conjunto de treino como no de teste

Cross-validation

Uma forma de mitigar qualquer influecircncia causada por uma amostra escolhida para o meacutetodo

holdout eacute repetir todo o processo treino e teste vaacuterias vezes como amostras aleatoacuterias diferentes

Em cada iteraccedilatildeo duma certa proporccedilatildeo por exemplo dois terccedilos dos dados eacute aleatoriamente

selecionada para treino possivelmente com estratificaccedilatildeo e o resto usado para teste As taxas

de erro nas diferentes iteraccedilotildees satildeo equacionadas para se obter uma taxa de erro geral Contudo

uma variante simples forma a base da teacutecnica cross-validation No meacutetodo cross-validation eacute

decidido um nuacutemero fixo de folds ou particcedilotildees dos dados Depois os dados satildeo divididos em

aproximadamente 3 particcedilotildees iguais e em cada turno satildeo usadas para teste e o resto eacute usado para

treino Ou seja usa dois terccedilos para treino e um terccedilo para teste repetindo este procedimento

trecircs vezes para que no fim cada instacircncia tenha sido usada exatamente uma vez para teste Este

exemplo eacute chamado threefold cross-validation sendo que o nuacutemero de folds pode ser aumentado

para um nuacutemero adequado e suscetiacutevel dos dados que estatildeo a ser usados

O tipo de cross-validation mais usado eacute o 10-fold cross-validation Este nuacutemero (10) proveacutem

de variados testes executados em diferentes datasets que mostraram que este eacute o nuacutemero correto

de folds de modo a obter a melhor estimativa de erro[WF05]

Leave-one-out

Leave-one-out cross-validation eacute simplesmente n-fold cross-validation onde n eacute o nuacutemero

de exemplos no dataset Um dos exemplos eacute deixado de lado em cada turno e o meacutetodo de

aprendizagem eacute treinado para todos os restantes exemplos Eacute entatildeo avaliada pela sua exatidatildeo

nesses exemplos - um ou zero por sucesso ou falha respetivamente Os resultados de todos os n

julgamentos um por cada membro do dataset satildeo equacionados e a meacutedia representa a estimativa

de erro final[WF05]

Bootstrap

A ideia por traacutes do meacutetodo bootstrap eacute testar o dataset com um substituto para formar a

amostra de treino Nisto um dataset com n exemplos eacute testado n vezes com o substituto para

7

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 25: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

formar outro dataset com n exemplos Dado que alguns elementos neste segundo dataset estaratildeo

repetidos eacute necessaacuterio que alguns exemplos no dataset original natildeo sejam escolhidos estes seratildeo

os exemplos de teste

Data Mining Colaborativo

A colaboraccedilatildeo eacute o ato de trabalhar junto com uma ou vaacuterias pessoas com o objetivo de alcanccedilar

um fim [Moy05] Para explorar ao maacuteximo a colaboraccedilatildeo remota deve-se tirar vantagem dos

diferentes envolvimentos que cada membro tem numa aplicaccedilatildeo particular Estes princiacutepios guiam

a criaccedilatildeo duma framework de colaboraccedilatildeo

bull Comeccedilar e acabar em qualquer altura mdash Toda a informaccedilatildeo sobre o problema de DM a

ser tratado tem de estar disponiacutevel a qualquer altura ou seja todos os recursos usados no

projeto

bull Partilha de conhecimento online mdash Sempre que um utilizador produz conhecimento no

problema deve ser partilhado com todos os participantes duma forma conveniente e efetiva

bull Seguranccedila mdash Os dados e a informaccedilatildeo sobre o problema podem ser sensiacuteveis o que leva a

criaccedilatildeo dum sistema de controlo de quem acede a determinados recursos

Linguagens de Programaccedilatildeo

Para o desenvolvimento da plataforma de DM colaborativo era necessaacuterio a escolha duma lin-

guagem de programaccedilatildeo Embora possuir alguma experiecircncia no desenvolvimento de aplicaccedilotildees

em JavaScript12 ou Java13 decidi usar Python14 com o objetivo de aumentar o meu conhecimento

de programaccedilatildeo ao niacutevel do Python Apoacutes algum estudo da linguagem verifiquei esta possui

caracteriacutesticas que fazem com que seja bastante usada no desenvolvimento Web Outro aspeto

considerado foi a sua versatilidade ao niacutevel de sistemas operativos aliada agrave vasta quantidade de

moacutedulos que possui que permitem a sua integraccedilatildeo com todas as componentes da plataforma

Python

Python eacute uma linguagem de programaccedilatildeo bastante popular de alto niacutevel geral e dinacircmica

Suporta muacuteltiplos paradigmas de programaccedilatildeo como orientada a objetos funcional processual e

imperativa

O Python eacute caracterizado por ser multi-plataforma ou seja existem inteacuterpretes para um vari-

ado nuacutemero de sistemas operativos Eacute uma linguagem de programaccedilatildeo poderosa faacutecil de aprender

baseada em linguagens de programaccedilatildeo tradicionais mas e eacute adequado a sistemas operativos redes

e hardware atuais[Lin05]12httpswwwjavascriptcom13wwwjavacom14httpswwwpythonorg

8

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 26: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

Nos Estados Unidos da Ameacuterica num blog post de Julho de 2014 o Python era a linguagem

de programaccedilatildeo mais usada no ensino introdutoacuterio de ciecircncias de computaccedilatildeo nos departamentos

americanos melhor cotados15

Armazenamento de dados

O sistema de base de dados escolhido foi MySQL16 A escolha do sistema MySQL deve-se

principalmente ao facto deste ser compatiacutevel com Python Aleacutem disto e embora possuir experiecircn-

cia noutros sistemas que usam a interface SQL como SQLite17 e PostgreSQL18 a popularidade e

tambeacutem alguma experiecircncia preacutevia em MySQL ditaram a minha escolha final para este sistema

MySQL

O SQL eacute uma linguagem de programaccedilatildeo padratildeo para gerar manupular e recuperar informaccedilatildeo

duma base de dados relacional[Bea09] MySQL eacute um sistema de gestatildeo de bases de dados que

utiliza a linguagem SQL como interface Muitos das maiores organizaccedilotildees do mundo incluindo

Facebook Google Adobe usam MySQL nos seus volumosos websites19 As principais vantagens

desta linguagem satildeo20

bull Portabilidade (suporta praticamente qualquer plataforma atual)

bull Compatibilidade (existem moacutedulos de interface para diversas linguagens de programaccedilatildeo)

bull Excelente desempenho e estabilidade

bull Pouco exigente ao niacutevel de recursos hardware

bull Facilidade de uso

Redis

Redis21 eacute uma base de dados open source no formato key-value sendo que o value pode ser

strings hashs e listas Esta base de dados eacute caracterizado por ser ao mesmo tempo in-memory e

persistente em disco Desta forma consegue atingir altas velocidades de escrita e leitura mesmo

em grandes quantidades de dados Exemplo da pegada de memoacuteria do Redis

bull Um exemplo vazio usa asymp 1 Mb de memoacuteria

bull 1 Milhatildeo de instacircncias usa asymp 100 Mb de memoacuteria15httpcacmacmorgblogsblog-cacm176450-python-is-now-the-most-popular-introductory-teaching-language-

at-top-us-universitiesfulltext16httpsdevmysqlcomdocrefman57en17wwwsqliteorg18wwwpostgresqlorg19httpwwwmysqlcomwhy-mysql20httpsptwikipediaorgwikiMySQL21httpredisio

9

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 27: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

bull 1 Milhatildeo de Keys -gt Hash value sendo que o value representa um objeto com 5 campos

usa asymp 200 MB de memoacuteria

Redis-py

Redis-py22 eacute uma interface Python que permite a utilizaccedilatildeo do Redis Esta interface imple-

menta a sintaxe oficial de comandos do Redis com algumas exceccedilotildees

Django-metadata

Django-metadata23 eacute um moacutedulo Python que permite anexar metadados a modelos Django

usando a base de dados Redis

22 Metadados

Metadados eacute informaccedilatildeo estruturada que descreve explica localiza ou de outra forma torna

mais faacutecil a busca uso gestatildeo dum recurso informativo Metadados satildeo comummente definidos

como dados sobre dados ou informaccedilatildeo sobre informaccedilatildeo Existem trecircs tipos de metadados

bull Descriptive Metadata

ndash Esta categoria descreve um recurso com o propoacutesito da sua descoberta ou identificaccedilatildeo

Esta inclui elementos como tiacutetulo resumo e autor

bull Structured Metadata

ndash Esta categoria indica como objetos compostos satildeo ordenados por exemplo como eacute

que paacuteginas satildeo ordenadas para formarem um capiacutetulo

bull Administrative Metadata

ndash Esta categoria fornece informaccedilatildeo para ajudar na gestatildeo dum recurso por exemplo

como foi criado formato e outras informaccedilotildees teacutecnicas

O objetivo principal dos metadados eacute facilitar a descoberta de informaccedilatildeo Com isto os me-

tadados procuram ajudar na organizaccedilatildeo de recursos eletroacutenicos facilitar a interoperabilidade e

a integraccedilatildeo de recursos legacy providenciar identificaccedilatildeo digital e por fim suportar o arquiva-

mento e a preservaccedilatildeo[Nat04]

22httpsgithubcomandymccurdyredis-py23httpsgithubcomthoasdjango-metadata

10

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 28: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

Estruturaccedilatildeo de Metadados

Esquemas de metadados (Metadata schema) satildeo conjuntos de metadados concebidos com o

objetivo de descrever um conjunto particular de recursos A definiccedilatildeo dos elementos eacute conhecida

pela semacircntica do esquema Os valores dados a esses elementos satildeo o conteuacutedo

Existem vaacuterios tipos de esquemas de metadados a serem desenvolvidos que abrangem dife-

rentes aacutereas O Dublin Core Metadata Element Set (DCMES) eacute um exemplo dum esquema de

metadados

Dublin Core Metadata Element Set

O DCMES eacute um vocabulaacuterio de 15 propriedades para o uso na descriccedilatildeo de recursos Este con-

junto de 15 propriedades pertence a um grande espectro de vocabulaacuterios de metadados e especifi-

caccedilotildees teacutecnicas mantidas pela Dublin Core Metadata Iniciative Os elementos deste vocabulaacuterio

satildeo os seguintes[WKLW98]

bull Tiacutetulo

ndash O nome dado ao recurso normalmente pelo autor ou editor

bull Autor

ndash A pessoa ou organizaccedilatildeo responsaacutevel pela criaccedilatildeo do conteuacutedo intelectual deste re-

curso Por exemplo autores no caso se documentos escritos artistas ou fotoacutegrafos no

caso de recursos visuais

bull Assunto

ndash O toacutepico principal do recurso Tipicamente o assunto seria expresso com keywords ou

frases que descrevem o assunto ou o conteuacutedo do recurso

bull Descriccedilatildeo

ndash Uma descriccedilatildeo textual do conteuacutedo do recurso incluindo abstracts no caso de artigos

ou descriccedilotildees de conteuacutedo no caso de recursos visuais

bull Editor

ndash A entidade responsaacutevel por manter o recurso disponiacutevel na sua presente form por

exemplo uma editora um departamento duma universidade ou uma entidade corpora-

tiva

bull Outro contribuinte

ndash Uma pessoal ou organizaccedilatildeo natildeo especificada no elemento do Autor que fez uma sig-

nificativa contribuiccedilatildeo intelectual para o recurso mas considerando que essa contribui-

ccedilatildeo eacute secundaacuteria relativamente agraves pessoas ou organizaccedilotildees especificadas no elemento

do Autor

11

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 29: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

bull Data

ndash A data associada com a criaccedilatildeo ou disponibilidade do recurso no formato AAAA-

MM-DD

bull Tipo de recurso

ndash A categoria do recurso por exemplo homepage romance poema working paper

relatoacuterio teacutecnico redaccedilatildeo dicionaacuterio

bull Formato

ndash O formato dos dados e opcionalmente dimensotildees(ex tamanho duraccedilatildeo) do recurso

O formato eacute usado para identificar o software e possivelmente o hardware que poderaacute

ser necessaacuterio para apresentar ou operar o recurso

bull Identificador

ndash Uma string ou nuacutemero usado para identificar unicamente o recurso Exemplos para

recursos incluem URLs e URNs Outros globalmente-uacutenicos identificadores como o

International Standard Book Numbers (ISBN) ou outros nomes formais satildeo tambeacutem

candidatos para este elemento

bull Idioma

ndash O idioma do conteuacutedo intelectual do recurso

bull Cobertura

ndash As caracteriacutesticas temporais ou espaciais do conteuacutedo intelectual do recurso Cober-

tura espacial refere-se a uma regiatildeo fiacutesica usando o nome desse lugar ou as respetivas

coordenadas Cobertura temporal refere-se aos aspetos que definem o recurso e natildeo

agrave data de criaccedilatildeo(sendo que esta informaccedilatildeo pertence ao elemento Data) A cober-

tura temporal eacute tipicamente especificada usando periacuteodos de tempo(ex neoliacutetico) ou

o mesmo formato de datahora recomendado pelo elemento Data

bull Direitos

ndash Uma declaraccedilatildeo de direitos um identificador que liga a uma declaraccedilatildeo de direitos

ou um identificador que liga a um serviccedilo que fornece informaccedilatildeo sobre os direitos do

recurso

Exemplo

Title=rdquoMetadata examplerdquo

Creator=rdquoMatos Hugordquo

Creator=rdquoSilva Filiperdquo

Subject=rdquometadatardquo

12

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 30: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

Description=rdquoPresents an example of a metadata schemardquo

Publisher=rdquoFEUP Pressrdquo

Date=rdquo2016-06

Type=rdquoTextrdquo

Format=rdquoapplicationpdfrdquo

Identifier=rdquohttpwwwweborg standardsresourcesmetadatapdfrdquo

Language=rdquoenrdquo

Os objetivos que motivaram a criaccedilatildeo deste vocabulaacuterio foram[WKLW98]

bull Simplicidade de criaccedilatildeo e manutenccedilatildeo

bull Semacircntica de entendimento geral

bull Conformidade com os standards existentes e que ainda estatildeo a emergir

bull Aplicabilidade e acircmbito internacionais

bull Extensibilidade

bull Interoperabilidade entre sistemas de coleccedilotildees e de indexaccedilatildeo

23 Web services

Um Web service (WS) eacute um serviccedilo oferecido por um dispositivo para outro dispositivo

comunicando entre si pela World wide web Num WS tecnologias Web como HTTP normal-

mente usadas para comunicaccedilatildeo humano-maacutequina satildeo entatildeo usadas para comunicaccedilotildees maacutequina-

maacutequina mais especificamente para transferir ficheiros em formatos como XML ou JSON Na

praacutetica o WS fornece uma interface Web-based orientada a objetos para uma base de dados utili-

zada por exemplo por outro WS ou uma aplicaccedilatildeo mobile fornecendo uma interface ao utilizador

final24

231 Web API

Uma Web API eacute um conjunto de protocolos rotinas e ferramentas para construir software e

aplicaccedilotildees Um exemplo seria uma RESTful Web API esta eacute acessiacutevel via HTTP incluindo clientes

HTTP como browsers e dispositivos moacuteveis Como estes natildeo executam tantas conversotildees de dados

como um WS normal tendem a ser mais raacutepido e faacuteceis de implementar

24 Web Framework

Uma framework para aplicaccedilotildees Web eacute uma framework de software designado para suportar o

desenvolvimento de sites Web dinacircmicos aplicaccedilotildees Web e serviccedilos Web A framework destina-

se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web Por24httpsenwikipediaorgwikiWeb-service

13

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 31: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

Figura 23 Diagrama duma API disponiacutevel tanto no lado do cliente e do servidor [Wik16b]

exemplo muitas frameworks fornecem bibliotecas para acesso agrave banco de dados frameworks de

modelaccedilatilde e gestatildeo de sessatildeo e geralmente promovem a reutilizaccedilatildeo de coacutedigo25 Uma aplicaccedilatildeo

Web usa uma combinaccedilatildeo de uma aplicaccedilatildeo de servidor HTTP um mecanismo de armazenamento

como uma base de dados um motor de templates um dispatcher de pedidos e moacutedulos de auten-

ticaccedilatildeo Estes componentes podem ser criados individualmente ou compiladas numa framework

de alto-niacutevel As frameworks Python de alto-niacutevel mais populares satildeo Django Web Framework e

web2py26

Django Web Framework

Django[Dja13] eacute uma full-stack Web Framework em Python open source de alto niacutevel que

incentiva um desenvolvimento raacutepido e limpo aliado a um design pragmaacutetico Esta foi criada por

developers experientes de forma a reduzir as complicaccedilotildees do desenvolvimento Web eg natildeo

repetir o mesmo coacutedigo vaacuterias vezes As caracteriacutesticas principais desta framework satildeo

bull Rapidez de desenvolvimento

bull Extras para o desenvolvimento

bull Seguranccedila

bull Escalabilidade

bull Versatilidade

Esta framework assenta sobre o padratildeo de arquitetura Model view controller (MVC) mas tendo

em conta o formato da framework Django eacute muitas vezes explicado pela forma modelviewtem-

plate27

Django REST framework

Este moacutedulo permite criar uma Web API navegaacutevel que possibilita ver e testar respostas JSON

e os endpoints da aplicaccedilatildeo Outra das caracteriacutesticas eacute a facilidade de serialiazaccedilatildeo ou seja os25httpsptwikipediaorgwikiFramework-para-aplicacoes-Web26httpswikipythonorgmoinWebFrameworks27httpreinoutvanreesorgweblog20111213django-mvc-explanationhtml

14

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 32: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

serializers permitem que dados complexos como queries ou modelos Django sejam convertidos

para estruturas nativas de Python que depois satildeo facilmente tornados em JSON[Chr14]

web2py

Web2py28 eacute uma full-stack framework criada para o desenvolvimento em Python de aplica-

ccedilotildees web-based e database-driven portaacuteteis

25 Padratildeo de arquitetura MVC

O padratildeo MVC foi introduzido com o ambiente de programaccedilatildeo Smalltalk de forma a estrutu-

rar aplicaccedilotildees interativas duma forma modular Como o nome indica o padratildeo MVC eacute decomposto

em 3 componentes principais[GO11]

Figura 24 Este diagrama exemplifica uma relaccedilatildeo tiacutepica da arquitetura MVC29

Model

A componente model integra essencialmente o estado da aplicaccedilatildeo e as operaccedilotildees que podem

mudar esse estado A componente model manteacutem tambeacutem dependecircncias das componentes view e

controller notificando-as quando haacute mudanccedilas de estado

28httpwwwweb2pycom29Desenhado com a ferramenta httpwwwcreatelycom

15

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 33: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

View

A componente view apresenta a informaccedilatildeo utilizador numa interface GUI Existem muacuteltiplas

views de diferentes tipos que satildeo integradas na aplicaccedilatildeo de forma a apresentar views diferen-

tes aos utilizadores Quando uma view eacute atualizada essa eacute notificada pela componente model e

posteriormente pode pedir a essa componente a informaccedilatildeo que necessita nesse momento

Controller

A componente controller responde agraves accedilotildees do utilizador atraveacutes da interface GUI Esta eacute

responsaacutevel por passar as transaccedilotildees ao model para serem executadas Os controladores devem

existir numa relaccedilatildeo de 1-para-1 em correspondecircncia com as views Quando um controlador re-

cebe um input este eacute reproduzido aos sub-controladores primeiro de forma a que esse input seja

processado pelos niacuteveis mais baixos da hierarquia primeiro

26 Protocolo FTP

FTP ou File Transfer Protocol30 eacute uma forma bastante raacutepida e versaacutetil de transferir ficheiros

sendo uma das mais usadas na Internet Pode referir-se tanto ao protocolo quanto ao programa que

implementa este protocolo (Servidor FTP neste caso tradicionalmente aparece em letras minuacutes-

culas por influecircncia do programa de transferecircncia de arquivos do Unix) Os dados satildeo transferidos

num fluxo contiacutenuo de bytes O protocolo de transporte TCP fornece a fiabilidade do processo

certificando-se que todos os bytes que natildeo chegam ao destino satildeo reenviados e posteriormente

verifica se chegaram corretamente[Mos06]

pyftpdlib

Pyftpdlib31 eacute uma biblioteca Python para a criaccedilatildeo de servidores FTP duma forma eficiente

escalaacutevel e assiacutencrona sendo a mais completa disponiacutevel em Python Possui naturalmente as

chamadas standard dum servidor FTP normais Permite tambeacutem a criaccedilatildeo de vaacuterios tipo de au-

tenticaccedilotildees para o controlo de utilizadores em Unix e Windows Na tabela 21 representada a

comparaccedilatildeo de benchmarks entre pyftpdlib e a ferramenta proftpd32

30httpsptwikipediaorgwikiFile-Transfer-Protocol31httpsgithubcomgiampaolopyftpdlib32httpwwwproftpdorg

16

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 34: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

Tabela 21 pyftpdlib vs proftpd comparaccedilatildeo de benchmarks

Benchmark Type pyftpdlib proftpd SpeedupSTOR (client -gtserver) 58590 MBs 60049 MBs -002xRETR (server -gtclient) 165272 MBs 152405 MBs +008300 concurrent clients (connect login) 019 s 998 s +51xSTOR (1 file with 300 idle clients) 58559 MBs 51855 MBs +01xRETR (1 file with 300 idle clients) 149758 MBs 147819 MBs 0x300 concurrent clients (RETR 10MB file) 341 s 360 s +005x300 concurrent clients (STOR 10MB file) 860 s 1156 s +03x300 concurrent clients (QUIT) 003 s 039 s +12x

17

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 35: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

27 Peer-to-Peer

Peer-to-Peer (P2P) eacute uma arquitetura de redes de computadores onde cada um dos pontos ou

noacutes da rede funciona tanto como cliente quanto como servidor permitindo a partilha de serviccedilos e

dados sem a necessidade de um servidor central33

A computaccedilatildeo peer-to-peer (P2P) tem promovido uma grande modificaccedilatildeo nos padrotildees de

uso da Internet nos uacuteltimos anos Sua grande vantagem em relaccedilatildeo agrave computaccedilatildeo clienteservidor

eacute possibilitar a colaboraccedilatildeo direta entre os usuaacuterios sem depender de servidores administrados

por terceiros[RDC+04] Na Figuras 25 e Figura 26 podemos ver as diferenccedilas entre uma rede

baseada em P2P e uma rede baseada num servidor central

Figura 25 Diagrama duma rede baseada em P2P 34

Figura 26 Diagrama duma rede baseada num servidor central 35

33httpsptwikipediaorgwikiPeer-to-peer34Desenhado com a ferramenta httpwwwcreatelycom35Desenhado com a ferramenta httpwwwcreatelycom

18

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 36: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

28 Sumaacuterio

Pode-se concluir que o problema essencial eacute a falta duma plataforma para DM colaborativo

como tal e apoacutes o estudo das principais tecnologias a ser usadas verifica-se que existe uma opor-

tunidade nesta aacuterea aliando as tecnologias de WS e P2P para a formulaccedilatildeo duma plataforma des-

centralizada Outro aspeto fundamental seria a implementaccedilatildeo de metadados na soluccedilatildeo de modo

a obter todas as vantagens que estes fornecem quando usados numa plataforma deste geacutenero

19

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 37: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conceitos e tecnologia em Data Mining

20

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 38: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Capiacutetulo 3

Plataforma para Data MiningColaborativo

31 Problema

Existe uma necessidade de criaccedilatildeo duma ferramenta que permita a partilha de recursos efi-

ciente em projetos de DM Essa plataforma deve permitir a existecircncia de um ambiente de co-

laboraccedilatildeo em que os seus utilizadores possam natildeo soacute guardar informaccedilatildeo sobre o trabalho de

investigaccedilatildeo que realizam mas tambeacutem partilhaacute-la e poder pesquisar e aceder a conteuacutedos que es-

tejam puacuteblicos na plataforma Este ambiente eacute caracterizado por ser descentralizado removendo

assim a necessidade dum servidor central e da existecircncia dum administrador da rede

32 Acircmbito da soluccedilatildeo

O desenvolvimento desta plataforma visa principalmente que os seus utilizadores sejam um

grupo de investigadores Estes encontrando-se na necessidade de partilhar recursos num (ou

vaacuterios)projetos na aacuterea de DM e estando geograficamente separados seriam o segmento de utili-

zadores que mais beneficiaria duma plataforma deste geacutenero Deste modo cada utilizador iria ter

o seu proacuteprio site beneficiando da opccedilatildeo de poder pesquisar na rede de utilizadores por recursos

uacuteteis para o seu trabalho atual

Foi entatildeo desenvolvido um protoacutetipo para simular um uso real da plataforma

33 Arquitetura da soluccedilatildeo

A arquitetura assenta sobre os seguintes conceitos

bull Servidor Web mdash Representa a aacuterea de trabalho do utilizador e conteacutem o Web Service que

estabelece comunicaccedilatildeo entre os vaacuterios sites

bull Base de dados mdash Representa a base de dados do utilizador

21

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 39: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

bull Servidor FTP mdash Serviccedilo que estabelece a transferecircncia de ficheiros entre os diferentes sites

(noacutes)

331 Exemplo de arquitetura

Eacute apresentado na Figura 31 um exemplo da arquitetura onde o cilindro representa a base

de dados o servidor representa o servidor FTP o monitor envolvente representa o site de cada

utilizador e a figura publicprivate representa as aacutereas de acesso puacuteblico e privado

Figura 31 Arquitectura da Soluccedilatildeo Proposta

Neste exemplo estaacute exemplificado a forma como os vaacuterios sites colaboram atraveacutes do web

service Ou seja cada utilizador possui o seu site com a sua respetiva base de dados de modo a

poder alojar os recursos do projeto em desenvolvimento e tambeacutem o seu servidor FTP que permite

a partilha de ficheiros com os outros noacutes Com isto a rede eacute configurada para permitir a partilha

entre uma lista de utilizadores preacute-definida De seguida torna-se possiacutevel os seus utilizadores

atualizarem o seu site para visualizar e aceder aos recursos dos outros noacutes Estes recursos podem

ser

bull Privados mdash Apenas o utilizador que fez upload pode aceder aos mesmos

bull Puacuteblicos mdash Qualquer utilizador pode pesquisar e aceder a estes

Os recursos considerados na plataforma satildeo os seguintes

bull Artigos cientiacuteficos

bull Conjuntos de dados (data sets)

bull Resultados de experiecircncias

22

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 40: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

bull Implementaccedilotildees de algoritmos

bull Recursos computacionais

O utilizador tem a opccedilatildeo de pesquisar por recursos Nos resultados da pesquisa satildeo apresentados

recursos que o utilizador possui na sua plataforma mas tambeacutem recursos existente na rede dos

restantes utilizadores

A pesquisa eacute otimizada atraveacutes de metadados Nesta soluccedilatildeo o serviccedilo disponibiliza meta-

dados dos recursos de modo a permitir uma pesquisa mais eficiente pelos elementos que estatildeo

presentes nos metadados

332 Esquemas de metadados

Seguindo o esquema estabelecido Dublin Core Metadata Element Set para artigos foi definido

tambeacutem um esquema para os restantes tipos de recursos

3321 Esquema de metadados para artigos

bull Tiacutetulo

bull Autor

bull Assunto

bull Descriccedilatildeo

bull Editor

bull Data

bull Tipo de recurso

bull Identificador

bull Idioma

bull Cobertura

3322 Esquema de metadados para Datasets

bull Nome

bull Domiacutenio

bull Fonte

bull Caracteriacutestica do data set (univariate multivariate Time-series Domain-Therory)

bull Descriccedilatildeo dos dados

23

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 41: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

bull Formato em que estatildeo os dados

bull Nome do ficheiro com todos os dados

bull Tipo do ficheiro com os dados (zip rar tgz tar 7z )

bull Padratildeo (proposicionalrelacional)

bull Numero de atributos

bull Numero de atributos numeacutericos

bull Numero de atributos nominais

bull Atributos em falta

bull Nuacutemero de exemplos

3323 Esquema de metadados para Algoritmos implementados

bull Nome

bull Tipo de tarefa (classificaccedilatildeo regressatildeo clustering regras de associaccedilatildeo)

bull Classe de algoritmo (Aacutervores de Decisatildeo ILP Induccedilatildeo de Regras k-NN Bayesiano )

bull Sistema operativo usado (Windows Linux MacOS)

bull Linguagem em que eacute escrito

bull Artigo onde o algoritmo foi publicado (referecircncia bibtex)

bull Usa multi-threading natildeo usa multi-therading

bull Tem Source code natildeo tem source code

3324 Esquema de metadados para Recursos Computacionais

bull Sistema operativo

bull RAM instalada

bull Tipo de CPU (multi-core multi-processador)

bull Espaccedilo em disco disponiacutevel

bull Nuacutemero maacuteximo de pedidos que aceita por utilizador

24

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 42: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

3325 Esquema de metadados para Experiecircncias

bull Nome do conjunto de dados

bull Nome do algoritmo usado

bull Artigo onde os resultados foram publicados (referencia bibtex)

bull Meacutetodo de avaliaccedilatildeo (Cross-validation holdout bootstrap leave-one-out )

bull Percentagem do train set para tuning

bull Meacutetodo de tuning (Cross-validation hold-out)

bull Medidas de avaliaccedilatildeo de desempenho (Accuracy Error rate Precision Recall F-measure

)

bull Combinaccedilatildeo de paracircmetros usada

bull Resultado obtido

bull Nuacutemero de repeticcedilotildees da experiecircncia

34 Implementaccedilatildeo

A implementaccedilatildeo Python da plataforma estaacute dividida entre trecircs componentes que foram cria-

dos de forma a funcionarem em paralelo

1 Base de dados

(a) Estrutura Redis

2 Servidor Web

(a) Framework Web

(b) RESTful API

3 Servidor FTP

341 Diagrama de casos de uso

Na Figura 38 pode-se verificar as accedilotildees que o investigador (ator) pode executar na aplicaccedilotildees

Estas accedilotildees estatildeo especificadas em detalhe na Secccedilatildeo 43 deste documento

25

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 43: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

Figura 32 Diagrama de casos de uso Accedilotildees que o utilizador pode realizar na aplicaccedilatildeo

26

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 44: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

342 Diagrama UML de classes

Na Figura 39 estaacute representado o diagrama UML de classes A descriccedilatildeo detalhada das classes

estaacute declarada na Secccedilatildeo 343

Figura 33 Diagrama UML de classes

343 Base de dados

A base de dados da plataforma usa o sistema MySQL A base de dados foi gerada usando

modelos da framework Django

Nesta base de dados existem os seguintes modelos (Figura 32 a 36)

Figura 34 Artigos

27

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 45: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

Figura 35 Algoritmos

Figura 36 Datasets

Figura 37 Recursos computacionais

28

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 46: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

Figura 38 Resultados de experiecircncias

29

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 47: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

Descriccedilatildeo dos atributos

bull title

ndash Nome do recurso (tem de ser igual ao nome do ficheiro)

bull file

ndash Foreign key correspondente ao ficheiro carregado na plataforma

bull owner

ndash Pessoa que fez o upload

bull pub_date

ndash Data do carregamento do recurso

bull public

ndash Privacidade do ficheiro (0 representa puacuteblico 1 representa privado)

Finalmente existe o modelo File(figura 37)

Figura 39 Ficheiros

Descriccedilatildeo dos atributos

bull name

ndash Nome do ficheiro

bull format

ndash Formato do ficheiro

bull size

ndash Tamanho do ficheiro

30

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 48: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

bull path

ndash Origem do ficheiro no filesystem

Natildeo existe o modelo Utilizadorpois os utilizadores satildeo diferenciados pelo IP das suas maacute-

quinas que satildeo configurados na montagem da plataforma Existe contudo um administrador do

site - superuser

3431 Estrutura Redis

A estrutura Redis foi criada com o objetivo de alojar os metadados Isto pois esta estrutura

aleacutem de ser caracterizada por uma estrutura key -gt value que eacute ideal para a representaccedilatildeo dos

metadados permite guardar grandes quantidades de dados mantendo sempre tempos raacutepidos de

escrita e leitura sem ocupar quantidades de memoacuteria significativa

Como tal foi necessaacuterio criar uma integraccedilatildeo da estrutura Redis com a framework Python -

Django Isto foi conseguido atraveacutes de dois moacutedulos

bull Redis-py

bull Django-metadata

O moacutedulo Redis-py serve de back-end ou seja permite a comunicaccedilatildeo entre as chamadas Python

e o servidor Redis

O moacutedulo Django-metadata permite entatildeo anexar metadata aos modelos Django

Exemplo de anexaccedilatildeo de metadados a um modelo no Listing 31

1 gtgtgt from appmodels import Article

2 gtgtgt article = Articleobjectsget(title=rsquothesisrsquo)

3 gtgtgt articlemetadata[rsquoauthorrsquo] = rsquoHugo Matosrsquo

Listing 31 Anexaccedilatildeo de metadados a um modelo

Exemplo de acesso aos metadados dum modelo no Listing 32

1 gtgtgt articlemetadata[rsquoauthorrsquo]

2 Hugo Matos

Listing 32 Acesso aos metadados dum modelo

31

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 49: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

Exemplo de remoccedilatildeo de metadados dum modelo no Listing 33

1 gtgtgt del articlemetadata[rsquoauthorrsquo]

2 gtgtgt articlemetadata[rsquoauthorrsquo]

3 Traceback (most recent call last)

4

5 KeyError rsquoauthorrsquo

Listing 33 Remoccedilatildeo de metadados dum modelo

344 Servidor Web

O servidor Web foi criado usando a linguagem de programaccedilatildeo Python Este estaacute assente

numa framework Web Django

3441 Framework Web

O Django fornece vaacuterios ficheiros base de forma a permitir a configuraccedilatildeo da framework

Settings

No ficheiro settings eacute feita a configuraccedilatildeo principal da plataforma

bull Satildeo definidos todos os moacutedulos usados pela plataforma sendo que eacute permitida a adiccedilatildeo de

moacutedulos externos por exemplo o Django REST Framework

bull Eacute configurada a base de dados a ser usada sendo que eacute permitido uso de vaacuterias bases de

dados em simultacircneo

bull Eacute feita a declaraccedilatildeo do sistema de rotas da plataforma

bull Eacute configurada o caminho root para ficheiros estaacuteticos e tambeacutem o local onde eacute guardada

toda a media da plataforma

Models

No ficheiro models satildeo declarados os modelos de classes usados na plataforma Estes modelos

estatildeo explicados na Secccedilatildeo 341

Url

No ficheiro urls estatildeo definidas as todas as rotas da plataforma para a apresentaccedilatildeo de paacuteginas

Web O conteuacutedo apresentado na paacutegina web direcionado pelas rotas eacute processado pelas views

32

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 50: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

Views

No ficheiro views eacute processada a informaccedilatildeo que vai ser apresentada na paacutegina Web ou seja

satildeo executadas queries agrave base de dados a informaccedilatildeo proveniente eacute entatildeo processada se necessaacute-

rio e por fim eacute retornado um request com a template (HTML) e as variaacuteveis que satildeo compiladas

nessa template Neste ficheiro satildeo processados os formulaacuterios existentes na plataforma tal como

as transferecircncias de ficheiros(downloadupload) Por fim o moacutedulo de pesquisa estaacute tambeacutem

definido neste ficheiro

Templates HTML

Nas templates HTML satildeo processadas as variaacuteveis provenientes das views de modo a serem

apresentadas no formato desejado Nas templates foi usada a framework Bootstrap 31 A razatildeo

desta escolha deve-se principalmente agrave sua eficiecircncia na construccedilatildeo de templates jaacute testada em

trabalhos anteriores mas tambeacutem agrave sua popularidade o que resulta numa grande quantidade de

informaccedilatildeo

3442 RESTful API

A RESTful API foi concebida atraveacutes da framework Django REST Framework Isto pois era

necessaacuteria uma forma de comunicar entre os vaacuterios noacutes o conteuacutedo existente em cada plataforma

instalada

Esta framework trata de serializar os modelos Django existentes na plataforma convertendo-

os em estruturas Python que satildeo posteriormente convertidas no formato JSON Torna-se entatildeo

possiacutevel aceder ao conteuacutedo existente nos outros noacutes atraveacutes dum pedido HTTP credenciado que

retorna conteuacutedo JSON que eacute entatildeo guardado e apresentado pelo noacute que efetuou o pedido O

Listing 34 mostra conteuacutedo JSON gerado pela API neste caso o pedido efetuado foi a lista de

artigos(neste exemplo havia apenas um artigo na base de dados)

1httpsgithubcomtwbsbootstrap

33

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 51: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

1

2 count 1

3 next null

4 previous null

5 results [

6

7 title Peer-to-peer_colabpdf

8 owner fran

9 pub_date 2016-06-23T013947Z

10 public 0

11 keys [publisher description language creator

coverage date identifier type subject]

12 values [Minicurso Simpu00f3sio Brasileiro de Redes de Computa

Peer-to-peer (P2P) computing has been promoting a substantial

change in the usage patterns of the Internet in the last years

Its most important advantage compared to clientserver computing

is maki pt Rocha Jou00e3o Domingues Marco Callado

Arthur Souto - 2014-06-23 - Article Peer-

to-peer Computau00e7u00e3o colaborativa na internet]

13

14 ]

15

Listing 34 Resposta JSON gerada por um pedido de artigos

Para adicionar este conteuacutedo JSON agrave plataforma e recorrendo agrave biblioteca url2lib2 eacute feito um

request credenciado ao URL que conteacutem o conteuacutedo No coacutedigo seguinte estaacute representado o

coacutedigo que efetua essa mesma accedilatildeo sendo que a variaacutevel result conteacutem o conteudo representado

no Listing 35

1 _request = urllib2Request(http46101972518000appapiarticlesjson)

2 base64string = base64encodestring(rsquossrsquo (adminadmin))replace(rsquonrsquo rsquorsquo)

3 _requestadd_header(Authorization Basic s base64string)

4 result = urllib2urlopen(_request)

Listing 35 Exemplo de request agrave API de outra plataforma

345 Servidor FTP

O servidor FTP foi criado para lidar com as transferecircncias de ficheiros entre noacutes Este foi

criado com a utilizaccedilatildeo do moacutedulo pyftpdlib Este servidor corre em background com a ajuda da

lib python-daemon3 juntamente com o servidor Web

2httpsdocspythonorg2libraryurllib2html3httppypipythonorgpypipython-daemon

34

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 52: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

Como tal quando eacute feito pelo utilizador um pedido de transferecircncia dum ficheiro que estaacute

num noacute externo ao atual eacute feito um pedido de transferecircncia ao servidor FTP desse noacute externo

De seguida quando a transferecircncia termina o ficheiro eacute entatildeo servido ao utilizador que efetuou o

pedido inicial

35 Resumo e Conclusotildees

Neste capiacutetulo eacute identificada a descriccedilatildeo da plataforma identificando assim todos os compo-

nentes que representam a soluccedilatildeo Aleacutem disto foi efetuada uma descriccedilatildeo teacutecnica pormenorizada

destas componentes de forma a explicar o funcionamento do protoacutetipo desenvolvido

35

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 53: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Plataforma para Data Mining Colaborativo

36

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 54: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Capiacutetulo 4

Caso de estudo

41 Objetivo

O objetivo do caso de estudo eacute testar a plataforma duma forma efetiva criando um ambiente

relativamente realista No final eacute suposto retirar conclusotildees ou seja sobre a viabilidade da plata-

forma para DM colaborativo usada por um grupo de investigadores

42 Descriccedilatildeo do caso

O caso eacute testado por dois investigadores que estatildeo geograficamente separados Um investiga-

dor london encontra-se em Londres (Reino Unido) e o investigador fran encontra-se em Frankfurt

(Alemanha) Como natildeo houve a possibilidade de testar com dois investigadores este caso foi

testado por mim usando em simultacircneo dois servidores geograficamente separados (Londres e

Frankfurt) Para o caso foram fornecidos vaacuterios documentos que os investigadores vatildeo colocar

na plataforma Este documentos podem ser conjuntos de artigos implementaccedilotildees de algoritmos

datasets recursos computacionais e resultados de experiecircncias

O proacuteximo passo eacute verificar se a plataforma funciona de acordo com o especificado na imple-

mentaccedilatildeo Para tal eacute necessaacuterio executar uma seacuterie de accedilotildees que cobrem os objetivos principais

de uso da plataforma

37

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 55: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Caso de estudo

43 Especificaccedilatildeo do caso

Num primeiro passo eacute necessaacuterio configurar a plataforma com os endereccedilos IP dos investiga-

dores permitindo que sejam executados todos os pedidos (FTP e HTTP) entre as plataformas

De seguida os investigadores podem aceder agrave plataforma atraveacutes do browser Na Figura 41

podemos ver a homepage da plataforma

Figura 41 Homepage da plataforma Web

Na homepage da plataforma eacute possiacutevel pesquisar na rede por recursos no entanto como ainda

natildeo existem documentos esse passo seraacute executado mais agrave frente Como tal eacute necessaacuterio que

ambos os investigadores adicionem recursos agrave plataforma Clicando no link do separador lateral

que conteacutem o tipo de recurso vai ser adicionado Na Figura 42 eacute possiacutevel ver a paacutegina de artigos

de momento vazia

38

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 56: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Caso de estudo

Figura 42 Paacutegina de artigos

39

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 57: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Caso de estudo

De forma a adicionar um artigo agrave plataforma eacute necessaacuterio em primeiro lugar fazer o upload

do ficheiro Para tal basta clicar no botatildeo escolher ficheiro e depois de escolhido o ficheiro clicar

no botatildeo submit Na Figura 43 pode se verificar que o ficheiro jaacute se encontra na plataforma

Figura 43 Secccedilatildeo da paacutegina de artigos contendo um ficheiro

No entanto a plataforma ainda natildeo considera este ficheiro um artigo eacute necessaacuterio o investiga-

dor fran clicar no botatildeo Upload Article e preencher o formulaacuterio do ficheiro que foi carregado na

plataforma no passo anterior Este formulaacuterio eacute constituiacutedo pelos metadados referente ao tipo de

ficheiro a ser adicionado sendo que cada tipo (artigos algoritmos datasets recursos computacio-

nais e resultados) tem os seus metadados correspondentes Na Figura 44 encontra-se um exemplo

de preenchimento dum formulaacuterio de artigos

40

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 58: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Caso de estudo

Figura 44 Formulaacuterio de upload de artigos

41

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 59: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Caso de estudo

Voltando ao investigador london este pode fazer uso do botatildeo Refresh na Figura 42 O que

este botatildeo faz eacute atualizar a sua plataforma com os ficheiro que se encontram na rede Na Figura

45 podemos verificar que na paacutegina de artigos do investigador london o artigo que o investigador

fran adicionou agrave plataforma

Figura 45 Paacutegina de artigos com artigo listado

De seguida seria uacutetil aos investigadores replicarem este passo para todos os ficheiros possuiacute-

dos

O passo seguinte eacute testar o sistema de pesquisa O sistema de pesquisa retorna resultados

tendo em conta natildeo soacute o tiacutetulo e o utilizador (owner que fez o seu carregamento) mas tambeacutem os

metadados desse ficheiro Na Figura 46 estaacute representada uma pesquisa por um dos campos de

metadados do artigo adicionado anteriormente (Figura 44)

Figura 46 Exemplo de pesquisa por metadados neste caso foi pesquisado o nome dum autorRocha

42

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 60: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Caso de estudo

O passo final a ser exemplificado eacute a paacutegina de detalhe dum ficheiro onde se podem ver todos

os metadados relativos a esse recurso e efetuar o download Na Figura 47 pode se ver parte da

paacutegina de detalhe dum artigo

Figura 47 Paacutegina de detalhe dum artigo

44 Interpretaccedilatildeo de resultados

Tendo em conta que o caso consiste num teste de utilizaccedilatildeo da aplicaccedilatildeo considerando que

todos os testes foram efetuados com sucesso a interpretaccedilatildeo limita-se a confirmar os resultados

dos testes

45 Conclusotildees

O teste agrave plataforma aqui executado pretende exemplificar um uso normal da mesma Como

este teste foi efetuado com um nuacutemero reduzido de utilizadores (2) a potencialidade total natildeo estaacute

verdadeiramente demonstrada No entanto o objetivo principal da demonstraccedilatildeo da colaboraccedilatildeo

possiacutevel entre os vaacuterios utilizadores ficou representada ou seja verifica-se que eacute possiacutevel um

trabalho remoto mais especificamente a partilha de recursos e a pesquisa dos mesmos usando

uma plataforma colaborativa

43

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 61: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Caso de estudo

44

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 62: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Capiacutetulo 5

Conclusotildees e Trabalho Futuro

51 Conclusatildeo

Sendo que a aacuterea de estudo e investigaccedilatildeo em DM uma aacuterea jaacute bastante desenvolvida prin-

cipalmente na parte da descoberta de conhecimento a plataforma descrita nesta dissertaccedilatildeo tem

o objetivo de propor uma soluccedilatildeo inovadora focando principalmente o aspeto colaborativo desta

aacuterea Esta soluccedilatildeo permite aos utilizadores a criaccedilatildeo dum ambiente homogeacuteneo propiacutecio para a

partilha de recursos e experiecircncias fomentando assim a entreajuda num grupo de investigadores

A soluccedilatildeo apresenta uma interface simples e intuitiva de forma a permitir aos seus utilizadores

executarem as suas accedilotildees na plataforma duma forma breve e eficiente permitindo uma alocaccedilatildeo

maior de tempo a tarefas mais importantes como a produccedilatildeo de resultados nos trabalhos em que

estatildeo envolvidos

Considerando o desenvolvimento do Web service concebido para a disponibilizaccedilatildeo de infor-

maccedilotildees provenientes de vaacuterias fontes e sendo que este permite o uso desses mesmo recursos aos

diferentes utilizadores na rede conclui-se que o objetivo principal desta dissertaccedilatildeo foi atingido

Contudo existem alguns aspetos que poderiam permitir um uso mais interativo da plataforma aos

utilizadores que natildeo foram concretizados Aleacutem disto teria sido uacutetil para averiguar a utilidade da

plataforma num ambiente constituiacutedo por sujeitos com uma experiecircncia vasta em projetos de DM

A motivaccedilatildeo principal deste projeto esteve relacionada com a criaccedilatildeo duma soluccedilatildeo inovadora

constituiacuteda por tecnologias atuais que incentivaram a investigaccedilatildeo

45

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 63: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Conclusotildees e Trabalho Futuro

52 Trabalho Futuro

Ao longo do desenvolvimento desta soluccedilatildeo foram surgindo oportunidades de melhoramento

da plataforma que com o objetivo de natildeo perder o foco no objetivo principal e tambeacutem devido

ao facto de natildeo serem funcionalidades criacuteticas para o perfeito funcionamento foram deixadas

para segundo plano Embora natildeo essenciais ao uso da plataforma estas funcionalidades iriam

providenciar um uso mais satisfatoacuterio ao utilizador

Durante o uso da plataforma verifica-se que o processo de upload de recursos pode ser de-

morado devido agrave necessidade do preenchimento dos metadados dos mesmos Um melhoramento

possiacutevel seria o preenchimento automaacutetico de alguns destes campos de metadados Esse preenchi-

mento seria atingido por exemplo nos artigos recorrendo agrave API da ferramenta Mendeley1 Desta

forma no momento do upload do artigo iria ser feita uma pesquisa na base de dados do Mendeley

nesse mesmo artigo acedendo a informaccedilotildees como o abstract editor data de publicaccedilatildeo

Outro aspeto que seria uacutetil na utilizaccedilatildeo contiacutenua da plataforma por um grupo vasto de utili-

zadores seria o armazenamento do histoacuterico de accedilotildees executadas Ou seja permitir a visualizaccedilatildeo

duma lista que conteacutem a accedilatildeo que foi executada quem executou e a data em que foi executada

O objetivo desta funcionalidade seria manter o resto dos utilizadores a par dos documentos novos

que estatildeo a ser adicionados a plataforma

Caso fosse o objetivo da aplicaccedilatildeo permitir executar algum do trabalho de DM diretamente

na plataforma seria possiacutevel a integraccedilatildeo dum sistema que permitisse a execuccedilatildeo de algoritmos

sobre datasets existentes na mesma Isto poderia ser conseguido por exemplo integrando a API

do sistema de Machine Learning - WEKA na plataforma

A procura de informaccedilatildeo poderia ser melhorada usando ontologias Por exemplo se estabele-

cermos uma ontologia sobre algoritmos de DM poderiamos especificar algoritmos de classificaccedilatildeo

e obter por exemplo Decision Trees k-NN C45 ID3 em vez de listar todas as possibilidades A

ontologia permitiria expandir a query inicial para termos mais especiacuteficos

1wwwmendeleycom

46

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 64: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

Referecircncias

[Bea09] Alan Beaulieu Learning SQL Database page 312 2009 URL httpbooksgooglecombooksid=1PgCCVryjOQC arXivarXiv10111669v3

[Chr14] Tom Christie Django REST framework Citirano 1492014 httpwwwdjango-rest-frameworkorgdjango-rest-framework 2014 URL httpwwwdjango-rest-frameworkorgdjango-rest-framework

[Dja13] Django Software Foundation Django The Web framework for perfectionists withdeadlines 2013 URL httpswwwdjangoprojectcom

[FB13] W Fan e A Bifet Mining big data SIGKDD Explor Newsl 14(2)1 2013

[FU96] U Fayyad e R Uthurusamy Data mining and knowledge discovery in databasesCommunications of the ACM 39(11)24ndash26 1996

[GO11] Ralph F Grove e Eray Ozkan The MVC-web design pattern WEBIST 2011 -Proceedings of the 7th International Conference on Web Information Systems andTechnologies pages 127ndash130 2011 URL httpwwwscopuscominwardrecordurleid=2-s20-80052569275amppartnerID=tZOtx3y1

[HK06] J Han e M Kamber Data mining 2006

[Lin05] Greg Lindstrom Programming with Python 2005 arXivarXiv10111669v3doi101109MITP2005120

[Mos06] Julian Moss Understanding TCP IP Computer 93(87)478 2006 URL httpwwwtechsupportalertcompdfc04100pdf

[Moy05] Steve Moyle Collaborative data mining In Oded Maimon e Lior Rokach editorsData Mining and Knowledge Discovery Handbook page 1043ndash1056 2005

[MR11] Ralf Mikut e Markus Reischl Data mining tools Wiley Interdisciplinary ReviewsData Mining and Knowledge Discovery 1(5)431ndash443 2011 doi101002widm24

[Nat04] National Information Standards Organization Understanding Metadata Na-tional Information Standards (MDNISO Press)20 2004 URL httpwwwmendeleycomcatalogunderstanding-metadata-3$delimiter026E30F$nhttpwwwnisoorgpublicationspressUnderstandingMetadatapdf arXiv4 doi101017S0003055403000534

[RDC+04] Joatildeo Rocha Marco Domingues Arthur Callado Eduardo Souto Guthemberg Sil-vestre Carlos Kamienski e Djamel Sadok Peer-to-peer Computaccedilatildeo colaborativana internet Minicurso Simpoacutesio Brasileiro de Redes de Computadores (September2015) 2004

47

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias
Page 65: Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining utilizam, em geral, um conjunto de algoritmos para analisar os diversos conjuntos de dados

REFEREcircNCIAS

[WF05] Ian H Witten e Eibe Frank Data Mining Practical machine learning tools andtechniques Morgan Kaufmann 2nd edition edition 2005

[Wik16a] Wikipedia Cross Industry Standard Process for Data Mining [online] Available athttpsenwikipediaorgwikiCross_Industry_Standard_Process_for_Data_MiningAccessed 15 February 2016

[Wik16b] Wikipedia Web API [online] Available at httpsenwikipediaorgwikiWebAPIAccessed 15 February 2016

[WKLW98] S Weibel J Kunze C Lagoze e M Wolf Dublin Core Metadata for ResourceDiscovery RFC 2413 1998

48

  • Paacutegina de Rosto
  • Conteuacutedo
  • Lista de Figuras
  • Lista de Tabelas
  • 1 Introduccedilatildeo
    • 11 ContextoEnquadramento
    • 12 Motivaccedilatildeo e Objetivos
    • 13 Estrutura da Dissertaccedilatildeo
      • 2 Conceitos e tecnologia em Data Mining
        • 21 Data Mining
        • 22 Metadados
        • 23 Web services
          • 231 Web API
            • 24 Web Framework
            • 25 Padratildeo de arquitetura MVC
            • 26 Protocolo FTP
            • 27 Peer-to-Peer
            • 28 Sumaacuterio
              • 3 Plataforma para Data Mining Colaborativo
                • 31 Problema
                • 32 Acircmbito da soluccedilatildeo
                • 33 Arquitetura da soluccedilatildeo
                  • 331 Exemplo de arquitetura
                  • 332 Esquemas de metadados
                    • 34 Implementaccedilatildeo
                      • 341 Diagrama de casos de uso
                      • 342 Diagrama UML de classes
                      • 343 Base de dados
                      • 344 Servidor Web
                      • 345 Servidor FTP
                        • 35 Resumo e Conclusotildees
                          • 4 Caso de estudo
                            • 41 Objetivo
                            • 42 Descriccedilatildeo do caso
                            • 43 Especificaccedilatildeo do caso
                            • 44 Interpretaccedilatildeo de resultados
                            • 45 Conclusotildees
                              • 5 Conclusotildees e Trabalho Futuro
                                • 51 Conclusatildeo
                                • 52 Trabalho Futuro
                                  • Referecircncias