Выбор языка программирования для задачи анализа данных методом анализа иерархий

Рассмотрение множества языков программирования, предоставляющих тот или иной функционал, применимый к задачам анализа данных (Python, R, Java, Matlab, и другие). Оценка наиболее часто упоминаемых из них с точки зрения применения к задаче анализа данных.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 19.12.2017
Размер файла 548,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Выбор языка программирования для задачи анализа данных методом анализа иерархий

Шкарбан Александр Сергеевич

магистрант кафедра информатики Санкт-Петербургский Государственный Экономический Университет Санкт-Петербург, РФ

Аннотация

В ходе выполнения работ по разработке системы анализа данных было выяснено, что есть множество языков программирования, предоставляющих тот или иной функционал, применимый к задачам анализа данных (Python, R, Java, Matlab, и другие). Данная статья призвана рассмотреть наиболее часто упоминаемые из них с точки зрения применения к задаче анализа данных и сузить круг предлагаемых решений до одного, максимум двух. Принятие решения осуществляется методом анализа иерархий Т. Саати с применением ППП «СППР Выбор».

Ключевые слова: анализ данных, язык программирования, метод анализа иерархий, Python, R, JavaScript, Matlab

язык программирование java matlab

Постановка задачи

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

Основная задача, в рамках которой решается проблема выбора языка программирования, сформулирована следующим образом: «Разработка системы анализа деятельности кредитных организаций». Иными словами, аналитической системы, способной присваивать кредитный рейтинг. Предполагается осуществлять поиск информации в открытых источниках, ее сбор и подготовку, а затем применять к подготовленным данным специальный алгоритм, на основании результатов выполнения которого должно быть сформулировано решение о присвоении рейтинговой категории, а также прогноза по ней. [8]

Таким образом, получаем базовое требование: нам необходим инструмент, позволяющий производить основные действия в рамках анализа данных: их сбор, очистку, подготовку и проведение над ними базовых операций (агрегирование, преобразование, применение различных функций). В ходе анализа литературы, был собран представленный ниже перечень инструментов для анализа данных. [1][3][6]

Python

Появившись в 1991 году, Python стал одним из самых популярных динамических языков программирования (наряду с Perl, Ruby и некоторыми другими). Наиболее широкую известность Python и Ruby приобрели как инструменты веб-разработки (Rails и Django). Эти языки принято называть скриптовыми.

Из всех интерпретируемых языков Python выделяется большим и активным сообществом научных расчетов. Особенно широкое распространение данный язык получил в связи с появлением улучшенных библиотек (прежде всего, pandas), что сделало его серьезным конкурентом в решении задач манипулирования данными. В сочетании с достоинствами Python как универсального языка программирования это делает его отличным выбором для создания приложений обработки данных. Своим успехом в качестве платформы для научных расчетов Python также обязан простоте (разумеется, относительной) интеграции с кодом на С, С++ и FORTRAN. Наиболее актуальная на момент написания статьи версия языка - v.3.5.1. Распространяется бесплатно.

R

Свободно распространяемый интерпретируемый язык программирования для статистической обработки данных и работы с графикой. Разработан как бесплатная ветвь развития языка S. Является куда менее универсальным нежели Python, тем не менее, успел завестись не менее обширным кругом поддерживающих его разработчиков. Наиболее актуальная на момент написания статьи версия языка - v.3.2.3. Распространяется, как уже было сказано, бесплатно.

Java

Нечасто в публикациях на тему анализа данных можно встретить упоминания о языке Java. Его присутствие обусловлено тем, что именно на нем иллюстрировались примеры в книге Марманиса. Было решено прислушаться к мнению профессионала и добавить язык в сравнительную базу. Сами же авторы книги объяснили свое решение тем, что написана она (книга) преимущественно для веб-разработчиков, остальным же, в случае необходимости, предлагается «перевести» код на более привычный язык. [4]

Наиболее актуальная на момент написания статьи версия языка - v.8.73. Распространяется бесплатно.

Matlab

Несмотря на широкую известность исключительно как пакета программных продуктов для математических вычислений, является также высокоуровневым интерпретируемым языком программирования. Как язык программирования был разработан в 1970 году. Реализует куда более широкий спектр возможностей, нежели обозначенные выше языки с учетом библиотек расширений. Наиболее актуальная на момент написания статьи версия языка - v.8.6. Проприетарное ПО.

Анализ иерархий

Для принятия решения о выборе инструмента для разработки, необходимо сформулировать критерии выбора. В первую очередь, как было сказано, это поддержка основных операций по анализу данных, коротко обозначенных в пункте «Постановка задачи». Во-вторых, это возможность применения расширенного функционала в виде дополнительных функций обработки и отображения.

Принимается допущение о том, что все языки в равной степени неизвестны (или мало известны) исследователю, в связи с чем также принимается к рассмотрению сложность в освоении языка. Бюджета проект разработки не имеет, так что во внимание также следует принять цену рассматриваемых продуктов. Хотя в рамках конкретно данного случая, будет более целесообразным рассмотреть только форму лицензирования.

Анализ планируется производить в рамках разработки информационной системы, поэтому необходимо учесть также возможности языка в части разработки полноценных самостоятельных приложений.

Следует оговориться, что описываемая в рамках данной статьи ситуация является частным случаем из практики автора и может применяться в общем случае только с существенными оговорками. Таким образом, матрица парных сравнений для критериев отбора выглядит следующим образом (рис. 1).

Рисунок 1. Матрица парных сравнений для критериев отбора языка программирования

Расшифровывая значения вектора предпочтений, можно сказать, что главным приоритетом является базовый функционал для анализа данных. Далее по важности в порядке убывания следует простота усвоения. Время, отведенное на разработку, действительно ограничено. Далее универсальность языка, ведь финальная цель разработки - информационная система. Затем - дополнительный функционал, необходимый больше для удобства пользователя и наконец, наименее важным выбрана форма лицензирования. В конце концов, неужели, в случае чего, ничего нельзя будет предпринять? Уровень общей связности - 13%, что является вполне приемлемым показателем. [5]

Переводя всё описанное выше в оценки для матриц парных сравнений для каждого из четырех рассматриваемых решений (рис.2), получаем следующее распределение оценок (рис.3). Общая связность модели - 8%.

Рисунок 2. Матрицы парных сравнений для каждого из решений

Рисунок 3. Результат вычислений

С достойным отрывом лидирует язык Python. Незначительно отстают R и Matlab. В этом есть рациональное зерно, так как язык R преимущественно используется во взаимосвязи с математическими пакетами. Как и ожидалось, Java - не лучшее решение для анализа данных, несмотря на свою общепризнанную мощь как инструмента разработки ПО. Таким образом, было принято решение продолжить разработку на языке Python.

Список литературы

1. Будников А.И. Сравнительный анализ производительности реализаций инструментария Qt для языков С++ и Python // Новосибирск: ООО "Центр развития научного сотрудничества". - 2014 - 129-132 с.

2. Граничин О.Н., Кияев В.И. Информационные технологии и системы в современном менеджменте. - СПб.: Издательство ВВМ. - 2014. - 897 с.

3. Маккинли У. Python и анализ данных // пер. с англ. Слинкин А. А. - М.: ДМК Пресс. - 2015. - 482 с.

4. Марманис Х., Бабенко Д. Алгоритмы интеллектуального Интернета. Передовые методики сбора, анализа и обработки данных // пер. с англ. - СПБ.:Символ-Плюс.- 2011.- 480 с.

5. Саати Т. Принятие решений методом анализа иерархий // М.:Радио-Связь. - 1994 - 278 с.

6. Смирнов В.А. Новые компетенции социолога в эпоху «больших данных» // Мониторинг общественного мнения: экономически и социальные перемены.: Всероссийский центр изучения общественного мнения (Москва). - №2. - 2015 - 44-54 с.

7. Трофимов В.В. Информационные технологии в экономике и управлении. М.: Юрайт, 2014. - 482 с.

8. Федеральный закон от 13.07.2015 «О деятельности кредитных рейтинговых агентств в Российской, внесении изменения в статью 76.1 федерального закона «О центральном банке Российской Федерации (Банке России)»».

Размещено на Allbest.ru

...

Подобные документы

  • Ознакомление с методами анализа популярности языков программирования. Рассмотрение логической модели базы данных дистанционного практикума. Разработка листинга скрипта создания таблицы-справочника. Анализ статистики по применению языков программирования.

    диссертация [1,4 M], добавлен 10.07.2017

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

  • Метод анализа иерархий. Система для хранения больших объемов информации является база данных. База данных в наибольшей степени удовлетворяет всем выделенным критериям. Она обеспечивает быстрый поиск нужной информации (оперативность).

    контрольная работа [326,9 K], добавлен 10.06.2004

  • Основные концепции языков программирования, механизмы типизации данных. Описание языков программирования и методов трансляции. Конечные автоматы и преобразователи. Общие методы синтаксического анализа. Формальные методы описания языкового перевода.

    курс лекций [5,5 M], добавлен 04.12.2013

  • Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.

    курсовая работа [3,1 M], добавлен 27.02.2015

  • Перспективные направления анализа данных: анализ текстовой информации, интеллектуальный анализ данных. Анализ структурированной информации, хранящейся в базах данных. Процесс анализа текстовых документов. Особенности предварительной обработки данных.

    реферат [443,2 K], добавлен 13.02.2014

  • Создание автоматизированной системы по сбору и анализу статистических данных сайта. Принципы сбора статистических данных. Исследование информационных потоков. Обзор современных СУБД и языков программирования. Логическая и физическая модель базы данных.

    дипломная работа [3,0 M], добавлен 08.07.2012

  • Понятие синтаксического анализа. Программный продукт для обработки данных строкового типа. Построение сканера текстов с использованием утилиты flex, синтаксического анализатора с помощью утилиты bison. Грамматика языка программирования обработки строк.

    курсовая работа [261,7 K], добавлен 29.10.2012

  • Разработка подсистем анализа веб-сайта с помощью Microsoft Access и Olap-технологий. Теоретические аспекты разработки подсистемы анализа данных в информационной системе музыкального портала. Olap-технологии в подсистеме анализа объекта исследования.

    курсовая работа [864,8 K], добавлен 06.11.2009

  • Понятия языка программирования, разновидности и характеристика языков. Исторический обзор их создания и применения. Классификация, примеры использования. Характеристики языков программирования с точки зрения элементов объектной модели, их популярность.

    реферат [463,6 K], добавлен 07.09.2009

  • Описание языков программирования высокого уровня. Стандартные структуры данных, обзор принципов структурного программирования. Построение математической модели и выбор структуры данных для решения задачи. Тестирование и отладка программного кода.

    курсовая работа [1,3 M], добавлен 05.12.2020

  • Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.

    презентация [192,3 K], добавлен 13.06.2014

  • Язык Java как простой, обьектно-ориентированный, многопоточный язык программирования, разработанный компанией Sun Microsystems для расширения возможностей сети Internet. Типы данных, лексика и управляющие структуры данного языка программирования.

    презентация [46,1 K], добавлен 25.04.2014

  • Возможности Matlab, выполнении математических и логических операций, интерактивные инструменты построения графиков. Конструкции для обработки и анализа больших наборов данных, программные и отладочные инструменты, оптимизация данных, операций и функций.

    статья [170,5 K], добавлен 01.05.2010

  • Разработка комплекса интеллектуального анализа данных, получаемых в процессе работы коммерческого предприятия розничной торговли. Исследование стационарности ассоциаций, выявление частоты появления ассоциаций. Скрипты для создания баз данных и таблиц.

    курсовая работа [706,3 K], добавлен 07.08.2013

  • Изучение особенностей структурного программирования и процесса применения многомодульности оконного интерфейса приложения. Описание внутренних переменных модуля. Рассмотрение и характеристика преимуществ современных интегрированных сред разработки.

    контрольная работа [487,0 K], добавлен 05.07.2017

  • Концепции хранилищ данных для анализа и их составляющие: интеграции и согласования данных из различных источников, разделения наборов данных для систем обработки транзакций и поддержки принятия решений. Архитектура баз для хранилищ и витрины данных.

    реферат [1,3 M], добавлен 25.03.2013

  • Разработка программного обеспечения для анализа полученных из хранилища данных. Система SAS Enterprise Miner и система Weka. Расчёт капитальных затрат на создание ПМК для анализа полученных из хранилища данных с использованием библиотеки XELOPES.

    дипломная работа [1,4 M], добавлен 07.06.2012

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

    дипломная работа [512,4 K], добавлен 28.08.2012

  • Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.

    курсовая работа [2,3 M], добавлен 16.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.