Здравствуйте! Для получения более точных сведений и характеристик обычно используется огромный объем данных. И конечно же, человеку будет трудно проанализировать такие объемы на бумажке и при использовании тех известных нам уже формул и методов. Именно для таких задач и существуют компьютеры. Они хороши в вычислениях, но только в том случае, если компьютеру объяснить, как производить эти вычисления. Сегодня анализ данных — это очень популярная область. И по этой причине существует множество пакетов, позволяющих работать с данными. Рассмотрим некоторые существующие решения. Во-первых, это Microsoft Excel. Любители работать с таблицами наверняка не раз задавались вопросом: "А зачем же нужны эти бесконечные кнопки в среде Microsoft Excel?" Собственно, вот и ответ. Они нужны для анализа данных. В Excel можно удобным способом представить отчет и описание данных, например, накопленных за какой-то промежуток времени. Множество сервисов предлагают варианты для извлечения данных в формате, который воспринимает Excel, поэтому проблем с импортом данных у вас не будет. Мы будем заниматься Excel до конца этого курса и постараемся освоить этот мощный инструмент, чтобы затем применить свои теоретические знания, знания о теории вероятностей и математической статистике уже на практике. Помимо этого, есть другие инструменты разной степени сложности, которые мы собираемся обсудить в этом уроке. Python и R — это языки программирования. Например, Python обладает огромной серией библиотек для работы с данными. Они даже объединены в пакет, который называется Anaconda. Python и R — это достаточно высокоуровневые языки программирования, относительно высокоуровневые языки программирования. То есть это значит, что код на этих языках проще читать, и он больше похож на, скорее, словесное описание алгоритма, нежели какой-то такой сложный программный код. И это отличный способ продолжить обучение анализу данных после того, как вы посмотрите на то, как делать эти вещи в Excel. Еще один инструмент — MATLAB. Это математический пакет или даже язык программирования. MATLAB тоже обладает огромным количеством пакетов для анализа данных или даже для визуализации данных. Переменные в MATLAB уже являются матрицами. А матрица — это просто таблица чисел. И теперь соотнесите тот факт, что на первой неделе мы рассуждали о множествах как о таблицах. И именно по этой причине это очень удобно. То есть MATLAB разрабатывался именно с этими целями. Поэтому стоит обратить на него внимание и, возможно, даже изучить основы для просто расширения своих знаний, а может быть, и вообще углубиться в этот инструмент. Apache Spark приходит на ум, когда приходится иметь дело с промышленной разработкой систем непрерывного анализа данных. Помимо того, что он обладает теми преимуществами, которые мы только что рассмотрели для Python, R, MATLAB, он вообще настроен для работы с кластерами. То есть так, чтобы данные анализировались не на одном компьютере, а сразу на целой связке нескольких компьютеров. Думаю, что в рамках нашего курса это немного далекая тема, так как мы рассматриваем простые методы изучения данных, а с помощью Spark строится система какого-то уже конвейерного анализа данных, чтобы непрерывно обновлять различные статистики. Можно привести такой пример. Слушая музыку на любимом вами музыкальном сервисе, вы наверняка часто сталкиваетесь с рекомендациями. Конечно же, эти рекомендации берутся не с пустого места. Они образуются благодаря непрерывному анализу данных, которые вы генерируете, и, собственно, данных всех других пользователей этого сервиса. Безусловно, когда пользователей становится достаточно много, требуются гигантские мощности. И добиваться этих мощностей можно, только объединяя как раз таки компьютеры в такие вот кластеры. Вообще Spark сопряжен с такими понятиями, как MapReduce системы, Hadoop и прочие термины. Таким образом, это не просто инструмент, а вокруг него еще множество разнообразных инструментов, которые уже не столько для анализа данных нужны. И, вероятно, вам придется столкнуться с этими инструментами. Например, я вам должен сказать, что я сейчас решаю актуальную задачу при помощи Apache Kafka, которая тоже относится к этому семейству. Но опять же, должен подчеркнуть, что не стоит заниматься такими инструментами как минимум в первую очередь. Следующим пунктом я написал C++, но под этим я подразумевал, что большинство языков программирования можно использовать для анализа данных. Но вопрос здесь только в том, насколько это эффективно и насколько вы будете уметь решать поставленную вам задачу. Если нужно сделать отчет по продажам за квартал, например, то легче загнать просто данные в Excel, проанализировать их и отправить этот отчет. А строить кластер для анализа этой ситуации — это совсем неуместно. Если вам необходимо делать такие срезы ежедневно и вам необходимо наладить автоматическую их отправку по почте всем своим коллегам, то, конечно же, для этих целей я бы написал какую-нибудь программу, например, на языке Python. Если нужно проверить какую-то сложную гипотезу со сложными вычислениями, которые будут довольно долго выполняться с имеющимися у вас мощностями вашего компьютера, то, возможно, лучше перейти на какие-то быстрые языки вроде, например, того же C++. А когда вам поручат построить систему, которая проводит такой анализ каждую секунду для вашей большой компании, то, конечно, наверняка придется обращаться к изучению Apache Spark или самому писать какой-то аналог этого Apache Spark. В качестве резюме я должен отметить какие-то общие моменты. Как бы это банально ни звучало, серебряной пули для анализа данных не существует. Инструменты нужно сравнивать не только по набору их возможностей, но и по скорости работы, удобству в разработке, требованию к знанию разработчиков в использовании этих систем и подобные свойства. Множество задач не требуют даже знание языков программирования, потому что умение работать в Excel позволит не просто проанализировать данные, но и даже автоматизировать этот процесс. При этом у этих инструментов есть много чего общего. Когда я изучал в университете математическую статистику, мы, например, тоже использовали Excel. После этого курса мне понадобилось изучить Python. И вот тогда я прямо заметил огромное сходство между этими инструментами, будучи еще на уровне новичка. И учиться с нуля мне не пришлось. Поэтому, изучая Excel, вы точно инвестируете в дальнейшее углубление в область анализа данных.