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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

Комментарии (5)


  1. vzhicharra
    21.08.2018 15:45

    Ну обычно базовыми инструментами называют IPython и Jupyter.
    Pandas
    Еще matplotlib/plot.ly для визуализации
    Веб-майнинг (ух, какой термин!) это конечно интересно, но в реальной жизни куда нужнее scrapy/beautifulsoup/requests


  1. LukaSafonov
    21.08.2018 15:55

    Хм, топик практически идентичен этому: habr.com/company/jetinfosystems/blog/415997


    1. Vinchi
      21.08.2018 21:04

      Ваша ссылка в разы



  1. comratvlad
    22.08.2018 07:04

    Включили устаревший Theano, официальную поддержку которого разработчики уже прекратили и не включили ни Tf ни PyTorch, которыми сейчас все пользуются. Да ребята шарят!