В заключительном параграфе учебника вы узнаете, какие ещё полезные методы анализа данных стоит освоить — и в каких сферах их можно применить. Тут есть нюанс — мы специально рассмотрим их максимально кратко, чтобы охватить как можно больше методов.
Сравнения числовых данных
В параграфе 3.2 мы говорили о сравнении средних и дисперсий между разными группами.
Для сравнения числовых данных мы использовали статистические параметрические тесты.
Напомним, что параметрические тесты используются для анализа данных с нормальным распределением, а непараметрические — для анализа данных без соблюдения допущений о распределении переменной.
Примеры непараметрических тестов:
- непараметрический дисперсионный анализ Крускала-Уоллиса;
- тест Спирмена;
- многие другие.
Так, аналогом корреляционного параметрического теста Пирсона является непараметрический тест Спирмена. Для теста Спирмена данные должны быть ранжированы. Могут использоваться категориальные переменные.
А для сравнения средних значений двух групп помимо t-теста используется тест Манна-Уитни для порядковых данных.
Также помимо дисперсионного анализа ANOVA существует многомерный дисперсионный анализ MANOVA, который используется для нескольких зависимых переменных.
Мы предлагаем ознакомиться с документацией SciPy, которая содержит информацию и реализации множества статистических тестов.
Классификация
Классификация необходима для автоматического разделения данных на отдельные классы, у которых есть общие черты. Вспомним анализ тональности: мы делили тексты на тексты с положительной тональностью, отрицательной и нейтральной в параграфе 12.3. Разные виды тональности при классификации — отдельные классы.
Задача классификации — одна из задач машинного обучения. Например, простой классификатор отличает сообщение со спамом от сообщения без спама. Классификация различается количеством классов, по которым вы будете делить ваши данные.
Для классификации текста необходимо провести предобработку: векторизовать текст и затем использовать модель машинного обучения, посмотреть на оценку качества модели и использовать предсказание данных.
Если вас это заинтересовало, то модели машинного обучения можно найти в библиотеках Scikit-Learn, Tensorflow, Keras, Theano и PyTorch.
Кластеризация
Кластеризация отличается от классификации тем, что классы по которым данные разделяются на группы не определены заранее. То есть при классификации мы хотим определить спам от не спама, а при кластеризации мы пытаемся понять как тексты могут быть разбиты на разные группы и есть ли между текстами взаимосвязь. Мы задаём количество групп, по которым должны быть разделены наши текстовые данные и распределяем тексты по этим группам.
Кластеризацию применяют для решения практических задач: например для разделения болезней. У вас есть набор данных характеристик и симптомов различных болезней и мы разделяем примерно похожие болезни на отдельные кластеры.
Для кластеризации используются следующие библиотеки: Scikit-Learn, PyCaret.
Другие виды регрессий
В параграфах 10.2 и 11.2 мы проводили регрессионный анализ. Напомним, что он необходим для выяснения оценки зависимостей между переменными. То есть мы работаем с зависимыми и независимыми переменными и взаимоотношениями между ними. Регрессионное разнообразие связано с особенностями типов данных для зависимых и независимых переменных. Во всех регрессиях есть свои ограничения, допущения.
Помимо логистической и линейной регрессии, о которых мы уже рассказали, стоит так же коротко поговорить о мультиномиальной и порядковой регрессии, а также про многоуровневое моделирование.
Мультиномиальная регрессия
Коротко вспомним, что задача логистической регрессии — определить вероятность попадания респондентов в одну из двух групп. Например, зависимая переменная при логистической регрессии — ответ на вопрос: «Вы ходили голосовать на выборы?» («Да» или «Нет»).
Используя другие переменные, мы вычисляем вероятность попадания респондентов в две группы. Независимые переменные для нас: уровень образования, доверие к политикам, доверие к процедуре проведения выборов и политические предпочтения.
Мультиномиальная регрессия, как и логистическая, определяет вероятность попадания респондентов в ту или иную группу. Отличие лишь в количестве значений у зависимой переменной.
Например, зависимая переменная для мультиномиальной логистической регрессии «политические предпочтения» со следующими значениями: «Либеральные», «Демократические», «Социалистические», «Консервативные» и «Националистические».
Для использования мультиномиальной логистической регрессии вы можете воспользоваться следующими библиотеками в Python: Scikit-learn и statsmodels.
Порядковая регрессия
Порядковая регрессия, как и мультиномиальная, имеет более чем два значения зависимой переменной. Для порядковой регрессии необходима упорядоченная иерархия значений для зависимой переменной.
Например, зависимой переменной для порядковой регрессии выступает вопрос о будущем участии в голосовании на выборах. Значениями для зависимой переменной будет выступать следующая градация: «Да», «Скорее да, чем нет», «Скорее нет, чем да» и «Нет».
При порядковой регрессии мы учитываем разницу перехода из одной группы (категории ответа «Да»), в другую («Скорее да, чем нет»), что отличает ее от линейной регрессии.
Для вычисления вы можете использовать следующие библиотеки: mord и statsmodels.
Многоуровневое моделирование
Многоуровневое моделирование — это учёт различий или предсказание вероятностных оценок по зависимой переменной на разных уровнях. Например, зависимая переменная — это оценка школьников за экзамен по информатике.
Мы хотим выяснить, как на финальные оценки по информатике влияет учёба в разных классах, школах и в разных городах. Класс, школа и город — выступают разными уровнями, в которых мы учитываем возможные различия по каждому уровню.
Многоуровневое моделирование доступно в следующих библиотеках Python: multilevel_py, statsmodels.
Методы причинно-следственного вывода
Методы причинно-следственного вывода отвечают на один вопрос и исследуют одну гипотезу. Если происходит какое-то событие (принятие лекарства), которое увеличивает вероятность наступления другого события (изменение самочувствия пациента), то между ними существует причинно-следственная связь. Методы причинно-следственного вывода пытаются доказать наличие или отсутствие этой связи.
Методы причинно-следственного вывода включают мэтчинги и эксперименты. Об экспериментах мы уже говорили в 9 главе, а про мэтчинги поговорим сейчас.
Мэтчинг нужны для подбора пар наблюдений (например, респондентов с похожими характеристиками), которых отличает только один показатель. Например, улучшилось ли самочувствие пациента при принятии лекарств? Мы пытаемся ответить насколько поменялось самочувствие пациента, что принял лекарство от того, кто лекарство не принимал.
Обработка естественного языка
Автоматическая обработка естественного языка работает не только с анализом текстов, но с синтезом речи (транскрибирование аудиозаписей), распознаванием текстов (сканирование рукописных документов), переводами с одного языка на другой и анализом источников естественного языка.
Например, морфологический анализ и частеречная разметка используются для автоматического распознавания грамматических ошибок и их исправления. Синтаксические разборы используют для генерации новых текстов. Для большого набора текстов используют автоматический пересказ текстов (text summarization).
В Python существуют следующие пакеты для обработки естественного языка: NLTK, spaCy, Pymorphy3, RuPosTagger, Natasha.
Все методы, которые мы описали выше, можно применять не только в сфере аналитики данных, но и в социологии, политологии, в программировании и статистике.
О данных — всё. Переходите к заключительному параграфу учебника: в нём мы расскажем о смежных технологиях, которые помогут вам стать лучше в анализе данных.