Programování

14 nástrojů s otevřeným zdrojovým kódem, abyste mohli strojové učení využít na maximum

Filtrování spamu, rozpoznávání obličeje, nástroje doporučení - pokud máte velkou datovou sadu, ve které byste chtěli provádět prediktivní analýzu nebo rozpoznávání vzorů, strojové učení je tou správnou cestou. Šíření bezplatného softwaru s otevřeným zdrojovým kódem usnadnilo implementaci strojového učení na jednotlivých počítačích i v měřítku a v nejpopulárnějších programovacích jazycích. Mezi tyto nástroje s otevřeným zdrojovým kódem patří knihovny jako Python, R, C ++, Java, Scala, Clojure, JavaScript a Go.

Apache Mahout

Apache Mahout poskytuje způsob, jak vytvořit prostředí pro hostování aplikací strojového učení, které lze rychle a efektivně škálovat tak, aby vyhovovaly poptávce. Mahout pracuje hlavně s dalším známým projektem Apache, Spark, a byl původně navržen pro spolupráci s Hadoop kvůli spuštění distribuovaných aplikací, ale byl rozšířen na práci s jinými distribuovanými back-endy, jako je Flink a H2O.

Mahout používá ve Scale jazyk specifický pro doménu. Verze 0.14 je hlavním interním refaktorem projektu, který je založen na výchozím nastavení Apache Spark 2.4.3.

Komponovat

Compose, Innovation Labs, se zaměřuje na společný problém s modely strojového učení: označování nezpracovaných dat, což může být pomalý a zdlouhavý proces, ale bez nichž model strojového učení nemůže přinést užitečné výsledky. Funkce Compose umožňuje v Pythonu zapsat sadu funkcí označování vašich dat, takže označování lze provádět co nejvíce programově. Pro vaše data lze nastavit různé transformace a prahové hodnoty, které usnadňují proces označování, například umisťování dat do košů na základě diskrétních hodnot nebo kvantilů.

Základní nástroje ML

Rámec Core ML společnosti Apple umožňuje integrovat modely strojového učení do aplikací, ale používá vlastní odlišný formát modelu učení. Dobrou zprávou je, že pro jejich použití nemusíte předcvičovat modely ve formátu Core ML; můžete převádět modely z téměř každého běžně používaného rámce strojového učení do Core ML pomocí Core ML Tools.

Core ML Tools běží jako balíček v Pythonu, takže se integruje s bohatstvím knihoven a nástrojů pro strojové učení v Pythonu. Všechny modely z TensorFlow, PyTorch, Keras, Caffe, ONNX, Scikit-learn, LibSVM a XGBoost lze převádět. Modely neuronových sítí lze také optimalizovat podle velikosti pomocí kvantizace po tréninku (např. Do malé bitové hloubky, která je stále přesná).

Kůra

Cortex poskytuje pohodlný způsob obsluhy předpovědí z modelů strojového učení pomocí Pythonu a TensorFlow, PyTorch, Scikit-learn a dalších modelů. Většina balíčků Cortex se skládá pouze z několika souborů - vaše základní logika Pythonu, soubor cortex.yaml, který popisuje, jaké modely mají být použity a jaké druhy výpočetních prostředků mají být přiděleny, a soubor requirements.txt k instalaci všech potřebných požadavků Pythonu. Celý balíček je nasazen jako kontejner Docker do AWS nebo do jiného hostitelského systému kompatibilního s Dockerem. Výpočtové prostředky jsou přidělovány způsobem, který odráží definice používané v Kubernetes pro stejné, a můžete použít GPU nebo Amazon Inferentia ASIC k urychlení poskytování.

Hlavní nástroje

Inženýrství funkcí nebo vytváření funkcí zahrnuje převzetí dat použitých k trénování modelu strojového učení a vytvoření, obvykle ručně, transformované a agregované verze dat, která je užitečnější pro školení modelu. Featuretools vám poskytuje funkce, jak toho dosáhnout pomocí vysoce postavených objektů Pythonu vytvořených syntézou dat v datových rámcích, a může to udělat pro data extrahovaná z jednoho nebo více datových rámců. Featuretools také poskytuje běžná primitiva pro operace syntézy (např. time_since_previous, abychom poskytli čas uplynulý mezi instancemi časově označených dat), takže je nemusíte házet sami.

GoLearn

GoLearn, knihovna strojového učení pro jazyk Google Go, byla podle vývojáře Stephena Whitwortha vytvořena s dvojím cílem - jednoduchost a přizpůsobitelnost. Jednoduchost spočívá ve způsobu načítání a zpracování dat v knihovně, která je vzorována po SciPy a R. Přizpůsobitelnost spočívá v tom, jak lze některé datové struktury v aplikaci snadno rozšířit. Whitworth také vytvořil obálku Go pro knihovnu Vowpal Wabbit, jednu z knihoven v sadě nástrojů Shogun.

Gradio

Jednou společnou výzvou při vytváření aplikací strojového učení je budování robustního a snadno přizpůsobitelného uživatelského rozhraní pro mechanismy školení modelů a předpovědi. Gradio poskytuje nástroje pro vytváření webových uživatelských rozhraní, která vám umožní pracovat se svými modely v reálném čase. Několik zahrnutých ukázkových projektů, například vstupní rozhraní ke klasifikátoru obrázků Inception V3 nebo model rozpoznávání rukopisu MNIST, vám poskytne představu o tom, jak můžete Gradio použít s vlastními projekty.

H2O

H2O, nyní ve své třetí hlavní revizi, poskytuje celou platformu pro strojové učení v paměti, od tréninku až po předpovědi obsluhy. Algoritmy H2O jsou zaměřeny spíše na obchodní procesy - například na podvody nebo předpovědi trendů - spíše než na obrazovou analýzu. H2O může samostatně komunikovat s obchody HDFS, nad YARN, v MapReduce nebo přímo v instanci Amazon EC2.

Hadoop mavens mohou používat Javu k interakci s H2O, ale framework také poskytuje vazby pro Python, R a Scala, což vám umožňuje komunikovat také se všemi knihovnami dostupnými na těchto platformách. Můžete také přejít zpět na volání REST jako způsob integrace H2O do většiny kanálů.

Oryx

Oryx, s laskavým svolením tvůrců distribuce Cloudera Hadoop, používá Apache Spark a Apache Kafka ke spuštění modelů strojového učení na datech v reálném čase. Oryx poskytuje způsob, jak budovat projekty, které vyžadují okamžitá rozhodnutí, jako jsou doporučení motorů nebo detekce živých anomálií, které jsou informovány jak novými, tak historickými daty. Verze 2.0 je téměř kompletní redesign projektu s jeho komponentami volně spojenými v architektuře lambda. Nové algoritmy a nové abstrakce pro tyto algoritmy (např. Pro výběr hyperparametru) lze přidat kdykoli.

PyTorch Lightning

Když se silný projekt stane populárním, často je doplněn projekty třetích stran, které usnadňují jeho používání. PyTorch Lightning poskytuje organizační obal pro PyTorch, takže se můžete soustředit na kód, na kterém záleží, namísto psaní typového štítku pro každý projekt.

Lightning projects use a class-based structure, so each common step for a PyTorch project is encapsulated in a class method. Smyčky školení a ověřování jsou poloautomatické, takže pro každý krok musíte uvést pouze svoji logiku. Je také snazší nastavit výsledky školení v několika GPU nebo v různých hardwarových mixech, protože pokyny a odkazy na objekty jsou centralizovány.

Scikit-učit se

Python se stal go-to programovacím jazykem pro matematiku, vědu a statistiku díky jeho snadnému přijetí a šíři knihoven dostupných pro téměř jakoukoli aplikaci. Scikit-learn využívá tuto šíři tím, že staví na několika existujících balíčcích Pythonu - NumPy, SciPy a Matplotlib - pro matematické a vědecké práce. Výsledné knihovny mohou být použity pro interaktivní aplikace „pracovního stolu“ nebo vloženy do jiného softwaru a znovu použity. Sada je k dispozici pod licencí BSD, takže je plně otevřená a opakovaně použitelná.

Shogun

Shogun je jedním z nejdelších projektů v této kolekci. Byl vytvořen v roce 1999 a napsán v C ++, ale lze jej použít s Java, Python, C #, Ruby, R, Lua, Octave a Matlab. Nejnovější hlavní verze 6.0.0 přidává nativní podporu pro Microsoft Windows a jazyk Scala.

Přestože je Shogun populární a rozsáhlý, má konkurenci. Další knihovna pro strojové učení založená na C ++, Mlpack, existuje pouze od roku 2011, ale tvrdí, že je rychlejší a snazší s ní pracovat (prostřednictvím integrovanější sady API) než konkurenční knihovny.

Spark MLlib

Knihovna strojového učení pro Apache Spark a Apache Hadoop, MLlib se může pochlubit mnoha běžnými algoritmy a užitečnými datovými typy, navrženými tak, aby běžely rychlostí a měřítkem. Ačkoli Java je primární jazyk pro práci v MLlib, uživatelé Pythonu se mohou připojit MLlib s knihovnou NumPy, uživatelé Scala mohou psát kód proti MLlib a uživatelé R se mohou připojit k Sparku od verze 1.5. Verze 3 MLlib se zaměřuje na používání rozhraní Spark DataFrame API (na rozdíl od staršího rozhraní RDD API) a poskytuje mnoho nových klasifikačních a hodnotících funkcí.

Další projekt MLbase staví na MLlib, aby bylo snazší odvodit výsledky. Spíše než psát kód, uživatelé zadávají dotazy prostřednictvím deklarativního jazyka à la SQL.

Weka

Weka, kterou vytvořila skupina pro strojové učení na univerzitě ve Waikatu, je označována jako „strojové učení bez programování“. Jedná se o pracovní plochu s grafickým uživatelským rozhraním, která umožňuje datovým wranglerům sestavovat kanály strojového učení, trénovat modely a spouštět předpovědi bez nutnosti psát kód. Weka pracuje přímo s R, Apache Spark a Python, druhý pomocí přímého wrapperu nebo prostřednictvím rozhraní pro běžné numerické knihovny jako NumPy, Pandas, SciPy a Scikit-learn. Velkou výhodou Weky je, že poskytuje přehledná a přátelská rozhraní pro všechny aspekty vaší úlohy, včetně správy balíků, předzpracování, klasifikace a vizualizace.

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