Programiranje

14 odprtokodnih orodij, ki kar najbolje izkoristijo strojno učenje

Filtriranje neželene pošte, prepoznavanje obrazov, mehanizmi za priporočila - če imate velik nabor podatkov, na katerem želite izvesti napovedno analizo ali prepoznavanje vzorcev, je strojno učenje prava pot. Širjenje brezplačne odprtokodne programske opreme je olajšalo strojno učenje tako na posameznih strojih kot tudi v večini priljubljenih programskih jezikov. Ta odprtokodna orodja vključujejo knjižnice za Python, R, C ++, Java, Scala, Clojure, JavaScript in Go.

Apache Mahout

Apache Mahout ponuja način za izdelavo okolij za gostovanje aplikacij strojnega učenja, ki jih je mogoče hitro in učinkovito prilagoditi potrebam. Mahout sodeluje predvsem z drugim znanim projektom Apache, Spark, in je bil prvotno zasnovan za sodelovanje s Hadoop-om zaradi izvajanja porazdeljenih aplikacij, vendar je bil razširjen tudi na druge distribuirane povratne konca, kot sta Flink in H2O.

Mahout uporablja jezik, specifičen za domeno, v Scali. Različica 0.14 je glavni notranji refaktor projekta, ki temelji na Apache Spark 2.4.3 kot privzeti.

Sestavi

Inovacijski laboratoriji Compose ciljajo na skupno težavo z modeli strojnega učenja: označevanje surovih podatkov, ki je lahko počasen in dolgočasen proces, vendar brez katerega model strojnega učenja ne more prinesti koristnih rezultatov. Sestavljanje vam omogoča, da v Python napišete nabor funkcij označevanja svojih podatkov, tako da lahko označevanje izvajate čim bolj programsko. Za lažji postopek označevanja lahko za vaše podatke nastavite različne transformacije in pragove, na primer dajanje podatkov v zabojnike na podlagi ločenih vrednosti ali kvantilov.

Osnovna orodja ML

Applovo ogrodje Core ML omogoča integracijo modelov strojnega učenja v aplikacije, vendar uporablja svoj lasten format učnega modela. Dobra novica je, da vam za uporabo modelov v formatu Core ML ni treba predoblikovati; z Core ML Tools lahko pretvorite modele iz skoraj vseh pogosto uporabljenih okvirov strojnega učenja v Core ML.

Core ML Tools deluje kot paket Python, zato se integrira z bogastvom knjižnic in orodij za strojno učenje Python. Modele TensorFlow, PyTorch, Keras, Caffe, ONNX, Scikit-learn, LibSVM in XGBoost je mogoče pretvoriti. Modele nevronskih omrežij je mogoče optimizirati tudi za velikost z uporabo kvantizacije po vadbi (npr. Do majhne globine, ki je še vedno natančna).

Korteks

Cortex ponuja priročen način za napovedovanje modelov strojnega učenja z uporabo modelov Python in TensorFlow, PyTorch, Scikit-learn in drugih. Večina paketov Cortex je sestavljenih iz le nekaj datotek - vaše osnovne Pythonove logike, datoteke cortex.yaml, ki opisuje, katere modele je treba uporabiti in katere vrste računskih virov je treba dodeliti, ter datoteko requirements.txt za namestitev potrebnih zahtev Pythona. Celoten paket je postavljen kot vsebnik Dockerja v AWS ali drug sistem, ki je združljiv z Dockerjem. Računski viri so razporejeni na način, ki odseva definicije, uporabljene v Kubernetesu za iste, za pospešitev strežbe pa lahko uporabite grafične procesorje ali Amazon Inferentia ASIC.

Featuretools

Inženiring funkcij ali ustvarjanje funkcij vključuje jemanje podatkov, ki se uporabljajo za usposabljanje modela strojnega učenja, in izdelavo, običajno ročno, preoblikovane in združene različice podatkov, ki je bolj koristna za urjenje modela. Featuretools vam omogoča, da to storite s pomočjo objektov Python na visoki ravni, zgrajenih s sintezo podatkov v podatkovnih okvirih, in to lahko stori za podatke, pridobljene iz enega ali več podatkovnih okvirov. Featuretools ponuja tudi običajne primitive za sintezne operacije (npr. time_since_previous, da zagotovite čas, ki je pretekel med primerki časovno žigosanih podatkov), zato vam jih ni treba sami valjati.

GoLearn

GoLearn, knjižnica strojnega učenja za Googlov jezik Go, je bil po besedah ​​razvijalca Stephena Whitwortha ustvarjen z dvojnimi cilji enostavnosti in prilagodljivosti. Preprostost je v načinu nalaganja in obdelave podatkov v knjižnici, ki je oblikovana po SciPy in R. Prilagodljivost je v tem, kako je mogoče nekatere podatkovne strukture enostavno razširiti v aplikaciji. Whitworth je ustvaril tudi ovitek Go za knjižnico Vowpal Wabbit, eno od knjižnic v orodjarni Shogun.

Gradio

Eden najpogostejših izzivov pri izdelavi aplikacij za strojno učenje je izdelava robustnega in enostavno prilagodljivega uporabniškega vmesnika za mehanizme za usposabljanje modelov in mehanizme za predvidevanje. Gradio ponuja orodja za ustvarjanje spletnih uporabniških vmesnikov, ki vam omogočajo interakcijo s svojimi modeli v realnem času. Številni vključeni vzorčni projekti, na primer vhodni vmesniki za klasifikator slik Inception V3 ali model prepoznavanja rokopisa MNIST, vam dajo idejo, kako lahko Gradio uporabljate pri svojih projektih.

H2O

H2O, ki je zdaj v tretji večji reviziji, ponuja celotno platformo za strojno učenje v pomnilniku, od usposabljanja do služenja napovedi. Algoritmi H2O so namenjeni poslovnim procesom - na primer goljufijam ali napovedim trendov - in ne, recimo, analizi slike. H2O lahko samostojno komunicira s trgovinami HDFS, na vrhu YARN, MapReduce ali neposredno v primerku Amazon EC2.

Hadoop mavens lahko uporablja Java za interakcijo s H2O, vendar ogrodje ponuja tudi povezave za Python, R in Scala, kar vam omogoča tudi interakcijo z vsemi knjižnicami, ki so na voljo na teh platformah. Lahko se vrnete tudi na klice REST kot način za vključitev H2O v večino katerega koli cevovoda.

Oriks

Oryx, z dovoljenjem ustvarjalcev distribucije Cloudera Hadoop, uporablja Apache Spark in Apache Kafka za izvajanje modelov strojnega učenja na podatkih v realnem času. Oryx ponuja način za gradnjo projektov, za katere so potrebne trenutne odločitve, kot so priporočni mehanizmi ali odkrivanje anomalij v živo, ki jih podpirajo novi in ​​zgodovinski podatki. Različica 2.0 je skoraj popolna prenova projekta, saj so njegovi sestavni deli ohlapno povezani v lambda arhitekturi. Kadar koli lahko dodate nove algoritme in nove abstrakcije za te algoritme (npr. Za izbiro hiperparametrov).

PyTorch Lightning

Ko močan projekt postane priljubljen, ga pogosto dopolnijo projekti tretjih oseb, ki olajšajo njegovo uporabo. PyTorch Lightning ponuja organizacijski ovoj za PyTorch, tako da se lahko osredotočite na kodo, ki je pomembna, namesto da pišete vzorčne vzorce za vsak projekt.

Projekti strele uporabljajo strukturo, ki temelji na razredu, zato je vsak skupni korak za projekt PyTorch vključen v metodo razreda. Zanke za vadbo in preverjanje veljavnosti so polavtomatske, zato morate za vsak korak navesti le svojo logiko. Rezultate usposabljanja je tudi lažje nastaviti v več grafičnih procesorjih ali različnih mešanicah strojne opreme, ker so navodila in reference predmetov za to centralizirane.

Scikit-nauči se

Python je postal enostaven programski jezik za matematiko, znanost in statistiko zaradi enostavnosti sprejemanja in širine knjižnic, ki so na voljo za skoraj vsako aplikacijo. Scikit-learn izkoristi to širino, tako da gradi več matematičnih in naravoslovnih paketov Python - NumPy, SciPy in Matplotlib. Nastale knjižnice lahko uporabimo za interaktivne aplikacije "workbench" ali jih vgradimo v drugo programsko opremo in ponovno uporabimo. Komplet je na voljo pod licenco BSD, zato je popolnoma odprt in ponovno uporaben.

Shogun

Shogun je eden najdaljših projektov v tej zbirki. Ustvarjen je bil leta 1999 in napisan v jeziku C ++, vendar ga je mogoče uporabljati z Java, Python, C #, Ruby, R, Lua, Octave in Matlab. Najnovejša glavna različica, 6.0.0, dodaja izvorno podporo za Microsoft Windows in jezik Scala.

Čeprav je Shogun priljubljen in širok, ima konkurenco. Druga knjižnica strojnega učenja na osnovi C ++, Mlpack, obstaja šele od leta 2011, vendar trdi, da je hitrejša in lažja za delo (z bolj integriranim naborom API-jev) kot konkurenčne knjižnice.

Spark MLlib

Knjižnica strojnega učenja za Apache Spark in Apache Hadoop, MLlib, se ponaša s številnimi običajnimi algoritmi in uporabnimi podatkovnimi vrstami, zasnovanimi za hitro in obsežno delovanje. Čeprav je Java primarni jezik za delo v MLlib, lahko uporabniki Pythona MLlib povežejo s knjižnico NumPy, uporabniki Scale pa lahko napišejo kodo proti MLlib, uporabniki R pa se od različice 1.5 lahko vključijo v Spark. Različica 3 MLlib se osredotoča na uporabo Spark-ovega API-ja DataFrame (v nasprotju s starejšim API-jem RDD) in ponuja številne nove funkcije razvrščanja in ocenjevanja.

Drugi projekt, MLbase, temelji na MLlib, da olajša iskanje rezultatov. Uporabniki namesto da pišejo kodo, poizvedujejo z izjavnim jezikom à la SQL.

Weka

Weka, ki jo je ustvarila skupina za strojno učenje na univerzi Waikato, je označena kot »strojno učenje brez programiranja«. To je delovna miza z grafičnim uporabniškim vmesnikom, ki omogoča nadzornikom podatkov, da sestavljajo cevovode strojnega učenja, trenirajo modele in izvajajo napovedi, ne da bi morali pisati kodo. Weka deluje neposredno z R, Apache Spark in Python, slednji z neposrednim ovojem ali prek vmesnikov za običajne numerične knjižnice, kot so NumPy, Pandas, SciPy in Scikit-learn. Velika prednost Weke je, da ponuja brskalne, prijazne vmesnike za vse vidike vašega dela, vključno z upravljanjem paketov, predobdelavo, klasifikacijo in vizualizacijo.

$config[zx-auto] not found$config[zx-overlay] not found