IIS_2023_1/shadaev_anton_lab_2/README.md
2023-11-03 14:17:51 +04:00

45 lines
4.1 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.

# IIS_2023_1
<h4>Задание</h4>
<p>
Используя код из [1](пункт «Решение задачи ранжирования признаков», стр. 205), выполните ранжирование признаков с помощью указанных по варианту моделей. Отобразите получившиеся значения\оценки каждого признака каждым методом\моделью и среднюю оценку. Проведите анализ получившихся результатов. Какие четыре признака оказались самыми важными по среднему значению? (Названия\индексы признаков и будут ответом на задание).
</p>
<p>
9.
<ul>
<li>Лассо (Lasso)</li>
<li>Сокращение признаков случайными деревьями (Random Forest Regressor) </li>
<li>Линейная корреляция (f-regression)</li>
</ul>
</p>
<h4>Способок запуска программы</h4>
Запустить скрипт shadaev_anton_lab_2/main.py, после чего в консоль будут выведены результаты выполнения программы.
<h4>Стек технологий</h4>
<p>
<ul>
<li>NumPy - это библиотека Python, предоставляющая поддержку для больших, многомерных массивов и матриц, а также набор функций для их манипуляции и обработки.</li>
<li>Sklearn - предоставляет ряд инструментов для моделирования данных, включая классификацию, регрессию, кластеризацию и уменьшение размерности. </li>
</ul>
</p>
<h4>Описание кода</h4>
<p>
В этом коде мы генерируем 500 наблюдений с 15 признаками. Затем создается словарь для хранения рангов признаков для каждого метода (Lasso, Random Forest, f_regression).
Функция calculate_ranks() используется для вычисления рангов признаков для каждого метода. Для этого она обучает модель (Lasso или Random Forest) на данных и затем возвращает словарь, где ключами являются имена признаков, а значениями - коэффициенты признаков модели.
Если используется метод f_regression, функция возвращает словарь с f-статистиками признаков.
Затем функция create_normalized_rank_dict() используется для нормализации рангов признаков. Она принимает ранги и имена признаков, приводит ранги к абсолютному значению, нормализует их с использованием MinMaxScaler из sklearn.preprocessing и возвращает словарь, где ключами являются имена признаков, а значениями - нормализованные ранги.
Наконец, код вычисляет среднее значение рангов для каждого признака, сортирует признаки по средним значениям рангов в порядке убывания и выводит признаки и их ранги.
</p>
<h6>Результат: </h6>
<img src="img.png">
<p>
<ul>
<li>x4, x14 - высшая значимость</li>
<li>x2, x12 - средняя значимость</li>
<li>x1, x11 - значимость ниже среднего</li>
<li>x5, x15 - низкая значимость</li>
<li>x3, x6, x7, x8, x9, x10, x13 - очень низкая значимость</li>
</ul>
</p>