Programmering

5 Python-distributioner til mastering af maskinlæring

Hvis du arbejder inden for statistik, datalogi eller maskinindlæring, er oddsene store, du bruger Python. Og med god grund også: Det rige økosystem af biblioteker og værktøj og bekvemmeligheden ved selve sproget gør Python til et fremragende valg.

Men hvilken Python? Der er en række distributioner af sproget, og hver enkelt er oprettet efter forskellige linjer og for forskellige målgrupper. Her har vi detaljeret fem Python-inkarnationer, fra de mest generiske til de mest specifikke, med detaljer om, hvordan de stabler op til håndtering af maskinlæringsjob.

Relateret video: Hvordan Python gør programmeringen nemmere

Python er perfekt til IT og forenkler mange slags arbejde, lige fra systemautomatisering til arbejde inden for banebrydende felter som maskinindlæring.

Anaconda Python

Anaconda er kommet frem som en vigtig Python-distribution, ikke kun for datalogi og maskinindlæring, men også til generel Python-udvikling. Anaconda bakkes op af en kommerciel udbyder med samme navn (tidligere Continuum Analytics), der tilbyder supportplaner for virksomheder.

Anaconda distro giver først og fremmest en Python-distribution udstyret med let adgang til de pakker, der ofte bruges i datavidenskab: NumPy, Pandas, Matplotlib osv. De er ikke bare bundtet med Anaconda, men tilgængelige via et tilpasset pakkehåndteringssystem kaldet Conda. Conda-installerede pakker kan omfatte vanskelige eksterne binære afhængigheder, der ikke kunne styres via Pythons egen Pip. (Bemærk, du kan stadig bruge Pip, hvis du vil, men du får ikke de fordele, som Conda giver for disse pakker.) Hver pakke holdes opdateret af Anaconda, og mange af dem er samlet med Intel MKL udvidelser til hastighed.

Den anden store fordel, som Anaconda giver, er et grafisk miljø, Anaconda Navigator. Navigatoren er ikke en IDE, men snarere en praktisk GUI-frontend til Anaconda-funktioner, herunder Conda-pakkehåndtering og brugerkonfigurerede virtuelle miljøer. Du kan også bruge Navigator til at administrere tredjepartsapplikationer såsom Jupyter-notesbøger og Visual Studio Code IDE.

En minimal installation af Anaconda, kaldet Miniconda, installerer kun nok af Anaconda-basen til at komme i gang, men kan udvides med andre Conda- eller Pip-installerede pakker, efterhånden som du har brug for dem. Dette er nyttigt, hvis du vil drage fordel af Anacondas rige biblioteksområde, men har brug for at holde tingene magre.

ActivePython

Datavidenskab er kun en af ​​anvendelsestilfælde til ActivePython, som blev designet til at fungere som en professionelt understøttet udgave af sproget med ensartede implementeringer på tværs af arkitekturer og platforme. Dette hjælper, hvis du bruger Python til datavidenskab på platforme som AIX, HP-UX og Solaris samt Windows, Linux og MacOS.

ActivePython forsøger at holde sig så tæt som muligt på Pythons oprindelige referenceinkarnation. I stedet for et specielt installationsprogram til komplekse matematik- og statistikpakker (Anaconda-tilgangen) kompilerer ActivePython forud for mange af disse pakker ved hjælp af Intel MKL-udvidelser, hvor det er nødvendigt, og giver dem som pakker med standardinstallationen af ​​ActivePython. De behøver ikke at være formelt installeret; de er tilgængelige lige ud af kassen.

Men hvis du vil opgradere til en nyere version af disse forudkompilerede pakker, skal du vente, indtil den næste version af ActivePython selv kommer ud. Dette gør ActivePython mere konsistent som helhed - en værdifuld ting at have, når reproducerbarheden af ​​resultater betyder noget - men også mindre fleksibel.

CPython

Hvis du vil begynde dit maskinlæringsarbejde fra bunden og ikke bruge andet end den officielle, almindelige vaniljeversion af Python, skal du vælge CPython. Så navngivet, fordi det er referenceudgaven af ​​Python-runtime skrevet i C, er CPython tilgængelig fra Python Software Foundation-webstedet og indeholder kun de nødvendige værktøjer til at køre Python-scripts og administrere pakker.

CPython giver mening, hvis du ønsker at skræddersy et Python-miljø til et maskinindlærings- eller datalogiprojekt, stoler du på dig selv til at gøre det rigtigt, og du vil ikke have nogen tredjepartsændringer, der kommer i vejen. Kilden til CPython er let tilgængelig, så du kan endda skræddersy alle ændringer, du måske vil foretage af hensyn til hastighed eller projektbehov.

På den anden side betyder brug af CPython, at du bliver nødt til at beskæftige dig med ind og ud af at installere og konfigurere pakker som NumPy med alle deres afhængigheder - hvoraf nogle skal jages og tilføjes manuelt.

Noget af dette arbejde er blevet mindre besværligt i løbet af de sidste par år, især nu hvor Pythons Pip-pakkehåndterer elegant installerer prækompilerede binære filer af den art, der bruges i mange datavidenskabelige pakker. Men der er stadig mange tilfælde, især i Microsoft Windows, hvor du bliver nødt til at samle alle brikkerne sammen manuelt - for eksempel ved manuelt at installere en C / C ++ -compiler.

En anden ulempe ved at bruge CPython er, at den ikke bruger nogen af ​​de præstationsaccelererende muligheder, der er nyttige i maskinlæring og datalogi, såsom Intels Math Kernel Library (MKL) udvidelser. Du bliver nødt til at opbygge NumPy- og SciPy-bibliotekerne for at bruge Intel MKL helt alene.

Enthought baldakin

Enthought Canopy-distributionen af ​​Python ligner Anaconda på mange måder. Det er konstrueret med datalogi og maskinindlæring som dets primære anvendelsestilfælde, leveres med sit eget kuraterede pakkeindeks og giver både grafiske frontendere og kommandolinjeværktøjer til styring af hele opsætningen. Virksomhedsbrugere kan også købe Enthought Deployment Server, et bag-the-firewall-pakkehåndteringssystem. Machine learning-pakker bygget til Canopy bruger Intel MKL-udvidelser.

Den største forskel mellem Anaconda og Canopy er omfanget. Baldakin er mere beskeden, Anaconda mere omfattende. Mens Canopy f.eks. Indeholder kommandolinjeværktøjer til oprettelse og styring af Python-virtuelle miljøer (nyttigt ved håndtering af forskellige sæt pakker til forskellige maskinlæringsarbejdsprocesser), giver Anaconda en GUI til det job. På den anden side inkluderer Canopy også en praktisk indbygget IDE - en kombinationsfilbrowser, Jupyter-notesbog og kodeditor - der er nyttig til at hoppe lige ind og komme på arbejde uden besvær.

WinPython

Den oprindelige mission bag WinPython var at levere en udgave af Python bygget specielt til Microsoft Windows. Da CPython-builds til Windows ikke var særlig robuste, udfyldte WinPython en nyttig niche. I dag er CPythons Windows-udgave ret god, og WinPython har vendt sig mod at udfylde revner, der stadig ikke er brolagt af CPython - især til datavidenskab og maskinindlæringsapplikationer.

Som standard er WinPython bærbar. Hele WinPython-distributionen passer ind i en enkelt mappe, der kan placeres hvor som helst og køre hvor som helst. En WinPython-installation kan leveres som et arkiv eller på et USB-drev, forudinstalleret med alle de miljøvariabler, pakker og scripts, der er nødvendige for et givet job. Det er en nyttig måde at pakke alt, hvad der er nødvendigt for at træne en bestemt model eller gengive et specifikt dataeksperiment. Eller du kan registrere en WinPython-installation med Windows og køre den som om den var installeret (og afregistrere den senere, hvis du ønsker det).

Mange af de sværere elementer i en maskinlæringscentreret Python-distribution er også dækket. De fleste af nøglebibliotekerne - NumPy, Pandas, Jupyter og grænseflader til R- og Julia-sproget er inkluderet som standard og bygget mod Intel MKL-udvidelser, hvor det er relevant. Mingw64 C / C ++ compileren leveres også pakket med NumPy i WinPython, så binære Python-udvidelser kan bygges fra kilden (for eksempel ved hjælp af Cython) uden at skulle installere en compiler.

WinPython har sin egen pakkeinstallatør, WPPM, der håndterer pakker, der kommer med forudbyggede binære filer såvel som pure-Python-pakker. Og for dem, der bare vil have en bare-version af WinPython uden pakker inkluderet som standard, tilbyder WinPython en "nul-version" i samme retning som Anacondas Miniconda.

Relateret video: Maskinindlæring og AI-dechifreret

Ved at bryde igennem hype omkring maskinlæring og kunstig intelligens taler vores panel gennem definitionerne og implikationerne af teknologien.