1. Apache Hadoop 樽n conjunc釘ie cu MahoutBudi Steliana:steliana.budai@infoiasi.ro Odata cu cresterea masiv, atat a datelor structurate cat si a celor nestructurate, apare nevoia de a sti ce se afl in aceste date. Invatarea automat este folosita pentru a afla ce este 樽n aceste date cu un input uman minim. Construit peste Apache Handoop, Mahout rezolv o serie de probleme de 樽nv釘are automat folosind terabytes de date pe mii de calculatoareKeywords: Mahout, Hadoop, clasificare, Bayes, SVMCe este Handoop?Cutarea informa釘iilor pe web folosind Google sau Yahoo se face foarte repede deoarece se foloseste algoritmul Map Reduce. Acesta este o tehnologie porprietar. Apache vine cu un framework map reduce propriu numit HadoopApache Hadoop este un framework java ce ofera posibilitatea aplica釘iilor s lucreze cu mii de noduri si cantita釘i mari de date. Handoop este un proiect Apache fiind folosit i construit de o comunitate format din persoane din intreaga lume. Yahoo are cea mai mare contributie la acest proiect, folosind Handoop la cautri si publicitate. Alti contribuitori sunt Google si IBM, care il folosesc pentru cursuri universitare si programare distribuit.Trsaturi Handoopeste un framework pentru rularea aplica釘iilor pe clustere, oferind aplica釘iilor siguran釘a i posobilitatea de a migra datele
2. poate rula in trei moduri diferite, depinzand de modul de distributie al proceselor:
4. pseudo distribuit ruleaza pe o singura masina cu diferiti demoni Handoop rulati ca procese java diferite
5. distribuit complet sau modul cluster o masina din cluster este NameNod(are grija de namespace, ) ul si alta este JobTraker - ul
6. implementeaz paradigma map reduce, care se bazeaza pe faptul ca aplica釘ia este divizat 樽n mici fragmente fiecare din ele putand fi executat sau reexecutat pe fiecare nod din cluster. Map Reduce este o combinatie a func釘iilor map() i reduce()
7. Map: ofera functionalitate pentru procesare datelor de tip cheie valoare pentru a genera perechi de tip cheie valoare pentru output
8. Reduce: include functionalitate pentru colecatrea output ului de la map - uri de procesare paralele si crearea otputului din datele colectate.
9. ofera un sistem de fisiere distribuit care stocheaz datele pe noduri. Atat map/reduce cat i fiierele de sistem distribuite sunt create astfel 樽ncat eecurile din noduri sunt tratate de frameworkExemplu Map Reduce pentru transformarea textului cu spa釘ii 樽n text fr spa釘iipublic static class Map extends MapReduceBaseimplements Mapper {private Text initialText = new Text();private Text textTransformed = new Text();public void map(LongWritable key, Text inputs,OutputCollectoroutput, Reporter reporter) throws IOException {String input = inputs.toString();int length = input.length(); String transformed = new String();for(int i=length-1; i>=0; i--){if(input.get(i)!= )transformed+= input.charAt(i));}initialText.set(inputString);textTransformed.set(transformed);output.collect(inputText,reverseText);}}public static class Reduce extends MapReduceBaseimplements Reducer {public void reduce(Text key, Iterator values,OutputCollector output,Reporter reporter) throws IOException {while (values.hasNext()) {output.collect(key, values.next());}}}MahoutCe este Mahout?Subproiect Hadoop pentru dezvoltarea algoritmilor de 樽nvatare automat scalabili, comerciali. Numele a fost ales in respect fata de Handoop, al crui logo este un elefant. Mahout inseamna om care conduce un elefant.La momentul actual Mahout ofer support pentru urmtoarele: recomandare : 樽nvat din comportamentul user-ului i 樽ncearc s gseasc ce i-ar place user-ului;clustering: se grupeaz documente text si se pun 樽n grupuri de documente 樽nrudite;clasificare: se 樽nvat din documentele existente cum arat un document de un anumit tip, fiind capabil ulterior sa eticheteze un anumit document intr-o anumit categorie.Exemple practicesepararea informatiei importante de spam;Fig 1: proiect Apahe ce 樽ncearc s identifice spamul gruparea stirilor in func釘ie de tema; gasirea programatorilor cu interese similare; descoperirea grupurilor cu rezultate de cautare inrudite;sortarea dupa relevan釘.Ce este Clasificarea?Clasificarea: se 樽nvat din categoriile de documente existente cum arat documentele de o anumita categorie; dat fiind un nou document acesta va fi asignat cu urin釘 unei categorii.Exemplu de folosire al clasificariiavem: un motor de cautare se vrea: indexarea paginiolor pe o anumita temrecomandarea clipurilor videoFig 2: rezultat al cutrii pe You Tube al cuvantului ScrubsRSS (imput:canale RSS, output: adu mi pe cel mai nou si mai bun)Fig3: imaginea preluat de la adresa http://cwiki.apache.org/MAHOUT/bookstutorialstalks.data/froscon.pdfrecomandare de ziare noi(input: ziare preferate si lista de noi aparitii, output: recomandare de ziare noi )Fig 4: imagine preluat de la adresa http://cwiki.apache.org/MAHOUT/bookstutorialstalks.data/froscon.pdfoferirea de suport pentru debugpoate face cautarea de job uri mai uoara(gasirea de job uri postate pe internet i extragerea automat a locului, titlului, datei)Fig 5: imagine preluat de la adresa http://cwiki.apache.org/MAHOUT/bookstutorialstalks.data/froscon.pdfagregarea informatiei(input: date gasite pe site uri sociale si motoare de cautare obisnuite, output: informatii despre o persoana sau firma)convertirea de text scris de man 樽n text pe calculatorAlgoritmi pentru clasificareRegresie Logisticse bazeaza pe predic釘ia probabilitatii de indeplinire a unui eveniment
10. se foloseste de variabile de predictie care pot fi numerice sau de alt tip
11. este echivalentul discriminator pentru Bayes naiv. Nu modeleaz probabilitatea datei de input cum face acesta, deci nu poate face presupuneri false despre ditribu釘ia datelor de inputNaive BayesNaive Bayes este rapid si usor de implementat, fa釘a de al釘i algoritmi care sunt mai putin erona釘i, dar mult mai len釘i.Este cel mai des intalnit la filtrele de spam. In ciuda simplit釘ii i a presupunerilor na誰ve, s a dovedit a fi foarte bun in practic. Pentru a fi clasificate obiectele sunt reprezentate prin caracteristici numerice:Exemplu :la email spam: fiecare caracteristica indic daca un anumit cuvant este prezent sau nu in mail.Algoritmul are doua parti invatare si aplicare.Inainte de a se putea rula trainer ul trebuie efectuat o munc de pregtire pentru a seta o serie de documente pentru training i un set de documente pentru testare. WikipediaDatasetCreatorDriver, inclus in sursele Mahout 樽mparte documentele 樽n func釘ie categorii de interes. Categoria de interes poate fi orice categorie Wikipedia valid. Fie domeniile de interes moda, stiin釘a, sport. Orice categorie Wikipedia care are o categorie din acestea trei va fi pus 樽ntr un grup 樽mpreun cu alte documente din aceeai categorie. Fiecare document este normalizat si ii este eliminat punctua釘ia si alte elemente de care nu este nevoie pentru a face clasificarea. Documentele de test i training nu trebuie sa fie aceleai.Dupa ce datele de test i de training sunt setate se poat rula TrainClassifier, care va 樽ncerca s clasifice documentele. Va rezulta o cantitate mare de loguri atat de la Mahout cat i de la Hadoop. Output ul testului este un set de date numit matrice de confuzie. Aceasta descrie cate rezultate au fost correct clasificate i cate incorrect pentru fiecare categorie.Se observa c aproximati 75% din date sunt corecte , ceea ce e mult mai bine decat ghicire random.In timpul invatarii, algoritmului ii este atasat un set de vectori, fiecare dintre ei fiind clasificat clasei careuia ii apartine obiectul. Din aceasta este dedusa combinatia de caracteristici ce apare in mod fecvent in spam uri. Avand aceasta informati este uor de dedus daca un mesaj este spam sau nu.Acest algoritm face numeroase presupuneri neadevarate despre date: un exemplu: se consider c toate caracteristicile obiectului sunt independente(contraexemplu: fie data fraza Statuia Libertatii
aceasta nu influenteaza probabilitatea de vedea grupul de cuvinteNew York)Naive Bayes Complementar樽ncearc s corecteze unele dintre problemele clasificatorului Bayes Naiv, dar 樽n acelai timp 樽ncearc s men釘in simplicitatea i vitezaSVMFiecare obiect este considerta un punct intr - un spatiu n - dimensional, n fiind numarul de atribute
14. 樽n timpul invatarii se incearca sa se gaseasca un hiperplan ce separa elementele true de cele false.
15. cum uneori este imposibil s se fac acest lucru, se va gsi hiperplanul care cauzeaza cele mai putine eroriPerceptron i Winnowambii algoritmi sunt clasificatori simpli comparabili . Fiind date informa釘ii de antrenament 樽ntr un spatiu n-dimensional ce e adnotat cu etichete binare, ei garanteaz gasirea unui hiperplan separator dac existIn contrast cu Perceptron, Winnow lucreaz doar pe vectori binari Desi algoritmii sunt simpli merg foarte bine pentru clasificare de text si sunt rapid de antrenat chiar pentru dat seturi uriase. Spre deosebire de Naive Bayes nu se bazeaza pe presupunerea ca toate atributele sunt independenteRetele neuronalesunt folosite pentru clasificarea obiectelor multi dimensionale;acestea sunt capabile sa invete nu numai hiperplane separatoare liniare ci si legaturi de decizie arbitrareRandom Forests este nevoie de cross validare sau un test separat pt a estima erorile, acestea fiind estimate intern in timpul rulriipasii algoritmului:adunarea paginilor webasignarea de etichete: in tema sau in afara temeigenerarea de vectori de proprietati a paginilor web(parsarea textului si imbunatatirea vectorilor cu ajutorul cuvintelor gasite)antrenarea unor algoritmi aplicarea algoritmilor antrenati unor date noi zXyFiecare pagina web este un punct intr un spatiu multi dimensionalFigura 1: spa釘iul multidimensional al paginilor webPros si Cons MahoutProsMahout scaleaza sesiunile de training cu implementarea handoop Mahout este Open SourceCons:nu scaleaza conform asteptarilorscalabilitatea este obtinuta folosind o pantapanta standard pe recomandare nu este foarte exact(exemple: Netflix test: succes -3% (0.98RMSE)), comparat cu alti algoritmi ce nu sunt inclusi in Mahout Factorizarea Matricilor (Netflix test: suces: 8.4% (0.87 RMSE))implementare ineficientaconsum de memorie si resurse enormdoar filtrare colaborativadoar algoritmi standardReferintehttp://en.wikipedia.org/wiki/Hadoop http://jeffeastman.blogspot.com/2008/03/what-is-mahout.html http://isabel-drost.de/hadoop/slides/google.pdf http://ml-site.grantingersoll.com/index.php?title=Incubator_proposal http://people.csail.mit.edu/jrennie/papers/icml03-nb.pdf http://denizoktar.wordpress.com/2009/08/03/mahout-review-by-iletken/ http://cwiki.apache.org/MAHOUT/bookstutorialstalks.data/froscon.pdf http://www.eu.apachecon.com/page_attachments/0000/0179/PG_20090313.pdf http://lucene.apache.org/mahouthttp://www.ibm.com/developerworks/java/library/j-mahout/index.htmlhttp://www.javaworld.com/javaworld/jw-09-2008/jw-09-hadoop.html?page=4