Стек технологий Data Science, который я использую в работе.

Стек технологий Data Science, который я использую в работе.

Lasttrader

От коллег поступил вопрос. Каким стеком технологий и инструментами я пользуюсь.

Давайте пройдём по нашему Dataflow:

Кликайте на название инструмента, я прикрепил ссылку на документацию.

1. Парсинг данных.

Парсинг - очень важный навык, который поможет вам получить данные там, где другие не смогут, а значит это добавит Вам стоимости на рынке.

- Beautifulsoup - библиотека для извлечения данных. Умеет искать по полному или частичному совпадению.

- Requests - позволяет сделать запрос к ресурсу, получить статус запроса, сообщение об ошибке и т.д.

2. Базы данных

Базы данных это очень легко... Но это не точно:)

- PostgreSQL - бесплатная популярная БД

- dbeaver - ещё один вариант бесплатной БД, но значительно уступает PostgreSQLв возможностях. Как-то я развернул сервер с биржевыми котировками для одного клиента, но столкнулся с тем, что синтаксис SQL неполон и не все команды отрабатывают ( в прочем как и PostgreSQL)

- MongoDB - хорошая БД, которая очень популярна, и подходит для многих целей, синтаксис обращения достаточно понятный.

- Hbase - база данных с колоночным хранением данных и возможностью работы на распределенных вычислительных узлах. Это отличный вариант, когда вы планируете создать озеро данных.

2. Работа с базами данных:

- SQL - Без эскуэля никуда. обращение к базе данных в 99% случаев выполняется с применением SQL

- JSON - это текстовый формат обмена данных, который перекочевал к нам из JavaScript. Легко читается, легко используется, легко создается. (в случае питона - это будет dict)

- XML - размеченные данные. Разметка содержит теги и атрибуты, а также правила. XML используется для хранения и передачи данных.

- psycopg2 - адаптер, который подружит ваш PostgreSQL и python, легок в использовании, удобен в практике. При подключении надо знать адрес сервера. на котором установлена БД, а также логин с паролем от учетной записи.

- Pyspark - когда у вас не будет хватать памяти, вспомните, что есть pyspark, который поддерживает ленивые вычисления, а это значит, что у вас есть возможность обрабатывать большие датасеты, даже на слабом ноутбуке. Главное научиться создавать спарк сессии. Spark технологии активно используются в HADOOP подобных инфраструктурах.

3. ETL

- Airflow - планировщик, который будет запускать ваш код по расписанию и в определенном, заданном порядке. Лучше устанавливать на ubuntu 20.04 LTS, в изолированой питон среде

- Kafka - брокер доставки информации. Позволит вам "слушать" почти любые источники информации в реальном времени. Данные попадают в соответствующие топики, которые в свою очередь обслуживают консьюмеры. Интересное решение, для real time обработки данных


4. Анализ данных

- Excel - кудаже без него родимого:)

- Pandas - excel функционал для питона и даже больше. Де-факто стандарт для анализа данных на python

- Numpy - когда надо работать с матрицами, тензорами и массивами, numpy вам в этом поможет.

- Matplotlib - популярная, но уже не такая крутая, как раньше библиотека для визуализации, в основном простая графика.

- Seaborn - надстройка над matplotlib, которая позволяет визуализировать статистические взамиосвязи.

- Plotly - круая библиотека с возможностью отрисовки в реальном времени, считаю. что она будет даже поинтереснее чем matplotlib

- Geopandas - представьте, что в pandas можно обрабатывать геопространственные данных... да, такое есть. пользуйтесь ))

5. Препроцессинг

- Sklearn.preprocessing - стандартизация, кодирование, пропуски.

- Pandas - да, pandas подойдет для базовых преобразований над данными

- Numpy - также хорошо применим для препроцессинга

6. Машинное обучение

- Sklearn - отличная библиотека, где можно найти почти все методы машинного обучения.

- Xgboost - бустинговые модели - ансамбли, хорошая библиотека, удобная в использовании

- Catboost - библиотка от Яндекса. Я пользовался ей один раз, но коллеги рассказывают, что это крутая и быстрая библиотека, для работы с градиентным бустингом.

7. Глубокое обучение

- Pytorch - фреймворк от Фейсбука. основной отличительностью является то, что здесь модели нейронных сетей упаковываются в классы, можно достаточно гибкий тюнинг моделей делать.

- Tensorflow -

- Tensorflow.keras - раньше keras бф самостоятельным проектом, который предоставлял удобный API к tensorflow. На мой взгляд именно Keras сделал доступным нейронные сети широкому кругу пользователей.

- Tensorflow dashboard - визуализация графовых вычислений, отображение метрик качества обученных моделей и еще всякие полезные вещи.

8. Сохранение моделей и контроль версионности

- Keras2cpp - может потребоваться, когда продакшн код написан на C++, лего портируется.

-Sklearn-porter - а эта библиотека портирует уже sklearn модели на C и на JAVA

- Tensorflow serving - позволяет сохранть разные версии моделей и работать с ними одновременно. Например, у вас есть нейронка, которая работать с картинками, тогда в зависимости от цветности изображения, данные подаются в разные версии моделей нейронок.

9. Интеграция в production

- Flask - создание приложений. Удобно. Буквально в пару строк.

- Django - самый популярный фреймворк на python для веб приложений.

10. Взаимодействие и API

- Socket.io - для работы с real time данными

- REST - протокол обмена данными

- Fast API - быстрый фреймворк

11. Распределенные вычисления

- Pyspark -

- HDFS - распределенное хранение данных. методы put|get

- GCP - облако Google. Платформа, где можно построить свою инфраструктуру. Арендовать компьютеры, процессоры и еще много много всего.

- AWS - Облако Амазон, лидер в мире. Большое количество сервисов для Вас и для ваших приложений или платформ. Есть много всего настроенного и готового. Обычно пользуются арендой EC2 виртуальных машин.

12. Работа и текстами

- Nltk - библиотека, которая содержит в себе большое количество функционала для работы с естественным языком. Поддерживает много языков.

- Ipavlov- библиотека от наших соотечественников, для решения задач NLP

- Word2vec, seq2vec doc2vec - популярные методы векторного преобразования текстов. В вектор можно преобразовать слово, предложение, документ или целую книгу.

13. Работа и аудио

- Librosa - Когда вы работаете с аудиосигналом, вам потребуется сделать параметризацию и извлечь признаки. Это хорошая библиотека, которая поможет вам при обработе аудио.

14. Работа и видео/изображениями

- Cv2 - библиотека компьютерного зрения и работы с видеопотоком/изображениями.

- Face recognition - очень удобная библотека для поиска лиц на фото/видео, для обучения достаточно иметь всего одно фото человека.

- Tensorflor.keras - Conv2D слои в нейронках показывают отличные результаты при решении задач компьютерного зрения. (model.add(Conv2D...))

15. Работа с временными рядами

- Statmodels - библиотка описательной статистики.

- Arima, Sarima - методы авторегрессии, есть в библиотеке statmodels

- Plotly - отображение графиков временных рядов.




Report Page