.. | ||
main.py | ||
Readme.md |
Лабораторная 2
Вариант 9
Задание
Выполните ранжирование признаков с помощью указанных по вариантумоделей. Отобразите получившиеся значения\оценки каждого признака каждым методом\моделью и среднюю оценку. Проведите анализ получившихся результатов.
Модели
- Лассо (Lasso)
- Сокращение признаков Случайными деревьями (Random Forest Regressor)
- Линейная корреляция (f_regression)
Описание Программы
Данная программа решает задачу ранжирования признаков в задаче регрессии, используя три различные модели: Lasso, случайные деревья (Random Forest) и линейную корреляцию (f_regression). Каждая модель ранжирует признаки в соответствии с их важностью, а затем производится вычисление среднего ранжирования для каждого признака на основе результатов всех моделей.
Используемые библиотеки
numpy
: Для работы с массивами и вычислений.scikit-learn
: Библиотека машинного обучения для реализации моделей регрессии и методов ранжирования признаков.
Шаги программы
Исходные данные: Генерация случайных данных для задачи регрессии, состоящей из 750 строк и 14 признаков.
Модели:
Lasso: Применение линейной модели Lasso с параметром альфа равным 0.05. Random Forest: Использование ансамбля случайных деревьев с 100 деревьями. Линейная корреляция (f_regression): Расчет коэффициентов корреляции между признаками и целевой переменной. Ранжирование признаков:
Каждая модель ранжирует признаки в соответствии с их важностью. Используется MinMaxScaler для нормализации значений рангов. Среднее ранжирование:
Для каждого признака рассчитывается среднее значение его ранга по всем моделям. Вывод результатов:
Выводится среднее ранжирование для каждого признака. Показываются результаты ранжирования для каждой модели. Выводится топ-4 признака с их значениями на основе среднего ранжирования.
Запуск программы
- Склонировать или скачать код
main.py
. - Запустите файл в среде, поддерживающей выполнение Python.
python main.py
Результаты
- Lasso {'x1': 0.69, 'x2': 0.72, 'x3': 0.0, 'x4': 1.0, 'x5': 0.29, 'x6': 0.0, 'x7': 0.0, 'x8': 0.0, 'x9': 0.0, 'x10': 0.0, 'x11': 0.0, 'x12': 0.0, 'x13': 0.0, 'x14': 0.0}
- Random Forest {'x1': 0.66, 'x2': 0.76, 'x3': 0.1, 'x4': 0.55, 'x5': 0.23, 'x6': 0.0, 'x7': 0.01, 'x8': 0.0, 'x9': 0.0, 'x10': 0.0, 'x11': 0.29, 'x12': 0.28, 'x13': 0.09, 'x14': 1.0}
- Correlation {'x1': 0.3, 'x2': 0.45, 'x3': 0.0, 'x4': 1.0, 'x5': 0.04, 'x6': 0.0, 'x7': 0.01, 'x8': 0.02, 'x9': 0.01, 'x10': 0.0, 'x11': 0.29, 'x12': 0.44, 'x13': 0.0, 'x14': 0.98}
- Среднее {'x1': 0.55, 'x2': 0.64, 'x3': 0.03, 'x4': 0.85, 'x5': 0.19, 'x6': 0.0, 'x7': 0.01, 'x8': 0.01, 'x9': 0.0, 'x10': 0.0, 'x11': 0.19, 'x12': 0.24, 'x13': 0.03, 'x14': 0.66}
- Топ 4 признака с их значениями на основе среднего ранжирования:
- x4: 0.85
- x14: 0.66
- x2: 0.64
- x1: 0.55