·

Análise de Sistemas ·

Outros

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Material Teórico Responsável pelo Conteúdo Prof Dr Alberto Messias da Costa Souza Revisão Textual Profª Me Sandra Regina Fonseca Moreira Algoritmos e Big Data na Prática com Apache Mahout Projeto Mahout Instalação do Mahout Introduzir o projeto Apache Mahout mostrar seu processo de instalação e poste riormente mostrar a execução do algoritmo Kmeans usando a implementação do Mahout bem como analisar os resultados obtidos OBJETIVO DE APRENDIZADO Algoritmos e Big Data na Prática com Apache Mahout Orientações de estudo Para que o conteúdo desta Disciplina seja bem aproveitado e haja maior aplicabilidade na sua formação acadêmica e atuação profissional siga algumas recomendações básicas Assim Organize seus estudos de maneira que passem a fazer parte da sua rotina Por exemplo você poderá determinar um dia e horário fixos como seu momento do estudo Procure se alimentar e se hidratar quando for estudar lembrese de que uma alimentação saudável pode proporcionar melhor aproveitamento do estudo No material de cada Unidade há leituras indicadas e entre elas artigos científicos livros vídeos e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade Além disso você tam bém encontrará sugestões de conteúdo extra no item Material Complementar que ampliarão sua interpretação e auxiliarão no pleno entendimento dos temas abordados Após o contato com o conteúdo proposto participe dos debates mediados em fóruns de discus são pois irão auxiliar a verificar o quanto você absorveu de conhecimento além de propiciar o contato com seus colegas e tutores o que se apresenta como rico espaço de troca de ideias e de aprendizagem Organize seus estudos de maneira que passem a fazer parte Mantenha o foco Evite se distrair com as redes sociais Mantenha o foco Evite se distrair com as redes sociais Determine um horário fixo para estudar Aproveite as indicações de Material Complementar Procure se alimentar e se hidratar quando for estudar lembrese de que uma Não se esqueça de se alimentar e de se manter hidratado Aproveite as Conserve seu material e local de estudos sempre organizados Procure manter contato com seus colegas e tutores para trocar ideias Isso amplia a aprendizagem Seja original Nunca plagie trabalhos UNIDADE Algoritmos e Big Data na Prática com Apache Mahout Projeto Mahout O projeto Mahout é um projeto de código livre da fundação Apache que possui uma biblioteca de implementação de algoritmos para aprendizagem de máquina De acordo com Giacomelli 2013 o objetivo do projeto Mahout é ser uma escolha de ferramenta para aprendizado por máquina para processamento de conjuntos de dados extremamen te grandes tanto para execução em clusters de instâncias de Hadoop ou em uma única máquina O Mahout é uma ferramenta desenvolvida em linguagem de programação Java dentro do projeto de computação distribuída Hadoop O projeto Mahout possui implementações de algoritmos de classificação e clustering como o algoritmo Kmeans que possui grande relevância para o curso O projeto Mahout possui implementações de diversos algoritmos em sua exe cução direta no Hadoop com o Mapreduce algoritmos em Spark além de poder usar frameworks H2O e Flink Usando o Mapreduce há os seguintes algoritmos implementados Classificação Naive Bayes Hidden Markov Models Logistic Regression Random Forest Clustering kMeans Canopy Fuzzy kMeans Streaming KMeans Spectral Clustering Processamento pósclustering Cluster Dumper tool Cluster visualisation Redução de dimensionalidade Singular value decomposition 8 9 Algoritmo Lanczos Stochastic SVD PCA via Stochastic SVD QR Decomposition Outras implementações de suporte RowSimilarityJob Collocations Sparse TFIDF Vectors em Textos XML Parsing Email Archive Parsing Evolutionary Processes Instalação do Mahout A instalação do framework Mahout parte do pressuposto de que a plataforma Hadoop está instalada e em funcionamento adequado Após o download do pacote Mahout devese descompactar e adicionar um link simbólico usrlocal com o nome mahout wget httplinorguspbrapachemahout0130apachemahoutdistribution 0130targz tar xzf apachemahoutdistribution0130targz rm apachemahoutdistribution0130targz mv apachemahoutdistribution0130 usrlocal ln sf usrlocalapachemahoutdistribution0130 usrlocalmahout Execução de algoritmo Kmeans no Hadoop Vamos utilizar a mesma base usada no exemplo de execução da contagem de palavras em Hadoop Vamos iniciar pela cópia dos textos para o HDFS Segue o comando para a cópia dos arquivos com os textos hadoop fs copyFromLocal C50 9 UNIDADE Algoritmos e Big Data na Prática com Apache Mahout Segue a Figura que ilustra a correta cópia dos arquivos Figura 1 Inicialmente devese criar arquivos de vetores sequenciais para o processamento dos textos Para isso usase o comando seqdirectory presente no Mahout Segue o comando executado na base mahout seqdirectory i C50C50train o seqreuters xm sequential Nesse caso são passados parâmetros de diretório ou arquivo de entrada o diretório de saída do comando e o parâmetro que informa para se criar o vetor sequencial Saída do comando Figura 2 O próximo comando faz efetivamente a análise de textos a partir dos vetores criados são criados então os vetores contendo o TFIDF calculado para os termos e documentos existentes Segue o comando mahout seq2sparse i seqreuters o trainsparse 10 11 Figura 3 O comando recebe como parâmetro o diretório sequencial de entrada o diretó rio para saída e o parâmetro que informa a criação de vetores de análise de texto por padrão usando o TFIDF seq2sparce O próximo comando executa efetivamente o algoritmo kmeans mahout kmeans i trainsparsetfidfvectors c kmeanstrainclusters o trainclustersfinal dm orgapachemahoutcommondistanceEuclideanDis tanceMeasure x 10 k 10 ow Figura 4 11 UNIDADE Algoritmos e Big Data na Prática com Apache Mahout O comando de execução do kmeas recebe os seguintes parâmetros i passa os vetores e valores de TFIDF para o algoritmo c indica o diretório de clusters iniciais o indica o diretório de execução do algoritmo e onde ficarão armazenados os clusters gerados dm indica o tipo de métrica de distância a ser utilizada nesse caso utilizando a distância euclidiana x indica o número máximo de iterações do algoritmo nesse caso o valor máximo de 10 iterações k indica o número de clusters do modelo a ser gerado pelo algoritmo nesse caso 10 clusters ow indica que o algoritmo poderá sobrescrever os diretórios caso os indica dos para saída não estejam vazios Note que a saída do algoritmo será no formato de vetores assim como o forma to de entrada será necessário converter os vetores de saída para texto plano Para isso o mahout disponibiliza a ferramenta clusterdump que permite a criação de um arquivo de saída com texto plano e no diretório de trabalho fora do HDFS mahout clusterdump d trainsparsedictionaryfile0 dt sequencefile i trainclustersfinalclusters10final n 10 b 100 o saidaclusterstxt p trainclustersfinalclusteredpoints Seguem os parâmetros passados para o comando clusterdump d indica o arquivo de dicionário nesse caso o dicionário inicialmente criado pelo comando de criação dos valores de TFIDF dt indica o tipo de dicionário que foi passado como parâmetro nesse caso o tipo era arquivosvetores sequenciais i indica o diretório de entrada para o comando nesse caso contendo os clusters criados pelo algoritmo kmeans n indica o número de top termos existentes no cluster nesse caso o arquivo de saída conterá os 10 principais termos que caracterizam o cluster b indica o texto que caracterizará o centroide nesse caso o parâmetro 100 indica os 100 caracteres inicias que caracterizam o centroide o indica o arquivo de saída do comando nesse caso fora do HDFS p indica os pontos que foram passados como parâmetros para a criação dos vetores e clusters 12 13 O arquivo de saída possui as configurações dos clusters e seus principais ter mos Segue o conteúdo do arquivo 1r004730010269002032900303480040 2090050498006 Top Terms million 201768555414109 percent 19796222609914702 its 19652491679558388 company 17706142707622095 billion 17352270411921071 year 16528963794638385 from 16224009523461589 which 15927217226762038 market 15844123679639655 would 1553171214777908 2r11072100024871900337210710211711 9862012892119 Top Terms kwik 1968147373199463 bowler 14924392700195312 stores 11923139572143555 save 1116239881515503 superstores 10116906881332397 107 10109184741973877 saves 93254234790802 chilled 799928092956543 graeme 7725433826446533 fabric 7725433826446533 3r0010538002053800305690040591005 049900605520 Top Terms computer 546894957037533 software 5239956008686739 microsoft 44167699940064375 internet 411774596045999 corp 30309750865487493 computers 2993433007072 windows 2877699588326847 quarter 2790801902378307 apple 27814465102027444 pc 2690458118214327 13 UNIDADE Algoritmos e Big Data na Prática com Apache Mahout 4r000247100111400911701009710161 17021115020 Top Terms b 65324959497194035 shenzhen 63067194191185205 shanghai 603469366640658 index 5877770565651558 markets 5281963432157362 points 5199001299368368 investors 4874857696327004 securities 4628458164833687 exchanges 4141134030110127 stock 4080203191654102 5r0309211072172649101174100000224 13187419951615 Top Terms norilsk 2349074363708496 norilsks 15450867652893066 nickel 1247007417678833 uneximbank 10925413131713867 platinum 8708802223205566 roubles 83026442527771 moscow 8118297100067139 russian 7876293182373047 feldman 7725433826446533 interrosimpex 7725433826446533 6r00032214143251416323316212621173 287918219919 Top Terms octavia 14064229170481363 skoda 13854314804077148 sedan 8558053016662598 octavias 8547192096710205 kalma 7802151203155518 vw 7316673119862874 model 6555060386657715 crowns 6507203102111816 skodas 6345716953277588 volkswagen 6334976593653361 14 15 7r11516132456182333101174102317 118753863131874 Top Terms 211 14927149295806885 measure 12132993698120117 tech 1113357400894165 california 10693992614746094 proposition 9519742488861084 ballot 9508709192276001 lawsuits 939264965057373 doerr 8708802223205566 proponents 799928092956543 valley 7407749176025391 8r026901120207108610957122101 175094810151 Top Terms cocoa 12384515571594239 exporters 850833672114781 ivory 821403864451817 tonnes 671575323513576 crop 6522159004211426 abidjan 63893278803144185 caistab 551087145124163 coast 55066701071602955 coasts 4897656372615269 97 4866566862378802 9r006240010237002023701048601002 02020328030 Top Terms china 2694108472310831 chinese 2158722143216715 hong 21480606425991082 kong 19270160045971756 he 18345288953052552 beijing 18224368677171905 his 16468639969146102 has 1627261827174179 chinas 16272221035669168 would 15738226572219431 15 UNIDADE Algoritmos e Big Data na Prática com Apache Mahout 10r1500289280037193000028447432518ab out0586although145 Top Terms hoffa 2619202709197998 ballots 2479529571533203 teamsters 17274595260620117 carey 15327719688415527 omara 13380844116210938 quindel 13380844116210938 careys 12153128623962402 election 11104988098144531 counted 11062716484069824 votes 11028792381286621 Ao se analisar os clusters gerados observase mais claramente nos clusters 3 e 9 que possuem um tema em comum Por exemplo no cluster 3 os dez termos estão relacionados à computação enquanto que no cluster 9 percebese claramente o as sunto de China e cidades portanto certamente seria um agrupamento por assuntos nas postagens de blogs analisadas A saída do comando exibe o raio de atuação do centroide com a variável espe cífica e seu valor de raio associado Para a ordenação dos termos exibida a saída traz o valor de cada um dos termos para o cluster gerado Os diversos algoritmos implementados em Mahout poderão ser implantados em projetos reais e dependerão de integrações ou implementações específicas dado o modelo de negócio ou tecnologias utilizadas Importante O projeto Mahout possui integrações e implementações em linguagem escala e a pos sibilidade de execução dos algoritmos usando a estrutura do projeto Spark outra po derosa ferramenta para Big Data e que utiliza a estrutura do projeto hadoop Importante 16 17 Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade Sites Aprendizado de Máquina Recomendação de Restaurantes com o Apache Mahout Pragmatismoio Segue o link de um exemplo de execução de algoritmos em Mahout para sistemas de recomendação httpsgooglFNb5Ym Introdução ao Apache Mahout Segue o link do portal da IBM que traz um exemplo e introdução ao projeto Mahout httpsgooglMrxUue Apache Mahout Alexandre Volpi Segue outro link que traz um artigo sobre o Mahout httpsgoogl9q3mvw Apache Mahout parte três Alexandre Volpi Segue um exemplo de execução de um sistema de recomendação passo a passo com Mahout httpsgoogldfFeUn 17 UNIDADE Algoritmos e Big Data na Prática com Apache Mahout Referências SEAN Owen Robin Anil Ted Dunning and Ellen Friedman Mahout in Action Greenwich CT USA Manning Publications Co 2011 SOUZA Alberto Messias da Costa Uma nova arquitetura para Internet das Coisas com análise e reconhecimento de padrões e processamento com Big Data 2015 Tese Doutorado em Sistemas Eletrônicos Escola Politécnica Universidade de São Paulo São Paulo 2015 Disponível em httpwww tesesuspbrtesesdisponiveis33142tde20062016105809 Acesso em 20170307 THEODORIDIS S KOUTROUMBAS K Pattern Recognition 4th ed Sl Academic Press 2008 18