В данной работе отсутствующие значения были проигнорированы, т.к. в полученных данных, игнорирование значений является признаком. Например, если в данных не заполнена информация о площади кухни, то кухни нет, и эта квартира - студия. В то же время, если в этом наборе данных отсутствует информация о типе квартире, то, как раз признак отсутствия площади кухни, может утверждать о том, что данный объект - студия, и заполнить отсутствующие поля этим значением.
4. Исследование данных
После того, как был получен чистый набор данных, можно приступить к его анализу. Этап исследования данных похож на мозговой штурм. Это выражается в загрузке случайного подмножества данных с использованием программных средств, построение графика гистограммы или распределения, для того, чтобы увидеть общую тенденцию, или создание интерактивной визуализации, которая позволяет погрузиться в каждую точку данных и исследовать историю выбросов.
Используя эту информацию, следует формирование гипотезы о данных и проблемы, которую необходимо решить. При прогнозировании цены на недвижимость, в первую очередь необходимо создать тепловую карту цены, чтобы заранее определить гипотезы.
5. Инженерия признаков
В машинном обучении функция является измеримым свойством или атрибутом наблюдаемого явления. В сложных задачах прогнозирования, таких как распознавание символов, функциями могут быть гистограммы, подсчитывающие количество черных пикселей.
По словам Эндрю Нг, одного из ведущих экспертов в области машинного обучения: «Разработка модели - трудоемкий процесс, требующий большого количество времени и знаний». «Прикладное машинное обучение» - это в основном инженерия признаков. «Инженерия признаков - это процесс использования экспертных знаний для преобразования необработанных данных в информационные функции, которые представляют собой бизнес-проблему, которую необходимо решить. Этот этап напрямую влияет на точность прогнозируемой модели.
Обычно этот процесс делится на две задачи:
1) Выбор факторов - это процесс сокращения количества факторов, которые добавляют больше шума, чем информации. Обычно это делается для того, чтобы избежать большого размера входных данных.
2) Создание факторов - создание новых параметров для модели из тех, которые у вас уже есть. Пример этого - наличие непрерывной переменной, но знания предметной области информируют о том, что из нее необходимо знать лишь ее бинарную часть, основываясь на некотором пороговом значении.
В данной работе были отобраны только те факторы, которые не создают шума, а также из 78 собранных переменных были созданы 430 уникальных факторов.
6. Предиктивное моделирование
Предиктивное моделирование - это этап начала процесса обучения машин. Проект, который добился удовлетворительных результатов, - это не тот, который просто тренирует модель и преследует точность, но также использует комплексные статистические методы и тесты, чтобы гарантировать, что результаты модели действительно имеют смысл, масштабируемы и значительны. Основываясь на вопросах, заданных на этапе понимания бизнес-цели, определяется какая модель будет выбрана для решения проблемы. Это нелегкое решение, и нет единого правильного ответа. Выбор модели (или моделей, необходимо всегда тестировать несколько) будет зависеть от размера, типа и качества данных, количества времени и вычислительных ресурсов, которые исследователь готов инвестировать, а также типом предполагаемого результата.
На рисунке 3 представлена диаграмма выбора необходимого типа модели от корпорации Microsoft с учетом разнородных данных.
Рисунок 3 - Диаграмма выбора необходимой модели, Microsoft
Как только модель построена, важно оценить ее адекватность. Для оценки точности модели обычно используется процесс под названием k-fold cross validation. Он включает разделение набора данных на k одинаковых по размеру групп экземпляров, обучение по всем группам, кроме одной, и повторение процесса с остальными группами. Это позволяет моделировать обучение, основываясь на всех данных.
Для моделей классификации точность считается с использованием PCC (процентная правильная классификация), а также матрицы замешательства, которая разбивает ошибки на ложно-негативные, ложно-позитивные, истинно-негативные и истинно-позитивные значения. Для модели регрессии общие метрики включают коэффициент детерминации (который дает информацию о качестве аппроксимации функции), среднюю квадратичную ошибку (MSE), среднюю абсолютную ошибку и квадрат средних квадратичных ошибок (RMSE), которая является наиболее строгой оценкой качества полученной модели, и ее вариация RMSLE (среднеквадратическое отклонение логарифмов и предоставленных данных) использована в данной работе. RMSLE рассчитывается по формуле:
7. Визуализация данных
После того, как модель была построена, были опровергнуты или подтверждены гипотезы, необходимо представить результаты таким образом, чтобы заинтересованные стороны проекта смогли интерпретировать полученные результаты.
8. Понимание бизнес-цели
Жизненный цикл проекта, связанный с наукой о данных - итеративный процесс. Возвращаясь к первому этапу, нужно оценить, как успех вашей модели связан с вашим первоначальным пониманием бизнеса. Решает ли эти проблемы выявленные проблемы? Получает ли бизнес какие-либо ощутимые решения? Если исследователь столкнулся с каким-либо новым пониманием во время первой итерации жизненного цикла, это может найти отражение в последующих итерациях, чтобы сгенерировать еще более мощные идеи для бизнеса.
Подбор метода машинного обучения
В машинном обучении невозможно однозначно подобрать нужный метод.
Например, нельзя сказать, что нейронные сети всегда лучше деревьев решений или наоборот. Это зависит от многих факторов, таких как размер и структура набора данных.
В результате необходимо попробовать множество разных алгоритмов для решения проблемы, используя «тестовый набор» данных для оценки производительности и выбора наиболее оптимального, ориентируясь на точность результата, масштабируемости, времени выполнения и единиц затрачиваемых ресурсов.
Однако существует общий принцип, лежащий в основе всех алгоритмов машинного обучения с учителем для интеллектуального моделирования
Алгоритмы машинного обучения описываются как изучение целевой функции (f), которая наилучшим образом сопоставляет входные переменные (X) с выходной переменной (Y): Y = f (X)
Это общая задача обучения, в которой необходимо сделать прогнозы в будущем (Y) с помощью входных переменных (X). У исследователя нет понимания как выглядит функция (f) или ее форма. Если бы это было известно, можно было бы использовать ее напрямую без изучения данных, используя алгоритмы машинного обучения.
Наиболее распространенным типом машинного обучения является изучение функции Y = f (X) для прогнозирования Y с помощью новых X. Это называется предсказательным моделированием или предсказательной аналитикой, и цель исследователя - сделать максимально точные прогнозы.
1. Линейная регрессия
Линейная регрессия - это, пожалуй, один из самых известных и хорошо понятых алгоритмов в статистике и машинном обучении.
Прогностическое моделирование, в первую очередь, касается минимизации ошибки модели или принятия наиболее точных прогнозов за счет объяснимости.
Представление линейной регрессии представляет собой уравнение, которое описывает линию, которая наилучшим образом соответствует взаимосвязи между входными переменными (x) и выходными переменными (y), путем нахождения определенных весовых коэффициентов для входных переменных, называемых коэффициентами (B). Например: y = B0 + B1 * x
Пример графика линейной регрессии приведен на рисунке 4.
Рисунок 4 - линейная регрессия
Задача стоит в предсказании y, учитывая вход x, и цель алгоритма линейного регрессионного обучения состоит в том, чтобы найти значения для коэффициентов B0 и B1.
Различные методы могут быть использованы для изучения линейной регрессионной модели из данных, таких как стандартные методы линейной алгебры, метод наименьших квадратов и градиентный спуск.
Линейная регрессия существует уже более 200 лет и широко изучается. Некоторые правила при использовании этого метода состоят в том, чтобы удалить переменные, которые очень похожи (коррелированы) и удалить шум из данных, если это возможно. Это быстрый и простой алгоритм.
2 - Логистическая регрессия
Логистическая регрессия - это еще один метод, заимствованный машинным обучением из области статистики. Это метод двоичной классификации.
Логистическая регрессия похожа на линейную регрессию, поскольку цель состоит в том, чтобы найти значения для коэффициентов, которые взвешивают каждую входную переменную. В отличие от линейной регрессии, предсказание для выхода преобразуется с использованием нелинейной функции, называемой логистической функцией.
Логистическая функция выглядит как большой S и преобразует любое значение в диапазон от 0 до 1. Это полезно, потому что исследователь может применить правило к выходу логистической функции для привязки значений к 0 и 1 (например, IF менее 0,5, тогда выход 1) и предсказать значение класса.
Пример графика логистической регрессии приведен на рисунке 5.
Рисунок 5 - логистическая регрессия
Из-за того, как модель изучается, прогнозы, сделанные логистической регрессией, также могут использоваться как вероятность того, что данный экземпляр данных принадлежит классу 0 или классу 1. Это может быть полезно для проблем, когда вам нужно дать больше обоснований для прогнозирования.
Как и линейная регрессия, логистическая регрессия работает лучше, когда исследователь отбрасывает атрибуты, не связанные с выходной переменной, а также атрибуты, которые очень похожи (коррелированы) друг с другом. Это быстрая модель для обучения, которая эффективно решает проблемы двоичной классификации.
3 - Линейный дискриминантный анализ
Логистическая регрессия - это алгоритм классификации, традиционно ограничиваемый только классификационными задачами из двух классов. Если в задаче более двух классов, то алгоритм линейного дискриминантного анализа является предпочтительным методом линейной классификации.
Представление LDA довольно прямолинейно. Он состоит из статистических свойств ваших данных, рассчитанных для каждого класса. Для одной входной переменной это включает в себя:
1. Среднее значение для каждого класса.
2. Дисперсия, вычисляемая по всем классам.
Пример графика линейного дискриминантного анализа продемонстрирован на рисунке 6.
Рисунок 6 - Линейный дискриминантный анализ
Предсказания производятся путем вычисления дискриминирующего значения для каждого класса и прогнозирования для класса с наибольшим значением. Метод предполагает, что данные имеют распределение Гаусса, поэтому рекомендуется удалить выбросы из данных перед началом работы. Это простой и эффективный метод классификации для более двух конечных классов.
4 - Деревья классификации и регрессии
Деревья принятия решений являются важным типом алгоритма для машинного обучения в целях прогнозирования.
Представление модели дерева решений - это двоичное дерево из алгоритмов и структур данных, ничего. Каждый узел представляет собой единую входную переменную (x) и точку разделения для этой переменной (при условии, что переменная является числовой). Пример дерева решений продемонстрирован на рисунке 7.
Рисунок 7 - Дерево решений
Листовые узлы дерева содержат выходную переменную (y), которая используется для предсказания. Предсказания производятся путем прохода разделов дерева до прибытия к листовому узлу и вывода значения класса на этом листовом узле.
Деревья быстро учатся и очень быстры для формирования прогнозов. Они также часто точны для широкого круга проблем и не требуют специальной подготовки данных.
5 - Наивный Байес
Наивный Байес - простой, но мощный алгоритм прогнозирования.
Модель состоит из двух типов вероятностей, которые могут быть рассчитаны непосредственно из данных для обучения:
1) вероятность каждого класса
2) условная вероятность для каждого класса при каждом значении x
После вычисления вероятностная модель может быть использована для прогнозирования новых данных с использованием теоремы Байеса. Когда данные вещественны, обычно принято гауссовское распределение, так что процесс оценки вероятностей не затруднителен.
Пример работы алгоритма наивного Байеса продемонстрирован на рисунке 8.
Рисунок 8 - алгоритм наивного Байеса
Наивный Байес называют наивным, потому что он предполагает, что каждая входная переменная независима. Это сильное предположение и нереалистично для реальных данных, тем не менее, этот метод очень эффективен для большого числа сложных задач.