IIS_2023_1/alexandrov_dmitrii_lab_6/readme.md

150 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### Задание
Использовать нейронную сеть по варианту для выбранных данных по варианту, самостоятельно сформулировав задачу.
Интерпретировать результаты и оценить, насколько хорошо она подходит для
решения сформулированной вами задачи.
Вариант 1: MLPClassifier
Была сформулирована следующая задача: необходимо классифицировать жильё по стоимости на основе избранных признаков при помощи нейронной сети.
### Запуск программы
Файл lab6.py содержит и запускает программу, аргументов и настройки ~~вроде~~ не требует.
### Описание программы
Программа считывает цены на жильё как выходные данные и следующие данные как входные: год размещения объявления, площадь, этаж, количество этажей, год постройки, количество комнат, материал, расстояние до кремля (условного центра).
Далее она обрабатывает данные (цифровизирует нулевые данные), оставляет только год объявления. Цены распределяются по пяти классам.
После обработки программа делит данные на 99% обучающего материала и 1% тестового.
Эти данные обрабатываются по 10 раз для идентичных моделей нейронных сетей, использующих метод градиентного спуска "adam", с разной настройкой максимального количества поколений: 200, 400, 600, 800, 1000.
Считаются оценка модели. Для каждой модели запоминаются минимальный, максимальный и средний результаты. В консоль выводятся все результаты.
В конце программа показывает графики зависимости результатов от максимального количества поколений модели.
### Результаты тестирования
По результатам тестирования, можно сказать следующее:
* В общем, модель даёт средний результат в районе 40-50% точности, что недостаточно.
* Увеличение максимального количества поколений влияет сильнее всего на минимальные оценки, сужая разброс точности.
* Нельзя сказать, что увеличение максимального количества поколений сильно улучшит модель: максимум на 10% точности.
Пример консольного вывода:
>Testing iterations number 200:
>
>res1: 0.3806228373702422
>
>res2: 0.6055363321799307
>
>res3: 0.4809688581314879
>
>res4: 0.4913494809688581
>
>res5: 0.4844290657439446
>
>res6: 0.2975778546712803
>
>res7: 0.48788927335640137
>
>res8: 0.06228373702422145
>
>res9: 0.6193771626297578
>
>res10: 0.47750865051903113
>
>Medium result: 0.4387543252595155
>
>Testing iterations number 400:
>
>res1: 0.6124567474048442
>
>res2: 0.4290657439446367
>
>res3: 0.3217993079584775
>
>res4: 0.5467128027681661
>
>res5: 0.48788927335640137
>
>res6: 0.40484429065743943
>
>res7: 0.6020761245674741
>
>res8: 0.4186851211072664
>
>res9: 0.42214532871972316
>
>res10: 0.370242214532872
>
>Medium result: 0.46159169550173
>
>Testing iterations number 600:
>
>res1: 0.4359861591695502
>
>res2: 0.2560553633217993
>
>res3: 0.5363321799307958
>
>res4: 0.5778546712802768
>
>res5: 0.35986159169550175
>
>res6: 0.356401384083045
>
>res7: 0.49480968858131485
>
>res8: 0.5121107266435986
>
>res9: 0.5224913494809689
>
>res10: 0.5190311418685121
>
>Medium result: 0.4570934256055363
>
>Testing iterations number 800:
>
>res1: 0.25951557093425603
>
>res2: 0.4083044982698962
>
>res3: 0.5224913494809689
>
>res4: 0.5986159169550173
>
>res5: 0.24567474048442905
>
>res6: 0.4013840830449827
>
>res7: 0.21453287197231835
>
>res8: 0.4671280276816609
>
>res9: 0.40484429065743943
>
>res10: 0.38408304498269896
>
>Medium result: 0.3906574394463667
>
>Testing iterations number 1000:
>
>res1: 0.4186851211072664
>
>res2: 0.5017301038062284
>
>res3: 0.5121107266435986
>
>res4: 0.3806228373702422
>
>res5: 0.44982698961937717
>
>res6: 0.5986159169550173
>
>res7: 0.5570934256055363
>
>res8: 0.4290657439446367
>
>res9: 0.32525951557093424
>
>res10: 0.41522491349480967
>
>Medium result: 0.4588235294117647
Итого: Для отобранных данных нейронная модель с методом градиентного спуска "adam" показала себя не лучшим образом. Возможно, другие методы могут выдать лучшие результаты, либо необходима более обширная модификация модели.