Диссертация: Анализ и прогнозирование цен на рынке недвижимости Москвы

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Однако большее внимание на алгебре логики, основанном на подходе познания, вызвало разрыв между искусственным интеллектом и машинным обучением. Вероятностные системы страдали от теоретических и практических проблем сбора и представления данных. К 1980 году экспертные системы стали доминировать над искусственным интеллектом, а теоретическая статистика перестала справляться с поставленными задачами. Работа над символическим (основанным на знаниях) обучением продолжалась в рамках работы над искусственным интеллектом, что приводило к индуктивному логическому программированию, но более статистическая линия исследований в настоящее время выходит за рамки искусственного интеллекта, в распознавании образов и поиске информации. Исследования нейронных сетей были брошены в начале 1980-х. В середине 1980-х годов с переосмыслением обратного распространения, работы над нейронными сетями восстановились.

Машинное обучение, реорганизованное как отдельная отрасль начало процветать в 1990-х годах. Отрасль изменила свою цель - создание искусственного интеллекта для решения разрешимых проблем практического характера. Сместился фокус от символических подходов, которые были унаследованы от искусственного интеллекта, и методов, и моделей, заимствованных из статистики и теории вероятностей. Это также способствовало увеличению доступности оцифрованной информации и возможности ее распространения через Интернет.

Машинное обучение и интеллектуальный анализ данных часто используют одни и те же методы, и значительно пересекаются, но в то время как машинное обучение фокусируется на предсказании, основанное на известных свойствах и событиях, полученных из данных обучения, интеллектуальный анализ данных же фокусируется на обнаружении ранее неизвестных свойств в данных. Для интеллектуального анализа данных используются многие методы машинного обучения, но с разными целями; с другой стороны, машинное обучение также использует методы интеллектуального анализа данных как «обучение без учителя» или как шаг предварительной обработки для повышения точности обучения. Большая часть путаницы между этими двумя исследовательскими сообществами исходит из основных предположений, с которыми они работают: в компьютерном обучении эффективность обычно оценивается в отношении способности воспроизводить известные знания, а при открытии знаний и интеллектуальном анализе данных ключевой задачей является обнаружение ранее неизвестных знаний. Оцененный в отношении известных знаний, метод без учителя будет легко превосходить другие контролируемые методы, в то время как в типичной задаче интеллектуального анализа данных контролируемые методы не могут использоваться из-за недоступности данных для обучения.

У машинного обучения также есть тесная связь с оптимизацией: многие проблемы обучения сформулированы как минимизация функции потерь на обучающем наборе данных. Функции потерь выражают несоответствие между предсказаниями обучаемой модели и фактическими данными. Разница между этими двумя подходами возникает из цели обобщения: в то время как алгоритмы оптимизации могут минимизировать потери на обучающем наборе, машинное обучение связано с минимизацией потерь на данных при масштабируемости выборки.

Том М. Митчелл представил широко цитированное, более формальное определение алгоритмов, изучаемых в области машинного обучения: «Говорят, что компьютерная программа учится на опыте E по отношению к некоторому классу задач T и показателю производительности P, если его производительность при выполнении задач в T, как измерено P, улучшается с опытом E». Это определение задач, в которых рассматривается машинное обучение, предлагает принципиально оперативное определение, а не определение поля в когнитивных терминах. Это следует за предложением Алана Тьюринга в его статье «Вычислительная техника и разведка», в которой вопрос «Могут ли машины думать?» заменяется вопросом: «Могут ли машины делать то, что мы (как мыслящие сущности) можем делать?». В предложении Тьюринга раскрываются различные характеристики, которыми может обладать мыслящая машина, и различные последствия для ее построения.

Задачи машинного обучения обычно подразделяются на две широкие категории, в зависимости от наличия обучающего «сигнала» или «обратной связи», доступного для системы обучения:

1) Обучение с учителем: компьютер представлен примерными входными данными и их желаемыми результатами, заданными «учителем», и цель состоит в том, чтобы изучить общее правило, которое отображает входные данные для выходов. В качестве особых случаев входной сигнал может быть только частично доступен или ограничен специальной обратной связью.

2) Обучение без учителя: целевые функции не даются алгоритму обучения, чтобы он сам нашел необходимую структуру для построения модели. Обучение без учителя может быть использовано для обнаружения скрытых шаблонов в данных.

Машинное обучение и статистика тесно связаны между собой. Идеи машинного обучения, от методологических принципов до теоретических инструментов, имели долгую предысторию в статистике.

Выделяются две парадигмы статистического моделирования: модель данных и алгоритмическую модель, где «алгоритмическая модель» использует алгоритмы машинного обучения, такие как Random Forest и градиентный бустинг.

Некоторые математики применяют методы машинного обучения, что приводит к объединению областей статистики и машинного обучения, которая называется статистическим обучением.

Основная цель машинного обучения - обобщить накопленный опыт. Обобщением в этом контексте является способность учебного компьютера точно выполнять поставленные задачи после того, как обучились на новых наборах данных. Примеры обучения взяты из некоторого общеизвестного распределения, и учащийся должен построить общую модель об этом пространстве, которая позволяет ему производить достаточно точные предсказания в новых случаях.

Вычислительный анализ алгоритмов машинного обучения и их эффективность - это отрасль теоретической информатики, известная как теория вычислительного обучения. Поскольку наборы обучения являются конечными, а будущее неопределенным, теория обучения обычно не дает гарантий выполнения алгоритмов. Вместо этого вероятные оценки производительности довольно распространены. Декомпозиция смещения-дисперсии является одним из способов количественной оценки ошибки обобщения.

Для достижения максимальной производительности в контексте обобщения сложность гипотезы должна соответствовать сложности функции, лежащей в основе данных. Если гипотеза менее сложна, чем функция, то модель поддаётся данным. Если сложность модели увеличивается, тогда ошибка обучения уменьшается. Но если гипотеза слишком сложна, то модель подвержена переобучению, а обобщение будет хуже.

В дополнение к ограничениям производительности теоретики вычислительного обучения изучают временную сложность и осуществимость обучения. В теории вычислительного обучения вычисление считается выполнимым, если это можно сделать в полиномиальное время. Есть два вида результатов временной сложности:

1) Положительные результаты показывают, что определенный класс функций может быть изучен за полиномиальное время.

2) Отрицательные результаты показывают, что некоторые классы не могут быть изучены за полиномиальное время.

Расстояние между гиперплоскостью и ближайшими точками данных называется границей. Лучшая или оптимальная гиперплоскость - та, которая может разделять два класса, - это линия с наибольшим запасом. Только эти точки имеют значение при определении гиперплоскости и в конструкции классификатора. Эти точки называются опорными векторами. Они поддерживают или определяют гиперплоскость.

Главной целью данной работы является определение наиболее оптимального и точного алгоритма машинного обучения для прикладной задачи прогнозирования цены на недвижимость в Москве.

Глава 2. Характеристика предлагаемого подхода к решению задач

2.1 Жизненный цикл проекта науки о данных

Для того, чтобы разработать модель машинного обучения для решения задачи данной работы, необходимо понять каким образом строится жизненный цикл работы с данными. Ознакомиться с визуализацией можно на рисунке 1.

Рисунок 1 - Жизненный цикл проекта науки о данных

1. Понимание бизнес-цели

Учеными о данных являются люди, которые задают вопросы и пытаются найти закономерности. Это люди, которые хотят обеспечить, чтобы каждое принятое в компании решение подтверждалось конкретными данными и гарантировало (с большой вероятностью) достижение результатов. Прежде чем начать проект разработки модели машинного обучения, необходимо выяснить цель исследования.

Согласно блогу Microsoft Azure, наука о данных используется для ответа на пять типов вопросов:

1) Сколько? (Регрессия)

2) Какая категория? (Классификация)

3) Какая группа? (Кластеризация)

4) Это странно? (обнаружение аномалий)

5) Какой вариант следует предпринять? (рекомендация)

На этом этапе необходимо определить основные цели проекта, указав переменные, которые необходимо предсказать. Понимание силы данных и того, как нужно их использовать ее для получения результатов для компании, задавая правильные вопросы, - это скорее искусство, чем наука, и для этого необходимо достаточно опыта.

В данной работе целью работы является исследование зависимости стоимости квартир города Москвы от характеристик этих квартир и внешних показателей.

2. Сбор данных

Теперь, когда определена цель проекта, необходимо начать сбор данных. Сбор данных - это создание процесса сбора данных из разных источников. На этом этапе некоторые из вопросов, которые стоит рассмотреть, - “Какие данные нужны для конкретного проекта? Где они находятся? Каким способом их можно получить? Каков наиболее эффективный способ хранения и доступа к этим данным?”

Если все данные, необходимые для проекта, упакованы и переданы заказчику - это большая удача. Чаще всего поиск правильных данных требует большого количества времени и усилий. Если данные хранятся в базах данных, работа относительно проста - необходимо запросить соответствующие данные с помощью SQL-запросов. Однако, если данные фактически не существуют в наборе данных, необходимо воспользоваться инструментами для парсинга и майнинга данных.

В случае данной работы, была создана база данных PostgreSQL, данные были получены из официального источника компании «Домклик». Был настроен автоматический ETL-процесс сбор данных из этого источника.

ETL - Extract, Transform и Load (извлечение, преобразование и загрузка). С помощью трех концептуальных шагов ETL-инструмент может позволить создать конвейер проектируемых и структурированных данных. Парадигма ETL служит в качестве плана того, как необработанные данные преобразуются в готовые к анализу данные.

На рисунке 2 можно ознакомиться с процессом обработки данных более подробно.

Рисунок 2 - стандартный ETL-процесс

Извлечение: это шаг, на котором сенсоры ожидают выхода источников актуальной версии источника данных (например, исходный источник может быть машинным или пользовательским журналом, копией реляционной базы данных, внешним набором данных и т.д.). По имеющимся данным инструмент переносит данные из их исходных мест в дальнейшие преобразования.

Трансформация: это основа любой работы ETL, где инженер данных применяет бизнес-логику и выполняет такие действия, как фильтрация, группировка и агрегация, чтобы переводить необработанные данные в готовые к анализу данные. Этот шаг требует большого понимания бизнеса и знаний предметной области.

Загрузка. Наконец, обработанные данные загружаются и переносятся в их конечный пункт назначения. Часто этот набор данных может либо использоваться непосредственно конечными пользователями, либо его можно рассматривать как еще одну зависимую связь по потоку с другими ETL-процессами, образуя так называемый конвейер данных.

3. Очистка данных

Теперь, когда получены необходимые данные, следует этап очистки и подготовки данных. Согласно опросам ученых-исследователей, этот процесс (также называемый «Data Engineering») часто занимает от 50 до 80 процентов времени.

Причина, по которой это такой длительный процесс, - это существование множества возможных сценариев, которые могут потребовать очистки. Например, данные могут также иметь несоответствия в одном столбце, что означает, что некоторые строки могут быть помечены как 0 или 1, а другие могут быть помечены как «нет» или «да». Типы данных также могут быть непоследовательными - некоторые из 0 могут быть целыми, тогда как некоторые из них могут быть строками. Если мы имеем дело с категориальным типом данных с несколькими категориями, некоторые из категорий могут содержать ошибочные значения.

Одним из шагов, которые часто забываются на этом этапе, в результате чего возникает много проблем, является наличие недостающих данных. Отсутствующие данные могут вызывать множество ошибок при создании и обучении модели. Один из вариантов - либо игнорировать экземпляры, у которых есть любые отсутствующие значения. Другим распространенным подходом является заполнение отсутствующих значений средними значениями по полученной выборке. Это не всегда рекомендуется, поскольку это может уменьшить изменчивость данных, но в некоторых случаях это имеет смысл.