© Валентин Юльевич Арьков, 2023
ISBN 978-5-0059-8841-6
Создано в интеллектуальной издательской системе Ridero
Данная работа посвящена применению современных методов и технологий больших данных в курсе бизнес-аналитике и статистики. Анализ частоты появления различных значений – один из способов первоначальной обработки данных. Чаще всего его относят к описательной статистике (Descriptive Statistics). В последнее время также говорят об описательной аналитике (Descriptive Analytics). Подсчет частот имеет отношение распределению. Поэтому его восприятия материала желательно обладать пониманием основ теории вероятностей и математической статистики.
В данной работе мы рассмотрим примеры и приемы частотного анализа числовых и текстовых данных средствами Python.
К этому материалу следует относиться именно как к примерам. Потому что есть много способов выполнить одно и то же действие. Разные способы и разные алгоритмы могут дать в конечном счете один и тот же результат.
Данное пособие можно скачать совершенно бесплатно через сайт издательства Ридеро. Причем в разных форматах.
Частотный анализ – это изучение характеристик распределения случайной величины. Напомним, что распределение описывает вероятность (частоту) появления тех или иных значений статистического признака. Анализ формы и параметров распределения обычно относят к описательной статистике – Descriptive Statistics.
Язык Python во многом построен как объектно-ориентированный, поэтому мы имеем дело с объектами. А у объектов есть методы, которые соответствуют понятию функция и команда в традиционном программировании. Для упрощения мы будем говорить «функция», не углубляясь в технические подробности.
Мы будем выполнять работу в облачной среде Google Colab, но программу можно также использовать (с небольшими доработками) и в других средах. Основное преимущество Colab – это возможность приступить к работе, не занимаясь установкой программного обеспечения. Требования к компьютеру минимальные: наличие браузера и подключения к интернету.
Здесь мы обсудим первые шаги и основные моменты, касающиеся выполнения работы. В данной работе мы проводим обучение в режиме мастер-класса, когда студенты повторяют действия специалиста – «мастера своего дела». В данном выражении слово «класс» означает «занятия на выбранную тему». Это выражение позаимствовано из английского. Фактически, это английское выражение master class, записанное русскими буквами, а вовсе не перевод.
Программа на Python уже готова, её можно просмотреть, скачать и запустить. Мы обсуждаем её по частям, которые называются ячейками. Студентам нужно с этой программой ознакомиться и «поиграться», меняя некоторые параметры. В конечном счёте нужно достичь некоторого понимания и способности использовать и модифицировать эту готовую программу.
Поэтому в тексте даются пояснения и несложные задания. Во время защиты студент демонстрирует понимание материала и способность осмысленно использовать готовые команды и конструкции языка.
За счет такого подхода можно быстро войти в курс дела и сделать первые шаги в аналитике данных на Питоне.
Задание. Просмотрите в Википедии статью Мастер-класс.
Будем выполнять работу в облачном блокноте Jupyter Notebook в среде Google Colab.
https://colab.research.google.com/
Для работы понадобится подключение к интернет и учетная запись Google. Наш блокнот одновременно является инструментом для анализа данных и отчетом, в котором мы «документируем» все наши действия – шаг за шагом.
Для работы на локальном компьютере можно использовать бесплатную среду Anaconda с аналогичными возможностями.
Еще один вариант – это запуск на локальном компьютере контейнера с Anaconda и работа с ним через браузер.
При открытии страницы Colab выбираем создание нового блокнота: New Notebook. Задаём ему информативное название.
Блокнот состоит из ячеек, которые могут содержать программный код – Code — или текст – Text. Для создания очередной ячейки нажимаем соответствующую кнопку, см. рис.
Рис. Создание ячейки
Отчёт по лабораторной работе традиционно начинается с титульного листа. В нашем примере это будет текстовая ячейка, содержащая основные данные о выполненной работе и исполнителе (студенте).
В начале каждого раздела создаём текстовую ячейку с соответствующим названием. Двойным щелчком левой кнопки мыши переходим к редактированию ячейки. Для заголовков первого верхнего уровня используем символ решетки. После ввода текста для «запуска» ячейки на выполнение нажимаем комбинацию клавиш [Shift + Enter]. При этом автоматически создаётся новая кодовая ячейка.
Чтобы раскрыть структуру документа, нажимаем кнопку содержание Table of contents, см рис.
Рис. Заголовок раздела
Для оформления текста можно использовать разметку Markdown и HTML. При этом в правой половине ячейки открывается предварительный просмотр отформатированного текста, см. рис.
Рис. Титульный лист
В этой части работы мы познакомимся с возможностями анализа числовых данных.
Создадим новый раздел и озаглавим его: «Генерируем числовые данные». Обратим внимание, что мы можем перемещаться между разделами документа с помощью оглавления. Мы также можем сворачивать и разворачивать разделы, нажимая кнопку слева от заголовка раздела, см. рис.
Рис. Управление разделами
Сгенерируем выборку, состоящую из случайных чисел с заданным распределением.
В начале импортируем загружаем библиотеку numpy – Numerical Python Extensions. Библиотека позволяет работать с числовыми массивами и содержит много полезных математических функций. Здесь же мы назначаем короткий псевдоним np для удобства вызова функций, см. рис.
Рис. Загружаем библиотеку
По ходу выполнения работы вставляем комментарии. Это полезно и для себя, и для читателя. Комментарии начинаются с символа решетки #. Они сразу позволяют документировать ход работы. Так что у нас одновременно появляются и сама программа, и документация – описание к ней.
Зададим начальное состояние генератора случайных чисел. Вызываем функцию seed из встроенного модуля random. В качестве параметра укажем номер зачетной книжки, см. рис. Задавая одно и то же начальное состояние генератора, мы будет каждый раз получать один и тот же набор данных. На самом деле это псевдослучайные числа, которые получают путём вычислений. Внешне они выглядят как случайные.
Рис. Инициализация генератора
После выполнения ячейки слева от неё появляется зеленый символ «галочка». Кроме того, в квадратных скобках указано число. Оно указывает, в каком порядке выполнялись ячейки. В блокноте Jupyter можно выполнять ячейки в любом порядке, причем можно запускать их много раз.
Во время работы с блокнотом советуем регулярно нажимать комбинацию клавиш [Ctrl + S] для сохранения. Блокнот сохраняется на вашем облачном диске Google Drive.
Теперь мы вызываем генератор случайных чисел и передаем ему параметры распределения и объем выборки, см. рис.
Рис. Генерируем выборку
Выводим на экран первые 10 элементов массива x. Мы не указываем начальный индекс, поэтому используется нулевой элемент. После символа двоеточия указан номер 10, но элемент с номером 10 не выводится. Мы увидим только элементы с номерами от нуля до девяти – это особенность Python.
При работе в блокноте нам не обязательно использовать функцию print. Достаточно указать имя переменной, см. рис.
Рис. Начало массива