63 lines
4.9 KiB
Markdown
63 lines
4.9 KiB
Markdown
|
# Лабораторная работа №2. Ранжирование признаков
|
|||
|
## 14 вариант
|
|||
|
___
|
|||
|
|
|||
|
### Задание:
|
|||
|
Используя код из [1](пункт «Решение задачи ранжирования признаков», стр. 205), выполните ранжирование признаков с помощью указанных по варианту моделей. Отобразите получившиеся значения\оценки каждого признака каждым методом\моделью и среднюю оценку. Проведите анализ получившихся результатов. Какие четыре признака оказались самыми важными по среднему значению? (Названия\индексы признаков и будут ответом на задание).
|
|||
|
|
|||
|
### Модели по варианту:
|
|||
|
- Случайное Лассо (RandomizedLasso)
|
|||
|
- Сокращение признаков cлучайными деревьями (Random Forest Regressor)
|
|||
|
- Линейная корреляция (f_regression)
|
|||
|
|
|||
|
___
|
|||
|
|
|||
|
### Запуск
|
|||
|
- Запустить файл lab2.py
|
|||
|
|
|||
|
### Используемые технологии
|
|||
|
- Язык программирования **Python**
|
|||
|
- Среда разработки **PyCharm**
|
|||
|
- Библиотеки:
|
|||
|
* sklearn
|
|||
|
* matplotlib
|
|||
|
* numpy
|
|||
|
|
|||
|
### Описание программы
|
|||
|
1. Импортирует необходимые модули и классы:
|
|||
|
- RandomForestRegressor из sklearn.ensemble для создания модели случайного леса регрессии;
|
|||
|
- RandomizedLasso из RandomizedLasso для создания модели случайного Лассо (метода регуляризации линейной регрессии);
|
|||
|
- f_regression из sklearn.feature_selection для выполнения линейной корреляции между признаками и целевой переменной;
|
|||
|
- MinMaxScaler из sklearn.preprocessing для масштабирования оценок признаков к диапазону [0, 1];
|
|||
|
- numpy для работы с массивами данных.
|
|||
|
|
|||
|
2. Определяет функцию generation_data, которая генерирует случайные данные для обучения модели. Для простоты, будут использованы заранее определенные случайные значения.
|
|||
|
|
|||
|
3. Определяет функцию rank_to_dict, которая принимает ранговые оценки признаков и преобразует их в словарь с нормализованными значениями от 0 до 1.
|
|||
|
|
|||
|
4. Определяет функцию get_estimation, которая вычисляет среднюю оценку по всем моделям и выводит отсортированный список признаков по убыванию оценки.
|
|||
|
|
|||
|
5. Определяет функцию print_sorted_data, которая выводит отсортированные оценки признаков для каждой модели.
|
|||
|
|
|||
|
6. Определяет функцию main, которая объединяет все шаги: генерацию данных, обучение моделей, расчет оценок признаков и вывод результатов.
|
|||
|
|
|||
|
7. Вызывает функцию main для выполнения программы.
|
|||
|
|
|||
|
___
|
|||
|
### Пример работы
|
|||
|
|
|||
|
![Graphics](results.png)
|
|||
|
|
|||
|
|
|||
|
### Вывод
|
|||
|
На основе результатов можно сделать следующие выводы:
|
|||
|
|
|||
|
1. Признаки x4, x2, x14 и x1 являются самыми важными. Их средние оценки по всем моделям составляют 0.82, 0.8, 0.66 и 0.56 соответственно.
|
|||
|
|
|||
|
2. В модели случайного леса регрессии наиболее значимыми признаками являются x14, x2, x4 и x1. Они имеют оценки 1.0, 0.84, 0.77 и 0.74 соответственно.
|
|||
|
|
|||
|
3. По результатам линейной корреляции (f-регрессия), самыми важными признаками также являются x4, x14, x2 и x12 с оценками 1.0, 0.97, 0.57 и 0.56 соответственно.
|
|||
|
|
|||
|
4. В модели случайного Лассо наиболее значимыми признаками являются x2, x4, x1 и x5. Их оценки составляют 1.0, 0.69, 0.49 и 0.44 соответственно.
|
|||
|
|
|||
|
Таким образом, можно сделать вывод, что признаки x4, x2, x14 и x1 являются наиболее значимыми для всех моделей.
|