- PVSM.RU - https://www.pvsm.ru -

Топ-10 инструментов Python для машинного обучения и data-science

Топ-10 инструментов Python для машинного обучения и data-science - 1

Python — один из наиболее популярных языков программирования. Причина — в его универсальности, ведь это мультитул с возможностью «заточки» под самые разные нужды. Сегодня мы публикуем подборку с описанием 10 полезных для data-scientist и специалиста по ИИ инструментов.

Машинное обучение, нейросети, Big-data — всё более растущий тренд, а значит, нужно все больше специалистов. Синтаксис Python математически точный, так что его понимают не только программисты, но и все, кто связан с техническими науками, — вот почему такое количество новых инструментов создается именно на этом языке.

Skillbox рекомендует: Практический курс «Python-разработчик с нуля» [1].
Напоминаем: для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».

Но хватит описывать достоинства Python, давайте наконец приступим к нашей подборке.

Инструменты машинного обучения

Shogun [2] — решение с большим количеством возможностей по машинному обучению, с фокусировкой на Support Vector Machines (SVM). Написан он на С++. Shogun предлагает широкий спектр унифицированных методов machine learning, в основе которых — надежные и доступные пониманию алгоритмы.

Shogun качественно задокументирован. Из недостатков можно назвать относительную сложность работы с API. Распространяется бесплатно.

Keras [3] — высокоуровневый API нейросетей, предоставляющий библиотеку глубокого обучения для Python. Это один из лучших инструментов для тех, кто начинает свой путь в качестве специалиста по машинному обучению. По сравнению с другими библиотеками Keras гораздо более понятен. С ним могут работать такие популярные фреймворки Python, как TensorFlow, CNTK или Theano.

4 основных принципа, лежащих в основе философии Keras, — дружественность пользователю, модульность, расширяемость и совместимость с Python. Из недостатков можно назвать относительно медленную скорость работы по сравнению с другими библиотеками.

Scikit-Learn [4] — open-source инструмент для дата-майнинга и анализа. Его можно использовать и в data-science. API инструмента удобный и практичный, его можно использовать для создания большого количества сервисов. Одно из главных достоинств — скорость работы: Scikit-Learn просто бьет рекорды. Главные возможности инструмента — регрессия, кластеринг, выбор модели, препроцессинг, классификация.

Pattern [5] — модуль веб-майнинга, который предоставляет возможности для сбора данных, обработки языка, машинного обучения, анализа сети и визуализаций разного рода. Он отлично задокументирован и поставляется с 50 кейсами, а также 350 юнит-тестами. И он бесплатен!

Theano [6] назван в честь древнегреческого философа и математика, давшего миру много полезного. Основные функции Theano — интеграция с NumPy, прозрачное использование ресурсов GPU, скорость и стабильность работы, самоверификация, генерация динамического С-кода. Среди недостатков можно упомянуть относительно сложный API и более медленную скорость работы, если сравнивать с другими библиотеками.

Инструменты data-science

SciPy [7] — базирующаяся на Python экосистема open-source программного обеспечения для математиков, специалистов по ИТ, инженеров. В SciPy используются различные пакеты вроде NumPy, IPython, Pandas, что позволяет использовать популярные библиотеки для решения математических и научных задач. Этот инструмент — отличная возможность, если вам нужно показать данные серьезных вычислений. И он бесплатен.

Dask [8] — решение обеспечивающее возможность параллелизма данных в аналитике благодаря интеграции с такими пакетами, как NumPy, Pandas и Scikit-Learn. C Dask вы можете быстро распараллелить существующий код, изменив лишь несколько строк. Дело в том, что его DataFrame такой же, как в библиотеке Pandas, а работающий с ним NumPy имеет возможность распараллеливать задания, написанные на чистом Python.

Numba [9] — компилятор с открытым исходным кодом, который использует инфраструктуру компилятора LLVM для компиляции синтаксиса Python в машинный код. Основным преимуществом работы с Numba в приложениях для научных исследований можно назвать его скорость при использовании кода с массивами NumPy. Как и Scikit-Learn, Numba подходит для создания приложений машинного обучения. Стоит отметить, что решения на основе Numba будут особенно быстро работать на оборудовании, созданном для приложений машинного обучения или научных исследований.

High-Performance Analytics Toolkit (HPAT [10]) — compiler-based фреймворк для больших данных. Он автоматически масштабирует аналитические программы, равно как и программы машинного обучения, до уровня производительности облачных сервисов и может оптимизировать определенные функции с помощью декоратора jit [11].

Cython [12] — лучший выбор для работы с математическим кодом. Cython — это транслятор исходного кода на основе Pyrex, который позволяет вам легко писать C-расширения для Python. Более того, с добавлением поддержки интеграции с IPython / Jupyter код, написанный с использованием Cython, можно использовать в Jupyter при помощи встроенных аннотаций, ровно так же, как и любой другой код Python.

Приведенные выше инструменты почти идеальны для ученых, программистов и всех, кто имеет отношение к машинному обучению и большим данным. И конечно, стоит помнить, что эти инструменты заточены под Python.

Skillbox рекомендует:

Автор: fokus-lop

Источник [15]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/289938

Ссылки в тексте:

[1] «Python-разработчик с нуля»: https://skillbox.ru/python/?utm_source=skillbox.media&utm_medium=habr.com&utm_campaign=ptndev&utm_content=digest&utm_term=top10toolsforptn

[2] Shogun: http://www.shogun-toolbox.org/

[3] Keras: https://keras.io/

[4] Scikit-Learn: http://scikit-learn.org/stable/

[5] Pattern: https://www.clips.uantwerpen.be/pattern

[6] Theano: http://deeplearning.net/software/theano/

[7] SciPy: https://www.scipy.org/

[8] Dask: http://dask.pydata.org/en/latest/

[9] Numba: https://pypi.org/project/numba/

[10] HPAT: https://github.com/IntelLabs/hpat

[11] jit: https://habr.com/users/jit/

[12] Cython: https://pypi.org/project/Cython/

[13] «PHP-разработчик с нуля до PRO»: https://skillbox.ru/php/?utm_source=skillbox.media&utm_medium=habr.com&utm_campaign=phpdev&utm_content=digest&utm_term=top10toolsforptn

[14] «Профессия Java-разработчик»: https://skillbox.ru/java/?utm_source=skillbox.media&utm_medium=habr.com&utm_campaign=javdev&utm_content=digest&utm_term=top10toolsforptn

[15] Источник: https://habr.com/post/420819/?utm_campaign=420819