Programiranje

5 distribucij Pythona za obvladovanje strojnega učenja

Če opravljate delo na področju statistike, znanosti s področja podatkov ali strojnega učenja, je verjetnost, da uporabljate Python, velika. In tudi z dobrim razlogom: bogat ekosistem knjižnic in orodja ter priročnost samega jezika sta Python odlična izbira.

Ampak ki Python? Obstaja več distribucij jezika, vsaka pa je bila ustvarjena po različnih poteh in za različno občinstvo. Tu smo podrobno opisali pet inkarnacij Pythona, od najbolj splošnih do najbolj specifičnih, s podrobnostmi o tem, kako se zberejo za obdelavo opravil strojnega učenja.

Povezani video: Kako Python olajša programiranje

Kot nalašč za IT, Python poenostavlja številne vrste dela, od avtomatizacije sistema do dela na najsodobnejših področjih, kot je strojno učenje.

Anaconda Python

Anaconda je postala pomembna kot glavna distribucija Pythona, ne samo za področje podatkov in strojnega učenja, temveč tudi za razvoj Pythona za splošne namene. Anacondo podpira komercialni ponudnik z istim imenom (prej Continuum Analytics), ki ponuja načrte podpore za podjetja.

Distributer Anaconda ponuja predvsem distribucijo Pythona, ki ima enostaven dostop do paketov, ki se pogosto uporabljajo v znanosti o podatkih: NumPy, Pandas, Matplotlib itd. Z Anacondo niso priloženi preprosto, temveč so na voljo prek sistema za upravljanje paketov po meri, imenovanega Conda. Paketi, ki jih namesti Conda, lahko vključujejo zapletene zunanje binarne odvisnosti, ki jih ni bilo mogoče upravljati prek Pythonovega Pip-a. (Upoštevajte, da lahko še vedno uporabljate Pip, vendar ne boste dobili ugodnosti, ki jih za te pakete ponuja Conda.) Anaconda posodablja vsak paket in mnogi so sestavljeni z Intel MKL podaljški za hitrost.

Druga glavna prednost, ki jo Anaconda daje, je grafično okolje, Anaconda Navigator. Navigator ni IDE, temveč bolj priročen vmesnik grafičnega uporabniškega vmesnika za funkcije Anaconde, vključno z upraviteljem paketov Conda in uporabniško konfiguriranimi navideznimi okolji. Navigator lahko uporabljate tudi za upravljanje aplikacij drugih proizvajalcev, kot so zvezki Jupyter in IDE Visual Studio Code.

Minimalna namestitev Anaconde, imenovana Miniconda, namesti le toliko osnove Anaconde, da začnete, vendar jo lahko razširite z drugimi nameščenimi paketi Conda ali Pip, ko jih potrebujete. To je koristno, če želite izkoristiti bogato lestvico knjižnic Anaconde, vendar morate stvari držati vitke.

ActivePython

Podatkovna znanost je le eden izmed primerov uporabe ActivePythona, ki je bil zasnovan kot strokovno podprta izdaja jezika z doslednimi izvedbami v arhitekturah in platformah. To pomaga, če uporabljate Python za podatkovne vede na platformah, kot so AIX, HP-UX in Solaris, pa tudi Windows, Linux in MacOS.

ActivePython se poskuša čim bolj držati Pythonove prvotne referenčne inkarnacije. Namesto posebnega namestitvenega programa za zapletene pakete matematike in statistike (pristop Anaconda) ActivePython vnaprej zbere številne od teh paketov z razširitvami Intel MKL, kjer je to potrebno, in jih kot paketne pakete privzeto namesti ActivePython. Ni jih treba formalno namestiti; so na voljo takoj.

Če pa želite nadgraditi na novejšo različico teh vnaprej prevedenih paketov, boste morali počakati, da se prikaže naslednja zgradba ActivePythona. Zaradi tega je ActivePython bolj dosleden kot celota - dragocena stvar, kadar je ponovljivost rezultatov pomembna -, hkrati pa tudi manj prilagodljiv.

CPython

Če želite začeti s strojnim učenjem iz nič, ne da bi uporabili nič drugega kot uradno različico Pythona, navadne vanilije, izberite CPython. Tako imenovan, ker je referenčna izdaja izvajalnega okolja Python, napisanega v jeziku C, je CPython na voljo na spletnem mestu Python Software Foundation in ponuja samo orodja, potrebna za zagon skriptov Python in upravljanje paketov.

CPython je smiseln, če želite po meri izdelati okolje Python za projekt strojnega učenja ali znanosti o podatkih, če si zaupate, da boste to storili pravilno, in ne želite, da bi vas ovirale kakršne koli spremembe tretjih oseb. Vir za CPython je na voljo, zato lahko celo prilagodite morebitne spremembe, ki jih boste morda želeli zaradi hitrosti ali potreb projekta.

Po drugi strani pa uporaba CPythona pomeni, da se boste morali spoprijeti z drobnimi konci namestitve in konfiguriranja paketov, kot je NumPy, z vsemi njihovimi odvisnostmi - nekatere je treba loviti in dodati ročno.

Nekatera dela so v zadnjih nekaj letih postala manj obremenjujoča, zlasti zdaj, ko Pythonov upravitelj paketov Pip elegantno namesti vnaprej sestavljene binarne datoteke, ki se uporabljajo v številnih paketih podatkovne znanosti. Še vedno pa je veliko primerov, zlasti v operacijskem sistemu Microsoft Windows, ko boste morali vse dele zložiti ročno - na primer z ročno namestitvijo prevajalnika C / C ++.

Druga pomanjkljivost uporabe CPython je, da ne uporablja nobene možnosti za pospeševanje delovanja, uporabne v strojnem učenju in znanosti o podatkih, kot je razširitev Intelove knjižnice jedra matematike (MKL). Za samostojno uporabo Intel MKL bi morali zgraditi knjižnici NumPy in SciPy.

Miselna krošnja

Distribucija Python-a Enthought Canopy v marsičem spominja na Anacondo. Zasnovan je z znanostmi o podatkih in strojnim učenjem kot primarnimi primeri uporabe, prihaja z lastnim indeksom kuriranih paketov in ponuja tako grafična čelna dela kot orodja za ukazno vrstico za upravljanje celotne nastavitve. Poslovni uporabniki lahko kupijo tudi strežnik Enthought Deployment Server, sistem upravljanja paketov za požarnim zidom. Paketi strojnega učenja, izdelani za Canopy, uporabljajo razširitve Intel MKL.

Glavna razlika med Anacondo in Canopy je obseg. Nadstrešek je skromnejši, Anaconda bolj celovit. Na primer, medtem ko Canopy vključuje orodja ukazne vrstice za ustvarjanje in upravljanje navideznih okolij Python (koristno pri obravnavi različnih sklopov paketov za različne poteke strojnega učenja), Anaconda za to opravilo ponuja GUI. Po drugi strani pa Canopy vključuje tudi priročen vgrajen IDE - kombinirani brskalnik datotek, prenosnik Jupyter in urejevalnik kode - ki je koristen za skok naravnost in brez težav.

WinPython

Prvotno poslanstvo WinPythona je bilo zagotoviti izdajo Pythona, izdelano posebej za Microsoft Windows. Takrat, ko zgradbe CPython za Windows niso bile posebej robustne, je WinPython zapolnil uporabno nišo. Danes je CPythonova izdaja za Windows precej dobra, WinPython pa se je usmeril k zapolnitvi razpok, ki jih CPython še ni utrl - zlasti za aplikacije za podatkovne vede in strojno učenje.

WinPython je privzeto prenosljiv. Celotna distribucija WinPython se prilega enemu imeniku, ki ga lahko postavite kamor koli in zaženete kjer koli. Namestitev WinPython lahko dostavite kot arhiv ali na pogon USB, vnaprej pa namestite vse spremenljivke okolja, pakete in skripte, potrebne za določeno opravilo. To je koristen način za spakiranje vsega, kar je potrebno za usposabljanje določenega modela ali reprodukcijo določenega podatkovnega eksperimenta. Lahko pa registrirate namestitev WinPython v sistemu Windows in jo zaženete, kot da je bila prvotno nameščena (in jo po želji kasneje odjavite).

Zajeti so tudi številni bolj zapleteni elementi distribucije Pythona, ki se osredotoča na strojno učenje. Večina ključnih knjižnic - NumPy, Pandas, Jupyter in vmesniki do jezikov R in Julia - je privzeto vključena in zgrajena glede na razširitve Intel MKL, kjer je to primerno. Prevajalnik Mingw64 C / C ++ je prav tako pakiran z NumPy v WinPython, tako da je mogoče binarne razširitve Pythona zgraditi iz vira (na primer prek Cythona), ne da bi morali namestiti prevajalnik.

WinPython ima svoj program za namestitev paketov WPPM, ki obdeluje pakete, ki prihajajo z vnaprej izdelanimi binarnimi datotekami in paketi pure-Python. In za tiste, ki želijo samo golo kost različice WinPython brez privzeto vključenih paketov, WinPython ponuja "ničelno različico", enako kot Anaconda's Miniconda.

Sorodni video: Strojno učenje in dešifrirana umetna inteligenca

Prebrskajoč hrup okoli strojnega učenja in umetne inteligence, naš panel govori o definicijah in posledicah tehnologije.

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