Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining...
Transcript of Plataforma para Data Mining Colaborativo · 2017-12-21 · Resumo Praticantes de Data Mining...
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-