From 676080d48d44b1edbb51de5ce07919759c70166c Mon Sep 17 00:00:00 2001 From: Ctrl-Tim <73001228+Ctrl-Tim@users.noreply.github.com> Date: Thu, 4 Jan 2024 22:38:19 +0400 Subject: [PATCH] create README --- istyukov_timofey_lab_2/README.md | 72 ++++++++++++++++++++++++++++++ istyukov_timofey_lab_2/result.jpg | Bin 0 -> 61057 bytes 2 files changed, 72 insertions(+) create mode 100644 istyukov_timofey_lab_2/README.md create mode 100644 istyukov_timofey_lab_2/result.jpg diff --git a/istyukov_timofey_lab_2/README.md b/istyukov_timofey_lab_2/README.md new file mode 100644 index 0000000..06aac7c --- /dev/null +++ b/istyukov_timofey_lab_2/README.md @@ -0,0 +1,72 @@ +# Лабораторная работа №2. Ранжирование признаков +## 12 вариант +___ + +### Задание: +Используя код из пункта «Решение задачи ранжирования признаков», +выполните ранжирование признаков с помощью указанных по варианту моделей. +Отобразите получившиеся значения\оценки каждого признака каждым методом\моделью +и среднюю оценку. Проведите анализ получившихся результатов. +Какие четыре признака оказались самыми важными по среднему значению? +(Названия\индексы признаков и будут ответом на задание). + +### Модели по варианту: +- Лассо (Lasso) +- Рекурсивное сокращение признаков (Recursive Feature Elimination – RFE) +- Линейная корреляция (f_regression) + +___ + +### Запуск +- Запустить файл lab2.py + +### Используемые технологии +- Язык программирования **Python** +- Среда разработки **PyCharm** +- Библиотеки: + * numpy + * sklearn + * matplotlib + +### Описание программы +В качестве примера взята регрессионная проблема Фридмана. На вход +моделей подано 15 факторов. Выход рассчитывается по формуле, использующей +только пять факторов, но факторы 1-5, а также 10-15 взаимозависимы. + +Последовательность действий: +1. Генерация данных по Фридману +2. Создание и обучение моделей по варианту +3. Ранжирование признаков по этим моделям с присвоением имён этим признакам +4. Вывод признаков моделей по убыванию значения оценки +5. Вывод среднего значения по каждому признакому по убыванию + +Программа показывает, как разные виды регрессий оценят важности +факторов и какой из них будет иметь наибольшую среднюю значимость +по всем трём моделям по варианту. + +--- +### Пример работы +![Graphics](result.jpg) +```text +---> Lasso <--- +[('x15', 1.0), ('x2', 0.88), ('x1', 0.82), ('x4', 0.38), ('x5', 0.38), ('x11', 0.01), ('x3', 0.0), ('x6', 0.0), ('x7', 0.0), ('x8', 0.0), ('x9', 0.0), ('x10', 0.0), ('x12', 0.0), ('x13', 0.0), ('x14', 0.0)] + +---> RFE <--- +[('x9', 1.0), ('x12', 0.88), ('x10', 0.75), ('x6', 0.62), ('x7', 0.5), ('x11', 0.38), ('x8', 0.25), ('x4', 0.12), ('x1', 0.0), ('x2', 0.0), ('x3', 0.0), ('x5', 0.0), ('x13', 0.0), ('x14', 0.0), ('x15', 0.0)] + +---> F_reg <--- +[('x4', 1.0), ('x15', 1.0), ('x2', 0.34), ('x13', 0.34), ('x1', 0.3), ('x12', 0.29), ('x5', 0.07), ('x6', 0.01), ('x3', 0.0), ('x7', 0.0), ('x8', 0.0), ('x9', 0.0), ('x10', 0.0), ('x11', 0.0), ('x14', 0.0)] + +Средния значения по каждому признаку: +[('x15', 0.67), ('x4', 0.5), ('x2', 0.41), ('x12', 0.39), ('x1', 0.37), ('x9', 0.33), ('x10', 0.25), ('x6', 0.21), ('x7', 0.17), ('x5', 0.15), ('x11', 0.13), ('x13', 0.11), ('x8', 0.08), ('x3', 0.0), ('x14', 0.0)] +``` + +--- + +### Вывод +Согласно выводу в консоль ранжированных признаков, был выявлен топ-4 самых важных признаков по среднему значению: + +1. **x15** +2. **x4** +3. **x2** +4. **x12** \ No newline at end of file diff --git a/istyukov_timofey_lab_2/result.jpg b/istyukov_timofey_lab_2/result.jpg new file mode 100644 index 0000000000000000000000000000000000000000..13620ac5bf57353f026e5a5429e6d9fa940ca01f GIT binary patch literal 61057 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 literal 0 HcmV?d00001