Programování

5 distribucí Pythonu pro zvládnutí strojového učení

Pokud pracujete ve statistikách, datových vědách nebo strojovém učení, je vysoká pravděpodobnost, že používáte Python. A také z dobrého důvodu: Bohatý ekosystém knihoven a nástrojů a pohodlí samotného jazyka činí z Pythonu vynikající volbu.

Ale který Krajta? Existuje celá řada distribucí jazyka a každá byla vytvořena různými způsoby a pro různé publikum. Zde jsme podrobně popsali pět inkarnací Pythonu, od nejobecnějších po nejkonkrétnější, s podrobnostmi o tom, jak se hromadí pro zpracování úloh strojového učení.

Související video: Jak Python usnadňuje programování

Perfektní pro IT, Python zjednodušuje mnoho druhů práce, od automatizace systému až po práci v nejmodernějších oborech, jako je strojové učení.

Anaconda Python

Anaconda se proslavila jako hlavní distribuce v Pythonu, a to nejen pro datovou vědu a strojové učení, ale také pro obecný vývoj Pythonu. Anaconda je podporována komerčním poskytovatelem stejného jména (dříve Continuum Analytics), který nabízí plány podpory pro podniky.

Distribuce Anaconda poskytuje v první řadě distribuci Pythonu vybavenou snadným přístupem k balíčkům často používaným v datové vědě: NumPy, Pandas, Matplotlib atd. Nejsou jednoduše dodávány s Anacondou, ale jsou k dispozici prostřednictvím vlastního systému správy balíčků s názvem Conda. Balíčky nainstalované Conda mohou zahrnovat složité externí binární závislosti, které nelze spravovat prostřednictvím vlastního Pythonu Pip. (Všimněte si, že pokud chcete, můžete i nadále používat Pip, ale nezískáte výhody, které Conda pro tyto balíčky poskytuje.) Každý balíček udržuje Anaconda aktuální a mnoho z nich je kompilováno s Intel MKL rozšíření pro rychlost.

Další hlavní výhodou, kterou Anaconda poskytuje, je grafické prostředí, Anaconda Navigator. Navigátor není IDE, ale spíše pohodlné rozhraní GUI pro funkce Anacondy, včetně správce balíčků Conda a uživatelsky konfigurovaných virtuálních prostředí. Můžete také použít Navigator ke správě aplikací třetích stran, jako jsou notebooky Jupyter a Visual Studio Code IDE.

Minimální instalace aplikace Anaconda, zvaná Miniconda, nainstaluje pouze tolik základny Anaconda, abyste mohli začít, ale lze ji podle potřeby rozšířit o další balíčky nainstalované Conda nebo Pip. To je užitečné, pokud chcete využít bohatou škálu knihoven společnosti Anaconda, ale potřebujete zachovat štíhlost.

ActivePython

Datová věda je jen jedním z případů použití pro ActivePython, který byl navržen tak, aby sloužil jako profesionálně podporovaná edice jazyka s konzistentními implementacemi napříč architekturami a platformami. To pomáhá, pokud používáte Python pro datovou vědu na platformách jako AIX, HP-UX a Solaris, stejně jako Windows, Linux a MacOS.

ActivePython se snaží co nejvíce držet původní Pythonovy referenční inkarnace. Namísto speciálního instalačního programu pro složité matematické a statistické balíčky (přístup Anaconda) předkonfiguruje ActivePython mnoho z těchto balíčků pomocí rozšíření Intel MKL, kde je to nutné, a poskytuje je jako balíčky s výchozí instalací ActivePython. Nemusí být formálně instalovány; jsou k dispozici ihned po vybalení z krabice.

Pokud však chcete upgradovat na novější verzi těchto předkompilovaných balíků, budete muset počkat, až vyjde další sestavení samotného ActivePythonu. Díky tomu je ActivePython celkově konzistentnější - což je cenná věc, kterou je třeba mít, když záleží na reprodukovatelnosti výsledků - ale také méně flexibilní.

CPython

Pokud chcete začít pracovat na strojovém učení od nuly a nepoužíváte nic jiného než oficiální verzi verze Pythonu s prostou vanilkou, vyberte CPython. Takže pojmenovaný, protože se jedná o referenční vydání běhového modulu Pythonu napsaného v jazyce C, CPython je k dispozici na webu Python Software Foundation a poskytuje pouze nástroje potřebné ke spouštění skriptů Pythonu a správě balíčků.

CPython dává smysl, pokud chcete vytvořit prostředí Pythonu pro projekt strojového učení nebo vědy o datech, důvěřujete si, že to uděláte správně, a nechcete, aby vám do cesty bránily jakékoli úpravy třetích stran. Zdroj pro CPython je snadno dostupný, takže můžete dokonce přizpůsobit jakékoli úpravy, které byste chtěli provést kvůli rychlosti nebo potřebám projektu.

Na druhou stranu, používání CPython znamená, že budete muset vyřešit vstupy a výstupy instalace a konfigurace balíčků, jako je NumPy, se všemi jejich závislostmi - z nichž některé musí být loveny a přidány ručně.

Některé z těchto prací se v posledních několika letech staly méně zatěžujícími, zejména nyní, když správce balíčků Pip v Pythonu elegantně instaluje předkompilované binární soubory používané v mnoha balíčcích pro datové vědy. Stále však existuje mnoho případů, zejména v systému Microsoft Windows, kde budete muset všechny součásti spojit ručně - například ruční instalací kompilátoru C / C ++.

Další nevýhodou používání CPythonu je, že nepoužívá žádné z možností urychlení výkonu užitečných ve strojovém učení a vědě o datech, jako jsou rozšíření Intel Math Kernel Library (MKL). Abyste mohli Intel MKL používat sami, museli byste si vytvořit knihovny NumPy a SciPy.

Přemýšlejte o stříšce

Distribuce Pythonu Enthought Canopy se v mnoha ohledech podobá Anacondě. Je konstruován s datovou vědou a strojovým učením jako primárními případy použití, přichází s vlastním kurátorským indexem balíku a poskytuje jak grafické rozhraní frontend, tak nástroje příkazového řádku pro správu celého nastavení. Podnikoví uživatelé si mohou také zakoupit server Enthought Deployment Server, systém správy balíčků za bránou firewall. Balíčky strojového učení vytvořené pro Canopy používají rozšíření Intel MKL.

Hlavním rozdílem mezi Anacondou a Canopy je rozsah. Stříška je skromnější, Anaconda komplexnější. Například zatímco Canopy obsahuje nástroje příkazového řádku pro vytváření a správu virtuálních prostředí Pythonu (užitečné při řešení různých sad balíčků pro různé pracovní postupy strojového učení), Anaconda poskytuje pro tuto úlohu grafické uživatelské rozhraní. Na druhou stranu Canopy také obsahuje praktický integrovaný IDE - kombinovaný prohlížeč souborů, notebook Jupyter a editor kódu - který je užitečný pro okamžité naskočení a bezproblémovou práci.

WinPython

Původním úkolem WinPythonu bylo poskytnout vydání Pythonu vytvořeného speciálně pro Microsoft Windows. V době, kdy CPython staví pro Windows nebyl nijak zvlášť robustní, WinPython naplnil užitečnou mezeru. Dnes je vydání CPython pro Windows celkem dobré a WinPython se obrátil k vyplnění trhlin, které CPython stále nezpevnil - zejména pro aplikace pro datovou vědu a strojové učení.

Ve výchozím nastavení je WinPython přenosný. Celá distribuce WinPython se vejde do jednoho adresáře, který lze umístit kdekoli a kdekoli spustit. Instalaci WinPython lze dodat jako archiv nebo na jednotku USB s předinstalovanými všemi proměnnými prostředí, balíčky a skripty potřebnými pro danou úlohu. Je to užitečný způsob, jak zabalit vše, co je potřeba k trénování konkrétního modelu nebo k reprodukci konkrétního datového experimentu. Nebo můžete zaregistrovat instalaci WinPython v systému Windows a spustit ji, jako by byla nativně nainstalována (a pokud si přejete, odhlásit ji později).

Rovněž je zahrnuto mnoho složitějších prvků distribuce Pythonu zaměřené na strojové učení. Většina klíčových knihoven - NumPy, Pandas, Jupyter a rozhraní pro jazyky R a Julia - je ve výchozím nastavení zahrnuta a je-li to relevantní, je postavena na rozšíření Intel MKL. Kompilátor Mingw64 C / C ++ také přichází zabalený s NumPy ve WinPythonu, takže binární rozšíření Pythonu lze stavět ze zdroje (například prostřednictvím Cythonu), aniž byste museli instalovat kompilátor.

WinPython má svůj vlastní instalační program balíků, WPPM, který zpracovává balíčky, které přicházejí s předpřipravenými binárními soubory i balíčky pure-Python. A pro ty, kteří chtějí pouze verzi WinPython s holými kostmi bez standardních balíčků, nabízí WinPython „nulovou verzi“ ve stejném duchu jako Miniconda společnosti Anaconda.

Související video: Dešifrování strojového učení a AI

Náš panel prolomil humbuk kolem strojového učení a umělé inteligence a promlouvá přes definice a důsledky této technologie.