Поставщики баз данных постоянно инвестируют в развитие масштабируемости, производительности, безопасности и функциональности своих продуктов. Современные базы данных намного более продвинуты, чем традиционные реляционные базы данных. Они могут хранить и запрашивать данные в различных форматах. Кроме реляционных форматов, можно определять типы объектов, хранить документы, хранить и запрашивать объекты JSON, геоданные и т. д. Помимо этого, большинство современных баз имеют массу статистических функций, а некоторые поставляются с основными статистическими приложениями. Например, база данных Oracle поставляется с более чем 300 различными встроенными статистическими функциями. Они охватывают бо́льшую часть статистического анализа, необходимого для проектов науки о данных, и включают практически все статистические функции, доступные в других инструментах и языках, таких как R. Изучение функционала баз данных организации может позволить аналитику действовать более эффективно и масштабируемо, используя язык SQL. Кроме того, большинство поставщиков баз данных (включая Oracle, Microsoft, IBM и EnterpriseDB) интегрировали в свои базы разнообразные алгоритмы машинного обучения, которые можно запускать на SQL. Использование алгоритмов машинного обучения, встроенных в ядро базы и доступных через SQL, известно как
Использование алгоритмов машинного обучения в базе данных имеет следующие преимущества:
• Отсутствие движения данных. Некоторые продукты для обработки данных требуют их экспорта из базы и конвертации в особый формат, чтобы поместить в алгоритм машинного обучения. Благодаря машинному обучению в базе данных перемещение или преобразование данных не требуется. Это упрощает весь процесс, делает его менее трудоемким и подверженным ошибкам.
• Скорость. Для аналитических операций, выполняемых в базе данных без их перемещения, можно использовать вычислительные возможности сервера самой базы, обеспечивая увеличение производительности до 100 раз по сравнению с традиционным подходом. Большинство серверов баз данных имеют высокие спецификации, множество процессоров и эффективное управление памятью для обработки наборов данных, содержащих более миллиарда записей.
• Высокая безопасность. База данных обеспечивает контролируемый и поддающийся проверке доступ к данным, увеличивая производительность специалиста и поддерживая нормы безопасности. Кроме того, машинное обучение в базе данных позволяет избежать рисков, присущих процессу извлечения и загрузки данных на альтернативные серверы. К тому же традиционный процесс обработки данных приводит к созданию множества копий (а иногда и разных версий) наборов данных в разных хранилищах организации.
• Масштабируемость. База данных может легко масштабировать аналитику по мере увеличения объема данных благодаря алгоритмам машинного обучения. Программное обеспечение баз предназначено для эффективного управления большими объемами данных с использованием нескольких серверных процессоров и памяти, что позволяет выполнять алгоритмы машинного обучения параллельно другим задачам. Базы данных также очень эффективны при обработке больших наборов данных, которые не помещаются в память. Сорокалетняя история развития баз гарантирует, что наборы данных будут обработаны быстро.
• Режим реального времени. Модели, разработанные с использованием алгоритмов машинного обучения в базе данных, могут быть немедленно развернуты и использованы в средах реального времени. Это позволяет интегрировать модели в привычные приложения и предоставлять прогнозы конечным пользователям и клиентам.
• Развертывание в среде эксплуатации. SQL — это язык базы данных, который может быть использован для доступа к алгоритмам и моделям машинного обучения в базах. Модели, разработанные с использованием автономного ПО для машинного обучения, возможно, придется перекодировать на другие языки программирования, прежде чем они смогут быть развернуты в корпоративных приложениях. Но это не относится к машинному обучению в базе данных. SQL можно использовать и вызывать любым языком программирования и инструментом науки о данных. Это значительно упрощает задачу включения модели из базы данных в производственные приложения.
Многие организации используют преимущества машинного обучения в базе данных. Среди них встречаются как небольшие компании, так и крупные. Вот примеры организаций, использующих эту технологию:
• Fiserv — американский поставщик финансовых услуг, который занимается выявлением и анализом мошенничества. Он перешел от работы с несколькими поставщиками технологий хранения данных и машинного обучения к использованию машинного обучения в своей базе данных. В частности, эта технология позволяет сократить время создания/обновления и развертывания модели обнаружения мошенничества с почти недели до нескольких часов.
• Компания 84.51° (формально Dunnhumby, USA) использовала множество различных аналитических решений при создании моделей для своих клиентов. Обычно каждый месяц более 318 часов уходило на перемещение данных из базы на сервера машинного обучения и обратно. При этом на создание моделей тратилось еще как минимум 67 часов. Компания внедрила алгоритмы машинного обучения непосредственно в базу данных. Как только данные перестали покидать базу, экономия времени сразу составила более 318 часов. Поскольку база данных использовалась в качестве вычислительного инструмента, специалисты смогли масштабировать аналитику и время создания или обновления моделей машинного обучения сократилось с 67+ часов до 1 часа. Это дало экономию 16 дней. Теперь они могут получать результаты значительно быстрее и начинать взаимодействие с клиентами намного раньше, вскоре после совершения ими покупки.
• Wargaming — создатели World of Tanks и многих других игр — использует машинное обучение в базе данных, чтобы моделировать и прогнозировать взаимодействие с более чем 120 млн своих клиентов.
Хотя современная база данных невероятно эффективна для обработки транзакций, в эпоху больших данных для управления разнообразными формами данных и их долгосрочного хранения требуется новая инфраструктура. Современная база данных может справляться с объемами до нескольких петабайт, но при таком масштабе традиционные решения для баз могут стать чрезмерно дорогими. Этот вопрос стоимости обычно упирается в вертикальное масштабирование. В традиционной парадигме чем больше данных должна хранить и обрабатывать организация в течение необходимого срока, тем больший ей требуется сервер, а это увеличивает стоимость его конфигурации и лицензирования баз данных. Традиционная технология позволяет запрашивать и принимать миллиард записей ежедневно, но такой масштаб обработки обойдется в несколько миллионов долларов.
Hadoop — это платформа с открытым исходным кодом, которая была разработана и выпущена Apache Software Foundation. Она хорошо зарекомендовала себя для эффективного приема и хранения больших объемов данных и обходится дешевле, чем традиционный подход. Кроме того, на рынке появился широкий ассортимент продуктов для обработки и анализа данных на платформе Hadoop. Приведенное выше высказывание, касающееся современных баз данных — «переместить алгоритмы в данные, вместо того чтобы перемещать данные в алгоритмы», — также применимо и к Hadoop.
В Hadoop данные делятся на разделы, которые распределяются по узлам кластера. В процессе работы с Hadoop различные аналитические инструменты обрабатывают данные в каждом из кластеров (часть этих данных может постоянно находиться в оперативной памяти), что обеспечивает быструю обработку данных, поскольку несколько кластеров анализируются одновременно. Ни извлечение данных, ни ETL-процесс не требуются. Данные анализируются там, где они хранятся. Существуют и другие примеры аналогичного подхода, скажем решения от Google и Amazon, где аналитическое программное обеспечение, такое как Spark, разворачивается на распределенных вычислительных архитектурах, позволяя анализировать данные там, где они находятся.
В мире больших данных специалист может запрашивать их массивные наборы с использованием аналитических языков, таких как Spark, Flink, Storm, и широкого спектра инструментов, а также постоянно растущего числа бесплатных и коммерческих продуктов. Эти продукты представляют собой инструменты высокоуровневой аналитики или панели мониторинга, которые упрощают работу специалиста с данными и аналитикой, что позволяет ему сконцентрироваться на анализе данных. Однако современному специалисту по данным приходится анализировать их в двух разных местах: в современных базах данных и в хранилищах больших данных на Hadoop. В следующей части мы рассмотрим, как решается эта проблема.
Если у организации нет данных такого размера и масштаба, которым требуется Hadoop, то для управления данными ей будет достаточно традиционной базы данных. Однако есть мнение, что инструменты хранения и обработки данных, доступные в мире Hadoop, в итоге вытеснят традиционные базы данных. Такое сложно себе представить, и потому в последнее время обсуждается более сбалансированный подход к управлению данными в так называемом мире гибридных баз, где традиционные базы данных сосуществуют с Hadoop.
В мире гибридных баз все данные связаны между собой и работают вместе, что позволяет эффективно обмениваться ими, обрабатывать и анализировать их. На рис. 8 показано традиционное хранилище данных, но при этом большая часть данных находится не в базе или хранилище, а перемещена в Hadoop. Между базой данных и Hadoop создается соединение, которое позволяет специалисту запрашивать данные, как если бы они находились в одном месте. Ему не потребуется запрашивать отдельно данные из базы и из Hadoop. Гибридная база автоматически определит, какие части запроса необходимо выполнить в каждом из местоположений, затем объединит результаты и представит их специалисту. Точно так же по мере роста хранилища часть данных устаревает, и гибридное решение автоматически перемещает редко используемые данные в среду Hadoop, а те, что становятся востребованными, наоборот, возвращает обратно. Гибридная база данных сама определяет местоположение данных на основе частоты запросов и типа проводимого анализа.
Одним из преимуществ гибридных решений является то, что специалист по-прежнему запрашивает данные на SQL. Ему не нужно изучать другой язык запросов или применять особые инструменты. Сегодняшние тенденции позволяют предположить, что в ближайшем будущем основные поставщики баз данных, облачных хранилищ и программного обеспечения для интеграции данных будут предлагать именно гибридные решения.
Подготовка и интеграция данных
Интеграция данных включает в себя их получение из разных источников и последующее объединение с целью получения единого представления данных по всей организации. Разберем это на примере медицинской карты. В идеале у каждого человека должна быть одна медицинская карта, чтобы каждая больница, поликлиника и врач могли использовать один и тот же идентификатор пациента, единицы измерения, систему оценок и т. д. К сожалению, почти в каждой больнице имеется собственная независимая система учета пациентов и то же справедливо в отношении внутрибольничных медицинских лабораторий. Представьте себе, как трудно бывает найти историю болезни и назначить правильное лечение пациенту. Такие проблемы возникают в рамках одной больницы. Когда же несколько больниц обмениваются данными пациентов, проблемы их интеграции становятся еще существеннее. Именно поэтому первые три этапа CRISP-DM занимают до 70–80 % общего времени проекта, причем бо́льшая часть этого времени уходит на интеграцию данных.
Интеграция данных из нескольких источников — непростая задача, даже когда данные структурированы. Если же задействованы современные источники больших данных, в которых частично или вовсе неструктурированные данные являются нормой, то стоимость интеграции и управления архитектурой может значительно увеличиваться. Наглядный пример проблем интеграции — данные клиентов. Они могут находиться в различных приложениях и соответствующих им базах данных. Каждое приложение при этом будет содержать данные о клиентах, немного отличающиеся от тех же данных в других приложениях. Например, внутренние источники данных могут содержать кредитный рейтинг клиента, продажи, платежи, контактную информацию кол-центра и т. д. Внешние источники могут содержать дополнительную информацию о клиентах. В таком контексте создание единого представления клиента требует извлечения и интеграции данных из всех этих источников.
Типичный процесс интеграции данных включает в себя несколько этапов, а именно: извлечение, очистку, стандартизацию, преобразование и, наконец, собственно интеграцию для создания унифицированной версии данных. Извлечение данных из нескольких источников может осложняться тем, что доступ к ним возможен только через определенный интерфейс или API. Следовательно, специалисту понадобится широкий набор навыков для взаимодействия с каждым из источников данных.
Как только данные извлечены, необходимо проверить их качество. Очистка данных — это процесс, который обнаруживает, очищает или удаляет поврежденные или неточные данные. Например, может потребоваться очистка информации с адресами клиентов, чтобы преобразовать ее в стандартный формат. Кроме того, данные в источниках могут дублироваться. В этом случае необходимо определить запись клиента, подходящую для использования, и удалить все остальные из наборов данных. Важно обеспечить согласованность значений. Например, одно исходное приложение может использовать числовые значения для представления кредитного рейтинга клиента, а другое — иметь комбинацию числовых и символьных значений. В таком сценарии необходимо принять решение о том, какие значения использовать, и привести их к единому стандарту. Представьте, что одним из атрибутов в наборе данных является размер обуви клиента. При этом клиенты покупают обувь из разных регионов мира. Но система нумерации, используемая для описания размеров обуви в Европе, США, Великобритании и других странах, немного различается. Перед этапом анализа данных и моделирования эти значения должны быть стандартизированы.
Преобразование данных включает в себя их изменение или объединение. На этом этапе используются самые разные методы, включая сглаживание данных, объединение, нормализацию и написание пользовательского кода для выполнения конкретного преобразования. Типичным примером преобразования данных является обработка возраста клиента. Во многих задачах науки о данных не требуется знать точный возраст клиентов. Разница между покупателями 42 и 43 лет, как правило, незначительна, в то время как разница в возрасте от 42 до 52 лет уже становится информативной. Поэтому возраст покупателя часто преобразуется из конкретного значения в диапазон. Процесс преобразования возрастов в диапазоны является примером одного из методов преобразования данных, называемого биннингом. Хотя биннинг относительно прост с технической точки зрения, сложность состоит в том, чтобы определить наиболее подходящие пороговые значения диапазона, которые следует применять.
Последний этап интеграции включает создание выходных данных для алгоритмов анализа, используемых в проекте. Версия данных, которая подается в алгоритм на входе, называется базовой аналитической таблицей.
Создание базовой аналитической таблицы
Первым шагом в создании базовой аналитической таблицы является выбор атрибутов, которые будут включены в анализ. Выбор должен быть основан на знании предметной области и анализе связей между атрибутами. В качестве конкретного примера рассмотрим сценарий анализа, ориентированного на клиентов сервиса. В этом сценарии необходимо создать список часто употребляемых понятий, который будет использован при разработке и выборе атрибутов: детали клиентского контракта, демография, привычки, изменения в привычках, особые привычки, фаза жизненного цикла, сетевые ссылки и т. д. Если будет обнаружена высокая корреляция между двумя атрибутами, вероятнее всего, один из них должен быть исключен. Набор выбранных атрибутов создает так называемую аналитическую запись. Обычно она включает как необработанные, так и производные атрибуты. Каждый объект в базовой аналитической таблице представлен одной записью, поэтому именно набор атрибутов, включенных в нее, определяет отображение анализируемых объектов.
После того как форма аналитической записи разработана, необходимо извлечь и объединить эти записи в набор данных для анализа. Когда записи созданы и сохранены, например, в базе данных, мы получаем то, что и называют базовой аналитической таблицей — набор данных, которые используются в качестве входных для алгоритмов машинного обучения. Следующая глава познакомит вас с областью машинного обучения и некоторыми из самых распространенных алгоритмов, используемых в науке о данных.
Глава 4. Основы машинного обучения
Наука о данных — это партнерство между специалистом по данным и компьютером. В главе 2 мы описали жизненный цикл процесса CRISP-DM, которому следует специалист по данным. CRISP-DM определяет последовательность принимаемых им решений и действия, которые помогут их воплотить. Основные задачи специалиста по данным в цикле CRISP-DM сводятся к тому, чтобы определить проблему, спроектировать набор данных, подготовить их, принять решение о том, какой тип анализа будет использован, а затем оценить и интерпретировать результаты. Вклад компьютера в этом партнерстве заключается в его способности обрабатывать данные и искать закономерности. Машинное обучение — это область исследований, которая разрабатывает алгоритмы для выявления компьютером закономерностей в данных. Алгоритмы и методы машинного обучения в основном применяются на этапе моделирования в CRISP-DM. Процесс машинного обучения представляет собой два последовательных этапа.
На первом алгоритм машинного обучения применяется к набору данных для выявления в нем закономерностей. Сами закономерности могут быть представлены разными способами. Позже в этой главе мы опишем наиболее популярные из них: деревья решений, регрессионные модели и нейронные сети. Эти представления закономерностей известны как модели, поэтому и сам этап жизненного цикла CRISP-DM называется этапом моделирования. Проще говоря, все алгоритмы машинного обучения создают модели из данных, но каждый из них разработан для создания моделей, использующих определенный тип представления.
На втором этапе, когда модель создана, она применяется для анализа. В ряде случаев решающее значение имеет структура модели, которая показывает, какие именно атрибуты являются важными для конкретной области определения. Например, мы могли бы применить алгоритм машинного обучения к набору данных пациентов, уже перенесших инсульт, а затем использовать такую структуру модели, которая распознавала бы факторы, тесно связанные с инсультом. Существуют модели для маркировки или классификации новых объектов. К примеру, основная цель модели спам-фильтра состоит в том, чтобы маркировать входящие электронные письма, а не выявлять атрибуты спам-сообщений.
Обучение с учителем и без
Большинство алгоритмов машинного обучения можно отнести либо к обучению с учителем, либо к обучению без учителя. Цель обучения с учителем состоит в том, чтобы научить алгоритм сопоставлять разные значения разных атрибутов объекта со значением заданного атрибута этого же объекта, известного как целевой атрибут. Например, когда обучение с учителем применяется для спам-фильтра, алгоритм пытается изучить функцию, которая сопоставляет атрибуты, описывающие электронную почту, со значением (спам / не спам) целевого атрибута; функция, которую изучает алгоритм, является моделью спам-фильтра. В этом контексте искомая алгоритмом закономерность является функцией, которая сопоставляет значения входных атрибутов со значением целевого атрибута, а модель, которую возвращает алгоритм, является компьютерной программой, выполняющей эту функцию. По сути, обучение с учителем осуществляется путем поиска одной из множества функций, которая наилучшим образом отображает связь между входными и выходными данными. Однако для любого набора данных разумной сложности существует так много комбинаций входных данных и их возможных сопоставлений с выходными данными, что алгоритм не может испробовать их все. Поэтому каждый алгоритм машинного обучения предпочитает определенные типы функций во время поиска. Эти предпочтения известны как смещение обучения алгоритма. Реальная проблема в использовании машинного обучения состоит в том, чтобы найти алгоритм, смещение обучения которого лучше всего подходит для конкретного набора данных. Как правило, для того, чтобы выяснить, какой из алгоритмов лучше всего работает с конкретным набором данных, требуются эксперименты.
Обучение с учителем называется именно так, потому что каждый объект в наборе данных содержит как входные значения, так и выходное (целевое) значение. Таким образом, алгоритм обучения может направлять свой поиск наилучшей функции, проверяя соответствие каждой пробуемой функции набору данных, и в то же время сам набор данных выступает в качестве контролера процесса обучения или учителя, обеспечивая обратную связь. Очевидно, что для обучения с учителем каждый объект в наборе данных должен быть промаркирован значением целевого атрибута. Однако зачастую целевой атрибут бывает сложно измерить в необработанном виде, а значит, и создать набор данных с маркированными объектами. При подобном сценарии много времени и усилий тратится, чтобы создать набор данных с целевыми значениями атрибутов, прежде чем модель можно будет обучать.
При обучении без учителя целевой атрибут отсутствует. Следовательно, алгоритмы обучения без учителя не требуют времени и усилий на маркировку целевым атрибутом объектов в наборе данных. Однако отсутствие целевого атрибута означает и то, что обучение становится более сложным: вместо конкретной задачи поиска соответствующего отображения между входным и выходным значениями, перед алгоритмом ставится более общая задача поиска закономерностей в данных. Самым распространенным типом обучения без учителя является кластерный анализ, когда алгоритм ищет кластеры объектов, схожих друг с другом. Часто эти алгоритмы кластеризации начинают со случайной группы кластеров, а затем итеративно обновляют кластеры (перебрасывая объекты из одного кластера в другой) таким образом, чтобы увеличить подобие внутри каждого кластера и разницу между ними.
Задача кластеризации — выяснить, как измерить подобие. Если все атрибуты в наборе данных являются числовыми и имеют одинаковые диапазоны, то, вероятно, имеет смысл просто рассчитать евклидово расстояние (или расстояние по прямой) между рядами. Объекты, которые находятся близко друг к другу в евклидовом пространстве, рассматриваются как подобные. Однако существует ряд факторов, которые могут усложнить обнаружение сходства между объектами. В некоторых наборах данных разные числовые атрибуты имеют разные диапазоны, в результате чего разброс значений в одном атрибуте может быть не таким значительным, как в другом. В таких случаях атрибуты должны быть нормализованы путем присвоения им одинакового диапазона. Еще одним усложняющим фактором при расчете сходства является то, что подобие объектов можно определять по-разному. Порой одни атрибуты являются более важными, чем другие, поэтому имеет смысл при расчетах задавать весовой параметр некоторым атрибутам, что бывает необходимо и тогда, когда набор данных содержит нечисловые значения. Эти более сложные сценарии могут потребовать разработки индивидуальных параметров подобия для использования алгоритмом кластеризации.
Чтобы проиллюстрировать обучение без учителя на конкретном примере, представим, что мы проводим анализ причин развития диабета 2-го типа среди взрослых белых американцев мужского пола. Мы начнем с построения набора данных, в котором каждая строка будет представлять одного человека, а столбцы — атрибуты, которые, по нашему мнению, имеют отношение к исследованию. Для этого примера мы возьмем следующие атрибуты: рост человека в метрах, его вес в килограммах, продолжительность тренировок в течение недели в минутах, размер обуви и вероятность развития у него диабета, полученную на основе клинических тестов и изучения образа жизни, выраженную в процентах. Таблица 2 иллюстрирует фрагмент этого набора данных. Очевидно, что есть и другие атрибуты, которые могут быть включены в набор, например возраст человека, и что среди выбранных атрибутов есть лишние, например размер обуви, который не коррелирует с развитием сахарного диабета. Как мы обсуждали в главе 2, выбор атрибутов для набора данных — ключевая задача науки о данных, но в этом примере мы намеренно будем работать с таким набором данных, какой у нас есть.
При обучении без учителя алгоритм кластеризации будет искать группы строк, которые более похожи друг на друга, чем на другие строки. Каждая из этих групп определяет кластер подобных объектов. С точки зрения изучения причин развития диабета выявление кластеров схожих пациентов (объектов) может помочь выявить причины заболевания или сопутствующих диабету заболеваний путем поиска значений атрибутов, которые относительно часто встречаются в кластере. Простая идея поиска кластеров подобных объектов служит мощным инструментом и применима ко многим областям жизни. Другой пример кластеризации строк — предоставление рекомендаций для клиентов. Если клиенту понравилась книга, песня или фильм, он с высокой вероятностью получит удовольствие от другой книги, песни или фильма из того же кластера.
Обучение моделей прогнозирования
Прогнозирование — это задача оценки значения целевого атрибута конкретного объекта на основе значений других его атрибутов. Проблему прогнозирования решают алгоритмы машинного обучения с учителем, которые генерируют модели прогнозирования. Пример спам-фильтра, который мы использовали для иллюстрации обучения с учителем, подойдет и здесь: мы используем обучение с учителем при создании модели спам-фильтра, которая является моделью прогнозирования. Типичным случаем использования модели прогнозирования является оценка целевого атрибута для новых объектов, которых нет в наборе обучающих данных. Продолжая пример со спамом, мы обучаем спам-фильтр (модель прогнозирования) на наборе данных старых писем, а затем используем эту модель, чтобы предсказать, являются ли новые письма спамом или нет. Проблемы прогнозирования, возможно, самый популярный тип проблем, для которых используется машинное обучение, поэтому оставшаяся часть этой главы будет посвящена прогнозированию в качестве примера для введения в машинного обучения. Мы начнем наше знакомство с моделями прогнозирования с фундаментальной прогностической концепции, известной как корреляционный анализ. Затем мы покажем, как алгоритмы машинного обучения с учителем работают над созданием различных типов популярных моделей прогнозирования, в том числе моделей линейной регрессии, моделей нейронных сетей и деревьев решений.
Корреляция описывает силу взаимосвязи между двумя атрибутами. В общем смысле корреляция может описывать любой тип связи. Термин «корреляция» также имеет конкретное значение в статистике, где он часто используется как сокращенный вариант «коэффициент корреляции Пирсона». Коэффициент корреляции Пирсона измеряет силу линейных зависимостей между двумя числовыми атрибутами и находится в диапазоне значений от –1 до +1. Для его обозначения используется буква
Но вернемся к исследованию диабета. Исходя из наших знаний о физиологии людей, мы ожидаем, что между некоторыми признаками в табл. 4.1 будут взаимосвязи. Например, обычно чем выше человек, тем больше размер его обуви. Мы можем ожидать, что чем больше кто-то тренируется, тем меньше в нем будет избыточного веса, с учетом того, что более высокий человек, вероятно, будет тяжелее более низкого, который тратит столько же времени на физические упражнения. Мы также ожидаем, что не обнаружим очевидной связи между размером обуви и временем тренировок. На рис. 9 представлены три диаграммы рассеяния, которые иллюстрируют, как эти интуитивные ожидания отражаются в данных. Диаграмма рассеяния вверху показывает, как распределяются данные, если они построены в зависимости от размера обуви и роста. На этой диаграмме рассеяния наблюдается четкая закономерность, идущая из нижнего левого угла в верхний правый, указывающий на то, что по мере того, как люди становятся выше (движение вправо по оси
Может показаться, что применение статистического коэффициента корреляции Пирсона к анализу данных ограничено только парами атрибутов. К счастью, мы можем обойти эту проблему, применяя функции для групп атрибутов. В главе 2 мы ввели индекс массы тела (ИМТ) — отношение веса человека (в килограммах) к квадрату его роста (в квадратных метрах). ИМТ был изобретен в XIX в. бельгийским математиком Адольфом Кетле для того, чтобы задать значения для каждой из следующих категорий: люди с недостаточным весом, с нормальным, с избыточным или страдающие ожирением. Мы знаем, что вес и рост имеют положительную корреляцию (как правило, кто выше, тот и тяжелее), поэтому, поделив вес на рост, мы можем отслеживать зависимость первого от второго. Есть два аспекта ИМТ, которые представляют интерес для нашего обсуждения корреляции между несколькими атрибутами. Во-первых, ИМТ — это функция, которая принимает ряд атрибутов в качестве входных данных и сопоставляет их с новым значением. По сути, такое отображение создает новый производный атрибут (в отличие от необработанного атрибута) в данных. Во-вторых, поскольку ИМТ человека представляет собой числовое значение, мы можем рассчитать корреляцию между ним и другими атрибутами.
В нашем тематическом исследовании причин развития диабета 2-го типа у белых взрослых американцев мужского пола нам требуется определить, имеет ли какой-нибудь из признаков сильную корреляцию с целевым атрибутом, описывающим вероятность развития диабета у человека. На рис. 10 представлены три диаграммы рассеяния, каждая из которых показывает отношения между целевым атрибутом диабета и одним из следующих признаков (слева направо): ростом, весом и ИМТ. Если посмотреть на диаграмму рассеяния роста и диабета, то в данных не наблюдается какой-либо определенной закономерности, что свидетельствует об отсутствии реальной корреляции между этими двумя атрибутами (
Пример ИМТ иллюстрирует, что можно создать новый производный атрибут, задав функцию, которая принимает несколько атрибутов в качестве входных данных. Таким же путем можно вычислить корреляцию Пирсона между этим производным атрибутом и другим атрибутом в наборе данных. Производный атрибут может иметь более высокую корреляцию с целевым атрибутом, чем любой из отдельно взятых атрибутов, используемых для его генерации. Для лучшего понимания: ИМТ имеет более высокую корреляцию с признаком диабета, чем рост или вес, потому что вероятность развития диабета зависит от взаимосвязи роста и веса, а атрибут ИМТ моделирует именно эту взаимосвязь. Вот почему врачи интересуются ИМТ людей, это дает им больше информации о вероятности развития диабета 2-го типа, чем рост или вес человека по отдельности.
Мы уже отмечали, что выбор атрибутов — ключевая задача в науке о данных. То же касается и моделирования атрибутов. Часто моделирование производного атрибута, который имеет сильную корреляцию с целевым, — это уже полдела в науке о данных. Когда вы знаете правильные атрибуты для представления данных, вы можете создавать модели точно и быстро. Выбор и моделирование правильных производных атрибутов является непростой задачей. ИМТ был разработан в XIX в., однако сейчас алгоритмы машинного обучения способны изучать взаимодействия между входными атрибутами и создавать полезные производные атрибуты, просматривая различные их комбинации, проверяя корреляцию между ними и целевым атрибутом. Вот почему машинное обучение полезно в тех случаях, когда существует множество атрибутов, имеющих слабо выраженную взаимосвязь с процессом, который мы пытаемся понять.
Выявление атрибута (необработанного или производного), который имеет высокую корреляцию с целевым атрибутом, полезно, поскольку коррелированный атрибут может дать нам понимание процесса, представленного целевым атрибутом. В нашем случае факт сильной корреляции ИМТ с вероятностью развития диабета указывает на то, что не вес сам по себе способствует заболеванию, а его избыточность. Кроме того, если наблюдается сильная корреляция входного атрибута с целевым, скорее всего, будет нелишним ввести его в модель прогнозирования. Подобно корреляционному анализу, прогнозирование включает в себя анализ отношений между атрибутами. Чтобы иметь возможность сопоставлять значения набора с целевым атрибутом, должна существовать корреляция между ним и входными атрибутами (или некоторой производной функцией от них). Если этой корреляции не существует (или она не найдена алгоритмом), то входные атрибуты не имеют значения при прогнозировании, и лучшее, что может сделать модель, — игнорировать входные данные и всегда прогнозировать центральную тенденцию этой цели[13] в наборе данных. И наоборот, если между входными атрибутами и целью существует сильная корреляция, то весьма вероятно, что алгоритм машинного обучения сможет сгенерировать точную модель прогнозирования.
Когда набор данных состоит из числовых атрибутов, часто используются модели прогнозирования, основанные на регрессии. Регрессионный анализ оценивает ожидаемое (или среднее) значение числового целевого атрибута, когда все входные атрибуты фиксированы. Первый шаг в регрессионном анализе — выдвижение гипотезы о структуре отношений между входными атрибутами и целевым. Затем определяется параметризованная математическая модель предполагаемой взаимосвязи. Эта параметризованная модель называется функцией регрессии. Вы можете представить себе функцию регрессии как машину, которая преобразует входные данные в выходные, а параметры — в виде настроек, управляющих поведением машины. Функция регрессии может иметь несколько параметров, и целью регрессионного анализа является поиск правильных настроек для этих параметров.
С помощью регрессионного анализа можно выдвинуть гипотезу и смоделировать множество различных типов зависимостей между атрибутами. В принципе, единственное ограничение для структуры, которая может быть смоделирована, — это возможность определить соответствующую функцию регрессии. В некоторых областях могут быть веские теоретические причины для использования конкретного типа зависимости, но в иных случаях целесообразно начинать с самого простого типа, а именно с линейной зависимости, и уже затем, если это требуется, моделировать с более сложными. Одна из причин, по которой следует начинать с линейной зависимости, — простота интерпретации функции линейной регрессии. Другая причина — здравый смысл, который состоит в том, чтобы ничего не усложнять без необходимости.
Регрессионный анализ, использующий линейную зависимость, называется линейной регрессией. Простейшим применением линейной регрессии является моделирование взаимосвязи между двумя атрибутами: входным атрибутом
Это уравнение линейной функции (часто записываемой как
В регрессионном анализе параметры функции регрессии изначально неизвестны. Установка этих параметров эквивалентна поиску строки, которая наилучшим образом соответствует данным. Стратегия установки этих параметров состоит в том, чтобы начать со случайных значений, а затем итеративно обновлять параметры, уменьшая общее отклонение функции в наборе данных. Общее отклонение рассчитывается в три этапа:
1. Функция применяется к набору данных и для каждого объекта в наборе оценивает значение целевого атрибута.
2. Отклонение функции для каждого объекта вычисляется путем вычитания оценочного значения целевого атрибута из его фактического значения.
3. Отклонение функции для каждого объекта возводится в квадрат, а затем эти возведенные в квадрат значения суммируются.
Отклонение функции для каждого объекта возводится в квадрат на последнем шаге так, чтобы отклонение, когда функция завышает значение, не отменялось отклонением, когда цель недооценена. Возведение в квадрат и в том и в другом случае придает отклонению положительное значение. Этот параметр известен как
где набор данных содержит
Чтобы создать линейную регрессионную модель прогнозирования, которая оценивает вероятность развития диабета у человека с учетом его ИМТ, мы заменяем
Значение угла наклона прямой = 0,55593 указывает на то, что для каждого увеличения ИМТ на 1 единицу модель увеличивает предполагаемую вероятность развития диабета у человека чуть более чем на 0,5 %. Чтобы предсказать вероятность развития диабета у человека, мы просто вводим его значение ИМТ в модель. Например, когда ИМТ = 20, модель возвращает прогноз 3,73 % для атрибута «Диабет», а для ИМТ = 21 модель прогнозирует 4,29 % вероятности[15].
Линейная регрессия, использующая метод наименьших квадратов, рассчитывает средневзвешенное значение для объектов. Фактически значение сдвига линии по вертикали ω
Взвешивание объектов основано на их расстоянии от линии — чем дальше объект находится от линии, тем его отклонение выше и алгоритм будет взвешивать экземпляр по квадрату этого отклонения. Как следствие, объекты, которые имеют экстремальные значения (выбросы), могут оказать непропорционально большое влияние на процесс вычерчивания линии, в результате чего она будет удалена от других объектов. Поэтому перед использованием метода наименьших квадратов важно проверить наличие выбросов в наборе данных.