IIS_2023_1/istyukov_timofey_lab_2/README.md
2024-01-04 22:41:18 +04:00

71 lines
3.8 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.

# Лабораторная работа №2. Ранжирование признаков
## 12 вариант
___
### Задание:
Используя код из пункта «Решение задачи ранжирования признаков»,
выполните ранжирование признаков с помощью указанных по варианту моделей.
Отобразите получившиеся значения\оценки каждого признака каждым методом\моделью
и среднюю оценку. Проведите анализ получившихся результатов.
Какие четыре признака оказались самыми важными по среднему значению?
(Названия\индексы признаков и будут ответом на задание).
### Модели по варианту:
- Лассо (Lasso)
- Рекурсивное сокращение признаков (Recursive Feature Elimination RFE)
- Линейная корреляция (f_regression)
___
### Запуск
- Запустить файл lab2.py
### Используемые технологии
- Язык программирования **Python**
- Среда разработки **PyCharm**
- Библиотеки:
* numpy
* sklearn
### Описание программы
В качестве примера взята регрессионная проблема Фридмана. На вход
моделей подано 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**