maksimio / langsml

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Начало работы с большими данными в различных языках программирования

В сети есть большое количество статей, посвященных выбору языка для машинного обучения. Однако в этих статьях содержатся лишь общие фразы о пригодности языка и не уделено внимание конкретным библиотекам и средствам обработки данных. В этом репозитории содержатся материалы по проведению простого анализа данных. На основании этих данных можно соотнести собственные знания языка с его эффективностью в машинном обучении и лучше выбрать подходящий язык.

Самый популярный язык для аналитики данных - Python. Однако почти во всех языках существуют средства аналитики данных. В этом репозитории для каждого из представленных языков программирования реализуется последовательность обработки известного датасета Titanic. Приводятся выводы об их пригодности для анализа данных с точки зрения удобства работы, скорости выполнения.

Операционная система, на которой тестируется код, и для которой написан порядок установки - Fedora Linux 38.

Последовательность обработки Titanic dataset

  1. Чтение из файла и вывод в консоли
  2. Выборка по 2 условиям
  3. Расчет новой колонки
  4. Построение графика точек зависимости 2 величин (scatter plot)
  5. Сортировка по 2 столбцам
  6. Сохранение в файл

Список языков программирования

  1. SQL - 33 строки, сложность 1
  2. Python - 25 строк, сложность 1
  3. R - 25 строк, сложность 2 (нетипичный синтаксис)
  4. JavaScript - 36 строк, сложность 2 (операции выполняются при помощи коллбэков)
  5. Go - 101 строка, сложность 3 (многословен)

Языки ранжированы в порядке возрастания сложности обработки датасета. Простые задачами первичной обработки эффективнее всего решать при помощи SQL. Язык R является более низкоуровневым, чем Python при обработке данных, однако уже содержит все необходимые библиотеки. Рекомендуется выбирать Python, если кроме обработки данных требуется дополнительный функционал, например, клиент-серверное взаимодействие. R будет хорошим выбором исключительно для точной и сложной аналитики данных, как инструмент для построения гипотез и отладки - его обычно не используют в production. Особенность JavaScript заключается в отсутствии крупных библиотек для анализа данных - все операции с ними проводятся "вручную" при помощи встроенных в массив методов с коллбэками. В языке программирования Go построение графиков является серьезной задачей, однако для него есть несколько готовых библиотек, позволяющих проводить анализ данных. В целом, использовать данный язык для работы с большими данными не рекомендуется из-за низкой скорости написания кода. Однако его можно использовать в редких ситуациях, когда программе на вход поступает таблица, в которой нужно посчитать и проанализировать значения, например это может быть какой-нибудь лог посещений пользователя, для которого требуется посчитать статистику.

About

License:MIT License


Languages

Language:Go 41.8%Language:JavaScript 23.4%Language:Python 17.9%Language:R 16.8%