Разработка нейросетевой системы оценки стоимости недвижимости

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 02.09.2018
Размер файла 3,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Рис. 10. Кривые обучения на тренировочном, валидационном и тестовом наборе

Ниже представлены два критерия сходимости.

1. Считается, что алгоритм обратного распространения сходится, когда евклидова норма вектора градиента достигает достаточно малого градиентного порога.

2. Считается, что алгоритм обратного распространения сходится, когда абсолютная скорость изменения средней квадратичной ошибки за эпоху достаточно мала.

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

1. необходимо разделить данные на три набора,

2. использовать большое количество скрытых нейронов,

3. использовать небольшую скорость обучения и случайные значения весов,

4. в течение обучения вычислять ошибку валидации,

5. остановить тренировку, когда эта ошибка начнет возрастать.

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

Итак, алгоритм ранней остановки имеет несколько преимуществ: он быстрый и может быть применен, если количество весов превышает размер выборки. Однако на практике бывает сложно выбрать момент, когда ошибка валидации начнет расти, потому что во время тренировки она может увеличиваться и уменьшаться. Самый эффективный подход заключается в том, чтобы обучить до схождения, а затем вернуться и посмотреть, какая итерация имела самую низкую ошибку валидации. [13][20][21][22]

5.11 Переобучение и недообучение

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

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

Лучший способ избежать переобучения - использовать большое множество данных обучения. Если количество данных в 30 раз больше количества весов, то такой проблемы быть не должно. Также решить эту проблему можно с помощью алгоритма ранней остановки. [23]

5.12 Сравнение статистических методов и нейросетевого подхода

Во второй главе были рассмотрены преимущества сетей по сравнению с другими методами. Здесь это будет раскрыто более подробно.

Обе сферы имеют много совпадающих элементов. Статистика связана с анализом данных. В терминологии нейронной сети статистический вывод означает обучение для обобщения из зашумленных данных. Однако некоторые нейронные сети не связаны с анализом данных (например, те, которые предназначены для моделирования биологических систем) и, следовательно, имеют мало общего со статистикой. Также существуют сети Хопфилда, которые вообще не обучаются, и поэтому имеют мало связаны со статистикой. Но большинство сетей, которые могут научиться эффективно обобщать данные из зашумленных данных, аналогичны или идентичны статистическим методам. Например:

· Сети прямого распространения без скрытого слоя в основном обобщенные линейные модели.

· Сети прямого распространения с одним скрытым слоем тесно связаны с регрессией.

· Сети Кохонена очень схожи с k-средним кластерным анализом.

· Сети Хэбба связаны с анализом главных компонент.

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

Так почему нужно использовать нейронные сети, а не вышеперечисленные статистические методы? Существует много ответов на этот вопрос в зависимости от того, типа сети. Самый популярный тип нейронной сети, многослойный персептрон (МП), как правило, полезен в тех же ситуациях, что регрессия, например, когда количество входных параметров велико. Тем не менее, главное преимущество МП в том, что вычисление предсказанных значений проще и быстрее. Кроме того, МП лучше изучает патологические функции, чем другие методы с предположением гладкости. [24]

5.13 Сравнение многослойного персептрона и радиально-базисной сети

Многослойный персептрон и радиально - базисная функция (РБФ) являются двумя наиболее часто используемыми типами сетей с прямой связью и имеют много общего. Единственное принципиальное отличие заключается в том, как скрытые элементы объединяют значения, исходящие из предыдущих слоев в сети. МП использует внутреннюю обработку, тогда как РБФ применяет евклидово расстояние.

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

Выходной функцией активации в сетях РБФ обычно является identity. Она не требует больших вычислительных ресурсов, но обычно лучше использовать другие функции активации, как в МП.

Сети РБФ часто обучаются «гибридными» методами, в которых скрытые веса получают неконтролируемым обучением, а выходные - контролируемым.

Гибридное обучение часто не применяется к МП, потому что не известны эффективные методы для неконтролируемого обучения скрытых элементов (кроме случаев, когда имеется только один вход). Также гибридное обучение, как правило, требует больше скрытых нейронов, чем полностью контролируемое. Поэтому это может привести к проблеме, так их количество возрастает экспоненциально при возрастании количества входных элементов. При этом потребуется увеличить количество тренировочных примеров. Такая ситуация называется «проклятием размерности».

Архитектура МП хорошо игнорируют нерелевантные исходные данные. Также возможен выбор линейных подпространств с меньшей размерностью. А РБФ не может игнорировать нерелевантные входные данные. [25]

5.14 Настройка параметров сети

5.14.1 Скорость обучения

Если скорость обучения в стандартном алгоритме обратного распространения будет слишком низкой, то придется потратить на обучение много времени. А высокая скорость приведет к тому, что веса и целевая функция не сойдутся, поэтому вообще не будет никакого обучения. Если объективная функция квадратична, как и в линейных моделях, хорошие коэффициенты обучения могут быть рассчитаны из матрицы Гессе. Если она имеет множество локальных и глобальных экстремумов, оптимальная скорость обучения во время процесса резко меняется, так как гессиан также резко меняется. Обучение сети с использованием постоянной скорости обычно является утомительным процессом, требующим множество проб и ошибок. Также при пакетном обучении нет необходимости использовать постоянную скорость обучения. [26]

5.14.2 Количество скрытых слоев и нейронов

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

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

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

Однако существуют эмпирические правила для их выбора, например:

· число скрытых нейронов должно лежать в интервале между количеством входных и выходных нейронов;

· число скрытых нейронов приблизительно равно 2/3 от суммы входных и выходных;

· число скрытых нейронов меньше удвоенного количества входных. [26]

6. Работа с данными

6.1 Выбор данных

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

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

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

Таким образом, если тестовые входные данные близки к тренировочным, то при правильном обучении нейронная сеть сможет хорошо произвести обобщение. [27]

6.2 Предобработка данных

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

6.2.1 Кодирование категориальных переменных

Нейросетевые алгоритмы работают только с числами, так как их работа базируется на арифметических операциях умножения и сложения. Поэтому все нечисловые переменные следует закодировать - перевести в численную форму, прежде чем начать нейросетевую обработку. Общий принцип предобработки данных для обучения - максимизация энтропии входов и выходов. Существует два типа категориальных переменных: упорядоченные (ординальные) и неупорядоченные. Неупорядоченные переменные кодируют бинарными переменными, соответствующими категориям. Если, то они принимают следующий вид: (1,0,0), (0,1,0), (0,0,1). То есть очень важно не использовать одно число для такого типа переменной. Также можно закодировать двоичными значениями, при этом будет равенство расстояний между всеми категориями. Обычно такое кодирование применяется в задачах классификации, а не регрессии, которая рассматривается в данной работе.

Для кодирования упорядоченных входных переменных многие исследователи рекомендуют использовать «кодирование термометром», например, так: (1,1,1), (0,1,1), (0,0,1). Также бывает эффективно кодировать переменные такого типа, просто поставив в соответствие категориям числовые значения, например: 1,2,3. [28]

6.2.2 Стандартизация, нормализация и масштабирование

Масштабирование вектора означает добавление или вычитание константы, а затем умножение или деление на константу. Таким образом, можно изменить меру данных, например, конвертировать температуру из шкалы Цельсия в шкалу Фаренгейта. Если один вход имеет диапазон от 0 до 1, тогда как другой вход имеет диапазон от 0 до 1000000, тогда вклад второго входа будет намного выше первого. Нейронная сеть будет тратить больше усилий для второго входа и исключит первый, поэтому масштабирование имеет смысл. Также если значения функции активации лежат отрезке [0,1], то очевидно, что целевые значения должны лежать в этом интервале. Однако в общем случае лучше выбрать функцию активации, которая подходит к распределению выходных значений. При этом на практике лучше использовать масштабирование в отрезок [-1,1]. Поэтому важно масштабировать входные данные, чтобы их изменчивость отражала их значимость. Нормализация вектора в основном означает деление на его норму. Однако в литературе по нейронным сетям определение нормализация часто совпадает с масштабированием.

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

Линейное преобразование данных в отрезок [0,1] можно выполнить с помощью этой формулы:

Однако такой способ оптимален, если значения переменных плотно заполняют интервал. Если в данные зашумлены и имеются выбросы, лучше использовать нелинейную нормировку:

Очевидно, что для правильной интерпретации значений нужно произвести обратное шкалирование. Если входные значения используются только для получения результатов, нет необходимости применять обратное преобразование. Однако это является необходимостью при проведении анализа полученных результатов на основе входных данных. [28]

6.2.3 Удаление выбросов и зашумленных данных

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

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

6.2.4 Пропущенные значения

При сборе данных многие примеры могут содержать пропущенные значения. Для решения проблемы применяются разные методы.

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

2) Игнорирование пропусков. При построении модели используется вся доступная информация. С другой стороны, это усложняет алгоритмы.

3) Заполнение пропусков арифметическим средним или модой в зависимости от шкалы параметров. Преимуществом этого способа является простота его реализации. Но при большом количестве пропусков возможно искажение данных.

4) Замена с помощью метода ближайших соседей. Предполагается, что объекты с заполненными данными близки к данным с пропущенными значениями. Для каждого данного, требующего замены, определяется несколько ближайших точек на основании евклидового расстояния, и рассчитывается их взвешенное среднее. Однако точность такого подхода зависит от количества данных без пропусков. [31]

6.2.5 Определение важных входных параметров

Для определения полезных входных переменных до обучения нейронной сети можно вычислить коэффициент парной корреляции. Корреляция - статистическая взаимосвязь двух или более случайных величин. Метод вычисления этого коэффициента зависит от шкалы, к которой относятся переменные (табл. 1).

Таблица 1. Коэффициенты корреляции в зависимости от шкал

Типы шкал

Мера связи

Переменная X

Переменная Y

Интервальная

или отношений

Интервальная

или отношений

Коэффициент Пирсона

Продолжение таблицы 1

Ранговая, интервальная

или отношений

Ранговая, интервальная

или отношений

Коэффициент Спирмена

Ранговая

Ранговая

Коэффициент Кендалла

Дихотомическая

Дихотомическая

Четырехполевая корреляция

Дихотомическая

Ранговая

Рангово-биссериальный коэффициент

Дихотомическая

Интервальная

или отношений

Биссериальный коэффициент

Интервальная

Ранговая

Не разработан

Коэффициент корреляции Пирсона может быть вычислен по формуле:

где - общее число величин, - средние значения.

Ранговый коэффициент корреляции Спирмена подсчитывается по формуле:

Формула для вычисления точечно - бисериального коэффициента корреляции:

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

Таблица 2. Интерпретация коэффициентов корреляции

Значение коэффициента корреляции r

Интерпретация

0 < r 0,2

Очень слабая корреляция

0 < r 0,5

Слабая корреляция

Продолжение таблицы 2

1

2

0 < r 0,7

Средняя корреляция

0 < r 0,9

Сильная корреляция

0 < r 1

Очень сильная корреляция

7. Практическое исполнение нейросетевой системы оценки стоимости недвижимости

7.1 Сбор и обработка данных

Для сбора данных был использован крупнейший российский сайт по продаже недвижимости cian.ru, с которого было загружено в программное обеспечение Microsoft Excel 133985 объявлений о продаже квартир в Москве.

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

Следующий этап заключался в обработке выбросов. Вручную было удалено около 1400 строк с опечатками, «зашумленными» данными, завышенными, заниженными и редкими значениями. Для автоматического удаления выбросов использовался критерий, основанный на интерквартильном размахе (форм. 19). В результате было отсеяно еще 6041 объявление. Были выбраны цены от 2,1 млн. до 100 млн. рублей, что покрывает 95% предложений на рынке жилой недвижимости в Москве, согласно cian.ru.

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

Влияние входных параметров на цену было исследовано с помощью парной корреляции. В зависимости от типа данных использовалась корреляция Пирсона, Спирмена и бисериальная (форм. 20 - 22), (табл. 1).

Самым важным параметром оказалась общая площадь - 0,821, затем жилая площадь - 0,794, район - 0,705, количество комнат - 0,564, высота потолков - 0,47 и площадь кухни - 0,459. Самые низкие коэффициенты были зафиксированы у таких атрибутов, как: «апартаменты» - 0,054, «наличие телефона» - 0,014, «наличие реки» - 0,002, «консьерж» - 0,051, «наличие водоема» - 0,053. Результаты исследования представлены в Приложении 1 (табл. 3). В итоге исключены из дальнейшего исследования атрибуты, у которых коэффициент корреляции был очень низкий (табл. 2).

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

В результате осталось около 30135 записей и 18 атрибутов (район, расстояние до метро, общая площадь, жилая площадь, площадь кухни, высота потолков, количество комнат, парковка, наличие охраны, тип продажи, тип дома, пентхаус, количество балконов и лоджий, ремонт, количество санузлов, вид из окна, этаж и цена).

Последняя часть предобработки данных заключалась в кодировании ординальных параметров и нормировке входных числовых атрибутов в отрезок [-1,1], а целевых в [0,1] (форм.17-18). Район кодировался исходя из средней цены за квадратный метр. Числовой параметр «расстояние до метро» был переведен в ординальный из-за большого количества шума в них, так как люди, размещающие объявления, обычно указывают приблизительное расстояние. Бинарные переменные принимают значения либо -1, либо 1. Остальные ординальные атрибуты кодировались исходя из средней цены для каждого значения класса. Возможные значения числовых и нумерацию ординальных параметров можно посмотреть в Приложении 2 (табл. 4). Среднее значение и стандартное отклонение количественных атрибутов представлено в Приложении 3 (табл. 5), из которого можно заметить, что средние значения очень сильно отличаются от максимальных.

7.2 Программная реализация

После процесса предобработки были сформированы три набора данных в соотношении 70/15/15 от общего числа. То есть, количество тренировочных образцов - 21092, проверочных - 4526, тестовых - 4517.

Затем была определена конфигурация сети: многослойный персептрон с 17 входными элементами, соответствующими количеству атрибутов и одним скрытым слоем, целевая переменная только одна - цена.

Контролируемое обучение происходило с помощью обратного распространения ошибки с моментом.

Функция ошибки - относительная квадратическая ошибка, которая принимает значения от 0 до 1.

Для скрытого слоя были выбраны три функции активации: hyperbolic tangent, sigmoid и softsign. Для выходного слоя также использовались три функции: hyperbolic tangent, rectified linear unit, softplus. Эти функции были описаны в главе 5.3. Количество скрытых нейронов выбиралось, исходя из эмпирических правил, описанных в главе 5.14.2. Размер пакетов - количество примеров, одновременно обрабатываемых сетью, представлялось степенями двойки от 16 до 2048. Также были определены параметры, отвечающие за остановку обучения: максимальное количество итераций (эпох); минимальная ошибка; количество эпох, после которых при возрастании ошибки обучение останавливалось. Остальные параметры указаны в табл. 3.

Таблица 3. Интервалы численных параметров сети

Тип гиперпараметров сети

Интервал

Количество скрытых нейронов

[2;20]

Скорость обучения

[0,001;1]

Импульс (момент)

[0;1]

Минимальное и максимальное начальное значение весов

[-1;1]

Начальное смещение

[-1;1]

Выходные параметры нейронной сети - номер эпохи, на которой остановилось обучение; три значения ошибки и коэффициенты детерминации (r-squere) на тренировочном, тестовом и валидационном наборе данных; веса сети для минимальной валидационной ошибки. Также сохранялись массивы предсказанных значений для всех примеров из наборов данных.

Все описанные выше входные и выходные значения нейронной сети сохранялись в файл Excel.

В качестве языка программирования был выбран Python, поскольку он часто используется для анализа данных и имеет приятный синтаксис. Для графической части использовалась библиотека Tkinter и ttk. Весь проект состоит из 6 скриптов, написанных в программном обеспечении PyCharm.

В gui.py реализована вся графическая часть: окно для ввода и вывода параметров нейронной сети, окно для ввода и вывода параметров квартиры (рис.11-13). Пользователь может обучить сеть со своими параметрами или использовать наилучшую подобранную сеть.

В cost_activation_functions.py представлены все виды функций активации, вычисление коэффициента детерминации и относительной квадратической ошибки.

В файле main.py реализована функция разделения данных на входные и целевые и функция для работы с файлом excel.

Рис. 11. Окно для ввода параметров нейронной сети

Рис. 12. Окно вывода результатов нейронной сети

Рис. 13. Окно ввода данных квартир и вывода результатов

В скрипте neuralnet.py находятся функции генерации и обновления весов, а также алгоритм обратного распространения ошибки.

В tools.py представлены вспомогательные функции добавления смещения и проверка нейронной сети на тестовом множестве.

Наконец, в predictions.py представлена функция предсказания цены на основе параметров квартиры, которые вводит пользователь.

Полный листинг проекта опубликован в Приложении 4.

7.3 Анализ результатов

Подбор оптимальных параметров сети проводился вручную. Вначале изменялось количество скрытых нейронов от 2 до 20, все остальные атрибуты фиксировались. Выбиралось число нейронов, для которых ошибка на тестовом множестве минимальна. Затем этот параметр фиксировался, а следующий (скорость обучения) изменялся, и так далее. Таким образом, были получены параметры нейронной сети, для которых тестовая ошибка является минимальной среди всех остальных сетей. Всего было проанализировано 60 сетей.

Итак, оптимальная конфигурация нейронной сети представлена в табл. 4.

Таблица 4. Оптимальные значения параметров нейронной сети

Тип параметра

Значение

Количество скрытых нейронов

17

Минимальный начальный вес

- 0,2

Максимальный начальный вес

0,2

Начальное смещение

0,05

Момент

0,9

Скорость обучения

0,05

Размер пакетов

256

Максимальное количество итераций

700

Скрытая функция активации

softsign

Выходная функция активации

Hyperbolic tangens

Итоговая тренировочная ошибка

0,0881

Итоговая проверочная ошибка

0,0900

Итоговая тестовая ошибка

0,0984

R-квадрат на тренировочном наборе

0,9115

R-квадрат на проверочном наборе

0,9092

R-квадрат на тестовом наборе

0,9016

Для оптимальной конфигурации были построены четыре диаграммы рассеяния (рис. 14-17). Для больших значений точность оценки ниже. Это объясняется тем, что, во-первых, их доля в наборе данных была значительно ниже. А во-вторых, чем больше цена, тем больше вероятность ее завышения. Также сильно может влиять историческая ценность дома и эксклюзивная мебель.

Рис. 14. Диаграмма рассеяния

Рис. 15. Диаграмма рассеяния

Рис. 16. Диаграмма рассеяния

Рис. 17. Диаграмма рассеяния

Для оптимального набора параметров нейронной сети были построены графики тренировочной и проверочной ошибки от количества эпох. Можно заметить, что они начинают резко убывать и достигают значения ошибки 0,15 всего лишь за 50 эпох. После этого ошибка незначительно колеблется и очень медленно снижается до 0,1. (рис.18)

Рис. 18. Сравнение двух типов ошибок для оптимального набора параметров

На рис. 19 представлено оптимальное число скрытых нейронов - 17, что соответствуют эмпирическим правилам, представленных в главе 5.14.2.

Рис. 19 Зависимость количества скрытых нейронов от коэффициента детерминации

Итак, полученный коэффициент детерминации на тестовом наборе - 0,9016 сравним с результатом анализа, проведенного в программном обеспечении STATISTICA Neural Network, который равен приблизительно 0,95. Таким образом, полученное программное обеспечение может эффективно использоваться для оценки квартир в Москве в пределах до 100 млн. рублей, что покрывает 95% рынка недвижимости.

Заключение

На основе крупнейшего сайта по недвижимости в России была собрана база данных квартир в Москве. Затем была осуществлена предобработка «сырых» данных, удалены выбросы и шумы на основе межквартильного размаха. Для определения значимости переменных была посчитана парная корреляция между входными параметрами и ценой. Было произведено кодирование ординальных параметров и нормирование численных для дальнейшего использования в модели нейронной сети.

В программном обеспечении PyCharm на языке программирования Python была разработана нейросетевая система оценки стоимости недвижимости города Москвы.

Экспериментально были подобраны оптимальные параметры нейронной сети, для которой в дальнейшем производилось предсказание цен на недвижимость.

Был вычислен коэффициент детерминации для оптимальной сети, показывающий эффективность выбранной модели. Его значение - 0,9016, что сравнимо с результатом в программном обеспечении STATISTICA Neural Network.

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

Полученное программное обеспечение может эффективно использоваться для оценки квартир в Москве в пределах 100 млн. рублей, что покрывает 95% рынка недвижимости.

Список использованных источников

1. Keith D. Foote. A Brief History of Deep Learning.

2. Jiaconda. A Concise History of Neural Networks.

3. Stanford university. History of Neural Networks.

4. Е.А Арефьева, Д.С. Костяев. Использование нейронных сетей для оценки рыночной стоимости недвижимости. // Экономика и экономические науки. 2017. С. 1 - 9.

5. Герасимов С.А. Моделирование нейронных сетей для оценки стоимости аренды объекта офисной недвижимости с наименьшей ошибкой // Кибернетика. 2011. С. 1 - 3.

6. Ясницкий В.Л. Нейросетевое моделирование в задаче массовой оценки жилой недвижимости города Перми. // Экономические науки. 2015. С. 650 - 653.

7. Асаул А.Н. «Экономика недвижимости», М.: Экономикс, 2000. - 92 с.

8. Афонасова М.А. «Экономика недвижимости», Томск, Томский межвузовский центр дистанционного образования, 1999. - 45 с.

9. Гриненко СВ. "Экономика недвижимости", Таганрог, изд-во ТРТУ 2004. - 107 с.

10. Иванова Е.Н. "Оценка стоимости недвижимости", КноРус, 2007. - 344 с.

11. Татарова А.В. «Оценка недвижимости и управление собственностью», Таганрог: Изд-во ТРТУ, 2003.

12. Peter Tino, Lubica Benuskova, Alessandro Sperduti. Artificial Neural Network Model. // Computational Intelligence. 2015. C. 1 - 18.

13. Omer Cengiz Celebi. Neural Networks and Pattern Recognition Using (дата обращения 15.05.2018).

14.Barnabas Poczos. Introduction to Machine Learning. (дата обращения 15.05.2018).

15. Softsign as a Neural Network Activation Function. (дата обращения 15.05.2018).

16. Aditia Sharma. Understanding Activation Function in Deep Learning. (дата обращения 15.05.2018).

17. Sagar Sharma. Activation Functions: Neural Network. (дата обращения 15.05.2018).

18.Neural network models. (дата обращения 15.05.2018).

19. A Beginner's Guide to Multilayer Perceptrons. (дата обращения 15.05.2018).

20. What is overfitting. URL: (дата обращения 15.05.2018).

21. Bishop, C.M, Neural Networks for Pattern Recognition, Oxford: Oxford University Press. 1995.

22. Ripley, B.D. Pattern Recognition and Neural Networks, Cambridge: Cambridge University Press. 1996.

23. Overfitting. (дата обращения 15.05.2018).

24. URL: (дата обращения 15.05.2018).

25. Bertsekas, D. P. andTsitsiklis, J. N. (1996), Neuro-DynamicProgramming, Belmont, MA: AthenaScientific, ISBN 1-886529-10-8.

26. Hidden units. URL: (дата обращения 15.05.2018).

27. Generalization. URL: (дата обращения 15.05.2018).

28. A noise. URL: (дата обращения 15.05.2018).

29. Выбросы. URL: (дата обращения 15.05.2018).

30. Moody, J.E. "The Effective Number of Parameters: An Analysis of Generalization and Regularization in Nonlinear Learning Systems", in Moody, J.E., Hanson, S.J., and Lippmann, R.P., Advances in Neural Information Processing Systems 4, 847-854. 1992.

31. Олег Глушко. Обработка пропусков в данных.

32. Лупандин В.И. Математические методы в психологии.

Приложение 1

Таблица 5. Коэффициенты корреляции

Входной параметр

Тип корреляции

Значение коэффициента корреляции

Район

Спирмена

0,705

Расстояние до метро

Пирсона

-0,32

Общая площадь

Пирсона

0,821

Жилая площадь

Пирсона

0,794

Площадь кухни

Пирсона

0,459

Высота потолков

Пирсона

0,47

Кол-во комнат

Пирсона

0,564

Парковка

Бисериальная

0,532

Наличие охраны

Бисериальная

0,392

Тип продажи

Бисериальная

-0,346

Тип дома

Спирмена

0,38

Пентхаус

Бисериальная

0,377

Кол-во балконов и лоджий

Пирсона

0,26

Ремонт

Спирмена

0,32

Кол-во санузлов

Пирсона

0,437

Вид из окна

Спирмена

0,276

Этаж

Спирмена

0,201

Наличие телефона

Бисериальная

0,014

Наличие реки

Бисериальная

0,002

Наличие водоема

Бисериальная

0,053

Апартаменты

Бисериальная

0,054

Консьерж

Бисериальная

0,051

Приложение 2

Таблица 6. Значения входных ординальных и количественных параметров

Входной параметр

Значения параметров

Район

Все районы Москвы, включая Новую Москву (1-140)

Расстояние до метро, м

До 300 (1), от 300 до 600 (2), от 600 до 900 (3), от 900 до 1200 (4), от 1200 до 1500 (5),от 1500 до 2000 (6), от 2000 до 4000 (7), от 4000 до 7000 (8), от 7000 до 10000 (9), от 10000 (10).

Общая площадь,

[20;500]

Жилая площадь, м^2

[8;300]

Площадь кухни, м^2

[3;50]

Высота потолков, м

[2,48;5]

Кол-во комнат

[1;6]

Парковка

Наземная (-1); подземная (1)

Наличие охраны

Есть (1); нет (-1)

Тип продажи

Новостройка(-1); вторичка (1)

Тип дома

Блочный (1); панельный(2); монолитный(3); кирпичный (4); монолитно-кирпичный (5)

Пентхаус

Да(1); нет(0)

Кол-во балконов и лоджий

[1;5]

Ремонт

Без ремонта(1); косметический(2); евроремонт(3); дизайнерский(4)

Кол-во санузлов

[1;5]

Вид из окна

На улицу(1); во двор(2); на улицу и во двор(3)

Этаж

Первый(1); последний(2); ни первый, ни последний(3)

нейрон сеть недвижимость математический

Приложение 3

Таблица 7. Среднее значение и стандартное отклонение для количественных параметров

Количественные параметры

Среднее значение

Стандартное отклонение

Общая площадь

69,90762

36,88367

Жилая площадь

39,24582

24,23444

Площадь кухни

12,27071

5,7062

Высота потолков

2,852433

0,252006

Кол-во комнат

2,239251

0,991864

Кол-во балконов и лоджий

1,312824

0,571967

Кол-во санузлов

1,205097

0,482896

Цена

14304253

13628541

Приложение 4

Листинг программы

Размещено на Allbest.ru

...

Подобные документы

  • Математическая модель искусственной нейронной сети. Структура многослойного персептрона. Обучение без учителя, методом соревнования. Правило коррекции по ошибке. Метод Хэбба. Генетический алгоритм. Применение нейронных сетей для синтеза регуляторов.

    дипломная работа [1,5 M], добавлен 17.09.2013

  • Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.

    дипломная работа [814,6 K], добавлен 29.09.2014

  • Понятие и свойства искусственных нейронных сетей, их функциональное сходство с человеческим мозгом, принцип их работы, области использования. Экспертная система и надежность нейронных сетей. Модель искусственного нейрона с активационной функцией.

    реферат [158,2 K], добавлен 16.03.2011

  • Диагностический анализ изучения алгоритмов обучения нейронных сетей "с учителем". Сбор входных и выходных переменных для наблюдений и понятие пре/пост процессирования. Подготовка и обобщение многослойного персептрона, модель обратного распространения.

    курсовая работа [249,3 K], добавлен 22.06.2011

  • Описание технологического процесса напуска бумаги. Конструкция бумагоделательной машины. Обоснование применения нейронных сетей в управлении формованием бумажного полотна. Математическая модель нейрона. Моделирование двух структур нейронных сетей.

    курсовая работа [1,5 M], добавлен 15.10.2012

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

    презентация [98,6 K], добавлен 16.10.2013

  • Понятие искусственного нейрона и искусственных нейронных сетей. Сущность процесса обучения нейронной сети и аппроксимации функции. Смысл алгоритма обучения с учителем. Построение и обучение нейронной сети для аппроксимации функции в среде Matlab.

    лабораторная работа [1,1 M], добавлен 05.10.2010

  • Принципы организации и функционирования биологических нейронных сетей. Система соединенных и взаимодействующих между собой простых процессоров. Нейронные сети Маккалока и Питтса. Оценка качества кластеризации. Обучение многослойного персептрона.

    курсовая работа [1,1 M], добавлен 06.12.2010

  • Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.

    дипломная работа [1,8 M], добавлен 08.02.2017

  • История возникновения, примеры использования и основные виды искусственных нейронных сетей. Анализ задач, решаемых при помощи Персептрона Розенблатта, создание схемы имитационной модели в среде Delphi. Исходные коды компьютерной программы Perseptron.

    дипломная работа [933,1 K], добавлен 18.12.2011

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

    презентация [1,4 M], добавлен 14.10.2013

  • Определение и виды модели, ее отличие от понятия моделирования. Формула искусственного нейрона. Структура передачи сигнала между нейронами. Способность искусственных нейронных сетей к обучению и переобучению. Особенности их применения в финансовой сфере.

    реферат [136,2 K], добавлен 25.04.2016

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

    презентация [582,1 K], добавлен 25.06.2013

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

    курсовая работа [515,4 K], добавлен 19.06.2010

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

    курсовая работа [744,0 K], добавлен 05.02.2016

  • Анализ предметной области и факторов, влияющих на принятие решения. Обоснование выбора входных параметров. Определение возможных состояний системы и генерируемых откликов. Разработка базы знаний. Математическая модель определения стоимости компьютера.

    курсовая работа [41,8 K], добавлен 10.01.2011

  • Разработка системы оценки кредитоспособности заемщика с использованием персептрона. Сущность скоринговых систем, нейронных сетей. Скоринговые системы как средство минимизации кредитного риска. Этапы проектирования сети. Определение значимости параметров.

    презентация [882,9 K], добавлен 19.08.2013

  • Разработка систем автоматического управления. Свойства нейронных сетей. Сравнительные оценки традиционных ЭВМ и нейрокомпьютеров. Формальная модель искусственного нейрона. Обучение нейроконтроллера при помощи алгоритма обратного распространения ошибки.

    реферат [1,4 M], добавлен 05.12.2010

  • Изучение сути искусственных нейронных сетей. Векторные пространства. Матрицы и линейные преобразования векторов. Биологический нейрон и его кибернетическая модель. Теорема об обучении персептрона. Линейная разделимость и персептронная представляемость.

    курсовая работа [239,7 K], добавлен 06.06.2012

  • Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.

    дипломная работа [2,6 M], добавлен 23.09.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.