14 alata otvorenog koda za iskorištavanje strojnog učenja

Filtriranje neželjene pošte, prepoznavanje lica, mehanizmi za preporuke - kada imate velik skup podataka na kojem želite izvršiti prediktivnu analizu ili prepoznavanje uzoraka, strojno učenje je pravi put. Razmnožavanje besplatnog softvera otvorenog koda olakšalo je strojno učenje kako na pojedinačnim strojevima, tako i na većini popularnih programskih jezika. Ovi alati otvorenog koda uključuju biblioteke za Python, R, C ++, Java, Scala, Clojure, JavaScript i Go.

Apache Mahout

Apache Mahout pruža način za izgradnju okruženja za hosting aplikacija za strojno učenje koje se mogu brzo i učinkovito skalirati kako bi udovoljili potražnji. Mahout uglavnom radi s drugim poznatim Apacheovim projektom, Sparkom, i izvorno je osmišljen za rad s Hadoop-om radi pokretanja distribuiranih aplikacija, ali je proširen i za rad s drugim distribuiranim pozadinskim krajevima poput Flinka i H2O.

Mahout koristi jezik specifičan za domenu u Scali. Verzija 0.14 glavni je interni refaktor projekta, zasnovan na Apache Spark 2.4.3 kao zadanoj.

Sastaviti

Sastavite, Innovation Labs cilja na uobičajeno pitanje s modelima strojnog učenja: označavanje sirovih podataka, što može biti spor i naporan proces, ali bez kojeg model strojnog učenja ne može donijeti korisne rezultate. Sastavljanje vam omogućuje da na Pythonu napišete skup funkcija označavanja podataka, tako da se označavanje može izvršiti što je više moguće programski. Razne transformacije i pragovi mogu se postaviti na vaše podatke kako bi se postupak označavanja olakšao, poput stavljanja podataka u kante na temelju diskretnih vrijednosti ili kvantila.

Osnovni ML alati

Appleov Core ML okvir omogućuje vam integriranje modela strojnog učenja u aplikacije, ali koristi vlastiti zasebni format modela učenja. Dobra vijest je da ne morate pretražiti modele u Core ML formatu da biste ih koristili; možete pretvoriti modele iz gotovo svakog najčešće korištenog okvira za strojno učenje u Core ML pomoću Core ML Toolsa.

Core ML Tools radi kao Python paket, pa se integrira s bogatstvom Python knjižnica i alata za strojno učenje. Modeli TensorFlow, PyTorch, Keras, Caffe, ONNX, Scikit-learn, LibSVM i XGBoost mogu se pretvoriti. Modeli neuronskih mreža također se mogu optimizirati za veličinu korištenjem kvantizacije nakon treninga (npr. Na malu dubinu bita koja je još uvijek točna).

Korteks

Cortex pruža prikladan način za posluživanje predviđanja iz modela strojnog učenja koristeći Python i TensorFlow, PyTorch, Scikit-learn i druge modele. Većina paketa Cortex sastoji se od samo nekoliko datoteka - vaše osnovne Python logike, datoteke cortex.yaml koja opisuje koje modele koristiti i koje vrste računalnih resursa treba dodijeliti te datoteke requirements.txt za instaliranje svih potrebnih Python zahtjeva. Cijeli je paket postavljen kao Docker spremnik na AWS ili neki drugi sustav hostinga kompatibilan s Dockerom. Resursi računanja dodijeljeni su na način koji odražava definicije korištene u Kubernetesu za iste, a za brže posluživanje možete koristiti GPU-ove ili Amazon Inferentia ASIC.

Featuretools

Inženjering značajki ili stvaranje značajki uključuje uzimanje podataka koji se koriste za osposobljavanje modela strojnog učenja i izradu, obično ručno, transformirane i agregirane verzije podataka koja je korisnija za obuku modela. Featuretools vam daje funkcije za to pomoću Python objekata visoke razine izgrađenih sintezom podataka u podatkovnim okvirima, a to može učiniti za podatke izvučene iz jednog ili više podatkovnih okvira. Featuretools također nudi uobičajene primitive za operacije sinteze (npr. time_since_previousZa osiguravanje vremena proteklog između instanci vremenski označenih podataka), tako da ih ne morate sami valjati.

GoLearn

GoLearn, knjižnica strojnog učenja za Googleov jezik Go, stvorena je s dvostrukim ciljevima jednostavnosti i prilagodljivosti, prema programeru Stephenu Whitworthu. Jednostavnost leži u načinu na koji se podaci učitavaju i obrađuju u knjižnici, što je oblikovano prema SciPyu i R. Prilagodljivost leži u tome kako se neke od podatkovnih struktura mogu lako proširiti u aplikaciji. Whitworth je također kreirao omot Go za biblioteku Vowpal Wabbit, jednu od knjižnica koje se nalaze u Shogun alatu.

Gradio

Jedan od čestih izazova prilikom izrade aplikacija za strojno učenje je izgradnja robusnog i lako prilagodljivog korisničkog sučelja za modele za obuku i mehanizme koji služe predviđanju. Gradio nudi alate za stvaranje korisničkog sučelja zasnovanog na webu koji vam omogućuje interakciju sa vašim modelima u stvarnom vremenu. Nekoliko uključenih uzoraka projekata, poput ulaznih sučelja za klasifikator slike Inception V3 ili model prepoznavanja rukopisa MNIST, daju vam ideju o tome kako možete koristiti Gradio sa svojim projektima.

H2O

H2O, koji je sada u svojoj trećoj značajnoj reviziji, pruža cijelu platformu za strojno učenje u memoriji, od treninga do posluživanja predviđanja. Algoritmi H2O prilagođeni su poslovnim procesima - na primjer, predviđanju prijevara ili trendova - umjesto, recimo, analizi slike. H2O može samostalno komunicirati s HDFS trgovinama, na vrhu YARN, u MapReduceu ili izravno u Amazon EC2 instanci.

Hadoop mavensi mogu koristiti Javu za interakciju s H2O, ali okvir također nudi vezanja za Python, R i Scala, omogućujući vam interakciju sa svim knjižnicama dostupnim na tim platformama. Također se možete vratiti na REST pozive kao način integriranja H2O u većinu cjevovoda.

Oriks

Oryx, ljubaznošću kreatora distribucije Cloudera Hadoop, koristi Apache Spark i Apache Kafka za pokretanje modela strojnog učenja na podacima u stvarnom vremenu. Oryx pruža način za izgradnju projekata koji zahtijevaju odluke u ovom trenutku, poput mehanizama za preporuke ili otkrivanja anomalija uživo, koji se temelje na novim i povijesnim podacima. Verzija 2.0 gotovo je potpuni redizajn projekta, a njegove su komponente labavo povezane u lambda arhitekturu. Novi algoritmi i nove apstrakcije za te algoritme (npr. Za odabir hiperparametara) mogu se dodati u bilo kojem trenutku.

PyTorch Munja

Kad moćan projekt postane popularan, često ga nadopunjuju projekti trećih strana koji ga čine lakšim za upotrebu. PyTorch Lightning pruža organizacijski omot za PyTorch, tako da se možete usredotočiti na kôd koji je važan, umjesto da pišete obrazac za svaki projekt.

Lightning projekti koriste strukturu zasnovanu na klasi, pa je svaki uobičajeni korak za projekt PyTorch inkapsuliran u metodu klase. Petlje treninga i provjere valjanosti su poluautomatizirane, tako da za svaki korak trebate pružiti samo svoju logiku. Također je lakše postaviti rezultate treninga u više GPU-a ili u različite hardverske kombinacije, jer su upute i reference objekata za to centralizirane.

Scikit-nauči

Python je postao programski jezik za matematiku, znanost i statistiku zbog svoje jednostavnosti usvajanja i širine knjižnica dostupnih za gotovo bilo koju aplikaciju. Scikit-learn koristi ovu širinu gradeći na vrhu nekoliko postojećih Python paketa - NumPy, SciPy i Matplotlib - za matematički i znanstveni rad. Rezultirajuće knjižnice mogu se koristiti za interaktivne aplikacije "workbench" ili ugraditi u drugi softver i ponovno upotrijebiti. Komplet je dostupan pod BSD licencom, tako da je potpuno otvoren i može se ponovno koristiti.

Shogun

Shogun je jedan od najdugovječnijih projekata u ovoj kolekciji. Stvoren je 1999. godine i napisan na C ++, ali se može koristiti s Java, Python, C #, Ruby, R, Lua, Octave i Matlab. Najnovija glavna verzija, 6.0.0, dodaje izvornu podršku za Microsoft Windows i jezik Scala.

Iako popularan i širok spektar, Shogun ima konkurenciju. Druga knjižnica strojnog učenja temeljena na C ++, Mlpack, postoji tek od 2011. godine, ali tvrdi da je brža i lakša za rad (putem integriranijeg skupa API-ja) od konkurentskih knjižnica.

Iskra MLlib

Biblioteka strojnog učenja za Apache Spark i Apache Hadoop, MLlib može se pohvaliti mnogim uobičajenim algoritmima i korisnim vrstama podataka, dizajniranim za brzu i opsežnu upotrebu. Iako je Java primarni jezik za rad u MLlibu, korisnici Pythona mogu povezati MLlib s bibliotekom NumPy, korisnici Scale mogu pisati kod protiv MLlib, a korisnici R mogu se priključiti na Spark od verzije 1.5. Verzija 3 MLliba usredotočena je na korištenje Spark-ovog DataFrame API-ja (za razliku od starijeg RDD API-ja) i pruža mnoge nove funkcije klasifikacije i ocjenjivanja.

Drugi projekt, MLbase, nadovezuje se na MLlib kako bi olakšao dobivanje rezultata. Umjesto pisanja koda, korisnici postavljaju upite putem deklarativnog jezika à la SQL.

Weka

Weka, koju je stvorila Grupa za strojno učenje na Sveučilištu Waikato, naplaćuje se kao „strojno učenje bez programiranja“. To je GUI radni stol koji osposobljava renglere podataka za sastavljanje cjevovoda za strojno učenje, obuku modela i pokretanje predviđanja bez potrebe za pisanjem koda. Weka radi izravno s R, Apache Spark i Python, potonji putem izravnog omotača ili kroz sučelja za uobičajene numeričke knjižnice poput NumPy, Pandas, SciPy i Scikit-learn. Velika Wekina prednost je u tome što pruža pregledna, prijateljska sučelja za svaki aspekt vašeg posla, uključujući upravljanje paketima, predobradu, klasifikaciju i vizualizaciju.