Programmering

5 Python-distribusjoner for å mestre maskinlæring

Hvis du jobber med statistikk, datavitenskap eller maskinlæring, er oddsen høy at du bruker Python. Og med god grunn også: Det rike økosystemet til biblioteker og verktøy, og bekvemmeligheten av selve språket, gjør Python til et utmerket valg.

Men hvilken Python? Det er en rekke distribusjoner av språket, og hver og en er opprettet etter forskjellige linjer og for forskjellige målgrupper. Her har vi detaljert fem Python-inkarnasjoner, fra de mest generiske til de mest spesifikke, med detaljer om hvordan de samles opp for håndtering av maskinlæringsjobber.

Relatert video: Hvordan Python gjør programmeringen enklere

Perfekt for IT, forenkler Python mange typer arbeid, fra systemautomatisering til arbeid i banebrytende felt som maskinlæring.

Anaconda Python

Anaconda har kommet frem som en viktig Python-distribusjon, ikke bare for datavitenskap og maskinlæring, men også for generell Python-utvikling. Anaconda støttes av en kommersiell leverandør med samme navn (tidligere Continuum Analytics) som tilbyr støtteplaner for bedrifter.

Anaconda distro gir først og fremst en Python-distribusjon utstyrt med enkel tilgang til pakkene som ofte brukes i datavitenskap: NumPy, Pandas, Matplotlib og så videre. De leveres ikke bare med Anaconda, men er tilgjengelige via et tilpasset pakkehåndteringssystem kalt Conda. Conda-installerte pakker kan inneholde vanskelige eksterne binære avhengigheter som ikke kunne håndteres gjennom Pythons egen Pip. (Merk at du fremdeles kan bruke Pip hvis du vil, men du får ikke fordelene som Conda gir for disse pakkene.) Hver pakke holdes oppdatert av Anaconda, og mange av dem er samlet med Intel MKL utvidelser for hastighet.

Den andre store fordelen som Anaconda gir, er et grafisk miljø, Anaconda Navigator. Navigatoren er ikke en IDE, men snarere en praktisk GUI-frontend for Anaconda-funksjoner, inkludert Conda-pakkebehandling og brukerkonfigurerte virtuelle miljøer. Du kan også bruke Navigator til å administrere tredjepartsapplikasjoner som Jupyter-notatbøker og Visual Studio Code IDE.

En minimal installasjon av Anaconda, kalt Miniconda, installerer bare nok av Anaconda-basen for å komme i gang, men kan utvides med andre Conda- eller Pip-installerte pakker etter behov. Dette er nyttig hvis du vil dra nytte av Anacondas rike utvalg av biblioteker, men trenger å holde ting magert.

ActivePython

Datavitenskap er bare en av brukssakene for ActivePython, som ble designet for å fungere som en profesjonelt støttet utgave av språket med konsistente implementeringer på tvers av arkitekturer og plattformer. Dette hjelper deg hvis du bruker Python for datavitenskap på plattformer som AIX, HP-UX og Solaris, samt Windows, Linux og MacOS.

ActivePython prøver å holde seg så tett som mulig til Pythons opprinnelige referanseinkarnasjon. I stedet for et spesielt installasjonsprogram for komplekse matte- og statistikkpakker (Anaconda-tilnærmingen), kompilerer ActivePython på forhånd mange av disse pakkene ved å bruke Intel MKL-utvidelsene der det er nødvendig, og gir dem som pakker med standardinstallasjonen av ActivePython. De trenger ikke å installeres formelt; de er tilgjengelige rett ut av esken.

Men hvis du vil oppgradere til en nyere versjon av disse forhåndskompilerte pakkene, må du vente til neste build av selve ActivePython kommer ut. Dette gjør ActivePython mer konsistent som helhet - en verdifull ting å ha når reproduserbarheten av resultatene betyr noe - men også mindre fleksibel.

CPython

Hvis du vil begynne maskinlæringsarbeidet ditt fra bunnen av og ikke bruke annet enn den offisielle, vaniljeversjonen av Python, velger du CPython. Så kalt fordi det er referanseutgaven av Python-kjøretiden skrevet i C, er CPython tilgjengelig fra Python Software Foundation-nettstedet, og gir bare verktøyene som trengs for å kjøre Python-skript og administrere pakker.

CPython er fornuftig hvis du ønsker å skreddersy et Python-miljø for et maskinlærings- eller datavitenskapsprosjekt, du stoler på deg selv å gjøre det riktig, og du vil ikke at noen tredjepartsendringer kommer i veien. Kilden for CPython er lett tilgjengelig, slik at du til og med kan kompilere alle endringer du måtte ønske å gjøre for hastighet eller prosjektbehov.

På den annen side betyr bruk av CPython at du må håndtere innsatsene for å installere og konfigurere pakker som NumPy, med alle deres avhengigheter, hvorav noen må jages og legges til manuelt.

Noe av dette arbeidet har blitt mindre belastende de siste årene, spesielt nå som Pythons Pip-pakkeforvalter elegant installerer forhåndskompilerte binærfiler av den typen som brukes i mange datavitenskapspakker. Men det er fortsatt mange tilfeller, spesielt på Microsoft Windows, der du må passe alle delene sammen for hånd - for eksempel ved å installere en C / C ++ kompilator manuelt.

En annen ulempe ved å bruke CPython er at den ikke bruker noen av de ytelsesakselererende alternativene som er nyttige innen maskinlæring og datavitenskap, for eksempel Intels Math Kernel Library (MKL) -utvidelser. Du må bygge NumPy- og SciPy-bibliotekene for å bruke Intel MKL alene.

Enthought baldakin

Enthought Canopy-distribusjonen av Python ligner på mange måter Anaconda. Den er konstruert med datalogi og maskinlæring som sin primære brukstilfelle, kommer med sin egen kuraterte pakkeindeks, og gir både grafiske frontender og kommandolinjeverktøy for å administrere hele oppsettet. Bedriftsbrukere kan også kjøpe Enthought Deployment Server, et pakkehåndteringssystem bak brannmuren. Maskinlæringspakker bygget for Canopy bruker Intel MKL-utvidelsene.

Hovedforskjellen mellom Anaconda og Canopy er omfanget. Baldakin er mer beskjeden, Anaconda mer omfattende. For eksempel, mens Canopy inkluderer kommandolinjeverktøy for å opprette og administrere virtuelle Python-miljøer (nyttig når du arbeider med forskjellige sett med pakker for forskjellige maskinlæringsarbeidsflyter), gir Anaconda en GUI for den jobben. På den annen side inkluderer Canopy også en praktisk innebygd IDE - en kombinasjonsfilleser, Jupyter-notatbok og kodeditor - som er nyttig for å hoppe rett inn og komme på jobb uten oppstyr.

WinPython

Det opprinnelige oppdraget bak WinPython var å tilby en utgave av Python bygget spesielt for Microsoft Windows. Da CPython builds for Windows ikke var spesielt robuste, fylte WinPython en nyttig nisje. I dag er CPythons Windows-utgave ganske bra, og WinPython har vendt seg mot å fylle sprekker som fremdeles ikke er brolagt av CPython - spesielt for datavitenskap og maskinlæringsapplikasjoner.

Som standard er WinPython bærbar. Hele WinPython-distribusjonen passer inn i en enkelt katalog som kan plasseres hvor som helst og kjøres hvor som helst. En WinPython-installasjon kan leveres som et arkiv eller på en USB-stasjon, forhåndsinstallert med alle miljøvariablene, pakkene og skriptene som trengs for en gitt jobb. Det er en nyttig måte å pakke sammen alt som trengs for å trene en bestemt modell eller reprodusere et spesifikt dataeksperiment. Eller du kan registrere en WinPython-installasjon med Windows og kjøre den som om den hadde blitt installert (og avregistrere den senere, hvis du ønsker det).

Mange av de vanskeligere elementene i en maskinlæringssentrert Python-distribusjon blir også dekket. De fleste av nøkkelbibliotekene - NumPy, Pandas, Jupyter og grensesnitt til R- og Julia-språkene - er inkludert som standard og bygget mot Intel MKL-utvidelser der det er relevant. Mingw64 C / C ++ kompilatoren kommer også pakket med NumPy i WinPython, slik at binære Python-utvidelser kan bygges fra kilden (for eksempel ved hjelp av Cython) uten å måtte installere en kompilator.

WinPython har sin egen pakkeinstallatør, WPPM, som håndterer pakker som kommer med forhåndsbygde binærfiler, så vel som pure-Python-pakker. Og for de som bare vil ha en bareversjon av WinPython uten pakker inkludert som standard, tilbyr WinPython en "nullversjon", i samme retning som Anacondas Miniconda.

Relatert video: Maskinlæring og AI-dekryptert

Ved å bryte gjennom sprøytenarkomanen rundt maskinlæring og kunstig intelligens, snakker panelet vårt gjennom definisjonene og implikasjonene av teknologien.

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