Creative Misuse of RapidMiner
Unul dintre cele mai amuzante evenimente de la conferința RapidMiner Wisdom este concursul live de proiectare a proceselor de analiză predictivă „Cine vrea să fie miner de date?”. În această competiție, participanții trebuie să proiecteze procese RapidMiner pentru un obiectiv dat în câteva minute. Sarcinile sunt legate de analiza predictivă și de analiza datelor în general, dar sunt destul de neobișnuite. De fapt, majoritatea provocărilor cer lucruri pe care RapidMiner nu ar fi trebuit să le facă niciodată.
În timpul RapidMiner Wisdom 2016 din New York, am avut din nou două sarcini pregătite pentru public. Trei concurenți curajoși au luptat unul împotriva celuilalt și a ceasului pentru a găsi soluția corectă (sau cel puțin ceva care să fie suficient de apropiat). Prima sarcină din acest an a fost:
Crearea versurilor complete ale melodiei „99 Bottles of Beer on the Wall”
Potrivit Wikipedia, „99 Bottles of Beer este un cântec popular anonim din Statele Unite care datează de la mijlocul secolului al XX-lea. Este un cântec tradițional atât în Statele Unite cât și în Canada. Este popular pentru a fi cântat în timpul călătoriilor lungi, deoarece are un format foarte repetitiv care este ușor de memorat, și poate dura mult timp pentru a fi cântat.”
Bine, da. Unii spun că există numeroase probleme cu acest cântec, dar acest lucru – deși este o lectură amuzantă – nu este subiectul acestei postări. (Apropo, cântecul a apărut de multe ori și în cultura populară: poate cel mai notabil, cel puțin pentru unii, în jocul Monkey Island.)
În orice caz, iată cum sună cântecul:
99 de sticle de bere pe perete, 99 de sticle de bere.
Dă una jos și dă-o mai departe, 98 de sticle de bere pe perete.
98 de sticle de bere pe perete, 98 de sticle de bere.
Dă una jos și dă-o mai departe, 97 de sticle de bere pe perete.
97 de sticle de bere pe perete, 97 de sticle de bere.
Dă una jos și dă-o mai departe, 96 de sticle de bere pe perete.
…
1 sticlă de bere pe perete, 1 sticlă de bere.
Dă una jos și paseaz-o, 0 sticle de bere pe perete.
Legile complete pot fi găsite aici, dar cred că ați prins ideea.
Acum putem rezolva sarcina de mai sus cu RapidMiner?
Să începem mai întâi cu o captură de ecran a soluției:
Începem cu operatorul „Generate Data” și generăm un set de date aleatorii cu doar 1 coloană și 100 de exemple (faceți setările corespunzătoare în parametrii operatorului). Aceasta nu este poate cea mai elegantă modalitate, dar este una dintre cele mai simple modalități din RapidMiner de a obține un set de date cu o anumită structură și dimensiune. Ca un pas următor, acum avem nevoie de numere de la 1 la 100 într-o coloană suplimentară. Din nou, există mai multe moduri de a realiza acest lucru, dar cel mai simplu este probabil să folosim operatorul „Generate ID”, care face exact acest lucru. Acum putem folosi „Select Attributes” și să eliminăm coloanele care au fost generate inițial de „Generate Data”, adică păstrăm doar noua noastră coloană „id”. Rezultatul este un set de date cu 100 de rânduri și numerele de la 1 la 100 într-o singură coloană numită „id”.
Acum toată logica are loc în următorul operator: „Generate Attributes”. Principala problemă care trebuie rezolvată este cum transformăm secvența de numere de la 1 la 100 într-o secvență de la 99 la 0? Ei bine, este simplu: putem genera o nouă valoare prin scăderea din 100 a „id”-ului curent din fiecare rând. În același timp, adăugăm restul versurilor din jurul acestor numere. Iată cum trebuie să setați parametrii din „Generate Attributes” pentru a realiza acest lucru:
Acum ați putea chiar să concatenați toate aceste noi coloane într-una singură dacă doriți. Vă las pe dumneavoastră să vă dați seama cum. Rezultatul final după executarea procesului arată atunci ca în următoarea captură de ecran (arătând doar începutul):
Dacă executați singur procesul, verificați și ultima linie. Recunosc că ne-am putea descurca un pic mai bine, deoarece versurile create se termină pe: „0 sticle de bere pe perete, 0 sticle de bere. Dă una jos și dă-o mai departe. -1 sticle de bere pe perete.” Ei bine, nu este nimic în neregulă cu -1 sticle de bere pentru matematicieni și fizicieni, dar unor sisteme IT s-ar putea să nu le placă numerele negative ale obiectelor.
Utilizarea RapidMiner pentru sarcini de acest gen este, desigur, un pic, ei bine, ciudată. Dar arată, de asemenea, cât de flexibilă și puternică este de fapt abordarea vizuală a RapidMiner. Alții au creat soluții în practic toate limbajele de programare de pe pământ, unele mai scurte și altele mai lungi decât altele. Dar eu aș prefera întotdeauna soluția RapidMiner în locul codului celor mai mulți dintre ei.
Mai jos este XML-ul procesului complet. Îl puteți salva într-un fișier arbitrar de pe sistem și puteți folosi „File -> Import Process…” pentru a-l introduce în RapidMiner.
Distracție plăcută încercând acest lucru!