IIS_2023_1/belyaeva_ekaterina_lab_2/README.md
2023-10-20 16:12:55 +04:00

55 lines
4.3 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.

## Задание
Используя код из пункта «Решение задачи ранжирования признаков», выполните ранжирование признаков с помощью указанных по варианту моделей. Отобразите получившиеся оценки каждого признака каждой моделью и среднюю оценку. Проведите анализ получившихся результатов. Какие четыре признака оказались самыми важными по среднему значению? (Названия\индексы признаков и будут ответом на задание).
Вариант 6:
- Гребневая регрессия (Ridge)
- Сокращение признаков Случайными деревьями (Random Forest Regressor)
- Линейная корреляция (f_regression)
## Как запустить лабораторную
Запустить файл main.py
## Используемые технологии
Библиотеки numpy, scikit-learn, их компоненты
## Описание лабораторной (программы)
Данный код выполняет оценку важности признаков в задаче регрессии.
Сначала генерируются исходные данные с использованием 14 признаков (X) и функции-выхода (Y), которая представляет собой регрессионную проблему Фридмана. Затем используются две модели - гребневая регрессия (Ridge) и случайный лес (Random Forest) - для обучения на данных и оценки важности признаков.
Затем вычисляются коэффициенты корреляции между признаками и целевой переменной, и результаты сохраняются в словаре ranks с ключом "Correlation".
Далее в цикле вычисляются средние значения оценок важности признаков для каждого признака. Результаты сохраняются в словаре mean.
Как результат, программа выводит оценки важности для каждой модели и средние значения важности для каждого признака
## Результат
В результате получаем следующее:
Ridge
[('x4', 1.0), ('x14', 0.92), ('x1', 0.76), ('x2', 0.75), ('x12', 0.67), ('x5', 0.61), ('x11', 0.59), ('x6', 0.08), ('x8', 0.08), ('x3', 0.06), ('x7', 0.03), ('x10', 0.01), ('x9', 0.0), ('x13', 0.0)]
Random Forest
[('x14', 1.0), ('x2', 0.76), ('x1', 0.66), ('x4', 0.55), ('x11', 0.29), ('x12', 0.28), ('x5', 0.23), ('x3', 0.1), ('x13', 0.09), ('x7', 0.01), ('x6', 0.0), ('x8', 0.0), ('x9', 0.0), ('x10', 0.0)]
Correlation
[('x4', 1.0), ('x14', 0.98), ('x2', 0.45), ('x12', 0.44), ('x1', 0.3), ('x11', 0.29), ('x5', 0.04), ('x8', 0.02), ('x7', 0.01), ('x9', 0.01), ('x3', 0.0), ('x6', 0.0), ('x10', 0.0), ('x13', 0.0)]
Mean Importance:
x14 : 0.97
x4 : 0.85
x2 : 0.65
x1 : 0.57
x12 : 0.46
x11 : 0.39
x5 : 0.29
x3 : 0.05
x6 : 0.03
x8 : 0.03
x13 : 0.03
x7 : 0.02
x9 : 0.0
x10 : 0.0
Вывод: Самым важным признаком в среднем оказался х14, потом х4 и далее по убывающей - х2, х1, х12, х11, х5. Остальные признаки показали минимальную значимость или не имеют ее совсем.
Но стоит отметить, что несмотря на среднюю оценку признаков, разные модели выявили их значимость по-разному, что можно увидеть в тексте выше.
Корреляция и гребневая регрессия показали чуть более схожий результат, нежели сокращение признаков случайными деревьями, хотя стоит заметить, что результаты всех моделей все равно отличаются.