From cfc34f0e10010515a1335adf89e9784b6043ce21 Mon Sep 17 00:00:00 2001
From: Svetlnkk <89974865+Svetlnkk@users.noreply.github.com>
Date: Sat, 23 Sep 2023 21:36:07 +0400
Subject: [PATCH] zavrazhnova_svetlana_lab_2 is ready
---
.idea/IIS_2023_1.iml | 8 ++
.../inspectionProfiles/profiles_settings.xml | 6 ++
.idea/misc.xml | 4 +
.idea/modules.xml | 8 ++
.idea/vcs.xml | 6 ++
.idea/workspace.xml | 92 ++++++++++++++++++
zavrazhnova_svetlana_lab_2/README.md | 30 ++++++
zavrazhnova_svetlana_lab_2/result.png | Bin 0 -> 14634 bytes
.../zavrazhnova_svetlana_lab_2.py | 54 ++++++++++
9 files changed, 208 insertions(+)
create mode 100644 .idea/IIS_2023_1.iml
create mode 100644 .idea/inspectionProfiles/profiles_settings.xml
create mode 100644 .idea/misc.xml
create mode 100644 .idea/modules.xml
create mode 100644 .idea/vcs.xml
create mode 100644 .idea/workspace.xml
create mode 100644 zavrazhnova_svetlana_lab_2/README.md
create mode 100644 zavrazhnova_svetlana_lab_2/result.png
create mode 100644 zavrazhnova_svetlana_lab_2/zavrazhnova_svetlana_lab_2.py
diff --git a/.idea/IIS_2023_1.iml b/.idea/IIS_2023_1.iml
new file mode 100644
index 0000000..4e6ce24
--- /dev/null
+++ b/.idea/IIS_2023_1.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..3c29c38
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..89e118a
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..b610ec7
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1695412818437
+
+
+ 1695412818437
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/zavrazhnova_svetlana_lab_2/README.md b/zavrazhnova_svetlana_lab_2/README.md
new file mode 100644
index 0000000..95eecf7
--- /dev/null
+++ b/zavrazhnova_svetlana_lab_2/README.md
@@ -0,0 +1,30 @@
+### Задание по варианту
+Лассо (Lasso),Сокращение признаков Случайными деревьями (Random Forest Regressor), Линейная корреляция (f_regression)
+
+### Как запустить лабораторную работу
+ЛР запускается через файл `zavrazhnova_svetlana_lab_2.py`
+
+### Какие технологии использовали
+импорт класса `MinMaxScaler`, выполняющего масштабирование данных до заданного диапазона (от 0 до 1).
+Необходимость его использования объясняется следующим: каждая модель регрессии дает оценки
+важности признаков в своем диапазоне. Для того чтобы найти признак с максимальной средней важностью по трем моделям, нам необходимо привести выданные ими оценки к одному виду.
+Модели линейной регрессии, ридж-регрессии и лассо-регрессии из библиотеки `scikit-learn`
+
+### Что делает
+Применение регрессионных моделей для определения важности признаков.
+
+Результат работы программы показывает ранжирование признаков по их значимости для задачи. Чем больше значение ранга, тем более значимый признак.
+Полученные ранги можно использовать для отбора наиболее значимых признаков и сокращения размерности данных.
+
+### Примеры выходных значений
+
+![example program result](result.png)
+
+В данном случае, в соответствии с полученными результатами, можно сказать следующее:
+
+1. Признаки 'x4' и 'x14' имеют наивысшие ранги (больше 380), что указывает на их большую значимость в решении задачи.
+2. Признаки 'x2' и 'x12' имеют средние ранги (от 170 до 180), что означает их среднюю значимость.
+3. Признаки 'x1' и 'x11' имеют ранги около 120, что указывает на их относительную значимость.
+4. Признаки 'x5', 'x8' и 'x7' имеют низкие ранги (от 5 до 17), что говорит о их низкой значимости.
+5. Признаки 'x9', 'x3', 'x13', 'x10' и 'x6' имеют очень низкие ранги (меньше 3), что указывает на их минимальную значимость или наличие практически нулевых эффектов.
+
diff --git a/zavrazhnova_svetlana_lab_2/result.png b/zavrazhnova_svetlana_lab_2/result.png
new file mode 100644
index 0000000000000000000000000000000000000000..2bda0ed1fc139c205656efef9ce428974a878d10
GIT binary patch
literal 14634
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
EKQp&=-~a#s
literal 0
HcmV?d00001
diff --git a/zavrazhnova_svetlana_lab_2/zavrazhnova_svetlana_lab_2.py b/zavrazhnova_svetlana_lab_2/zavrazhnova_svetlana_lab_2.py
new file mode 100644
index 0000000..693ef46
--- /dev/null
+++ b/zavrazhnova_svetlana_lab_2/zavrazhnova_svetlana_lab_2.py
@@ -0,0 +1,54 @@
+from sklearn.linear_model import Lasso
+from sklearn.ensemble import RandomForestRegressor
+from sklearn.feature_selection import f_regression
+from sklearn.preprocessing import MinMaxScaler
+import numpy as np
+
+np.random.seed(0)
+size = 750
+#входные данные.
+X = np.random.uniform(0, 1, (size, 14))
+
+#Генерируется целевая переменная Y на основе математической функции от входных данных X.
+Y = (10 * np.sin(np.pi*X[:,0]*X[:,1]) + 20*(X[:,2] - .5)**2 +
+ 10*X[:,3] + 5*X[:,4]**5 + np.random.normal(0,1))
+X[:,10:] = X[:,:4] + np.random.normal(0, .025, (size,4))
+
+names = ["x%s" % i for i in range(1,15)]
+#Создается пустой словарь для хранения рангов признаков
+ranks = {}
+
+#Создается экземпляр модели лассо-регрессии
+lasso = Lasso(alpha=.05)
+#Модель подгоняется под входные данные X и целевую переменную Y
+lasso.fit(X, Y)
+ranks["Lasso"] = dict(zip(names, lasso.coef_))
+
+rf = RandomForestRegressor(n_estimators=100, random_state=0)
+rf.fit(X, Y)
+ranks["Random Forest"] = dict(zip(names, rf.feature_importances_))
+
+f, _ = f_regression(X, Y, center=True)
+ranks["f_regression"] = dict(zip(names, f))
+
+def rank_to_dict(ranks, names):
+ ranks = np.abs(ranks)
+ minmax = MinMaxScaler()
+ #масштабирование рангов с помощью MinMaxScaler
+ ranks = minmax.fit_transform(np.array(ranks).reshape(-1, 1)).ravel()
+ ranks = map(lambda x: round(x, 2), ranks)
+ return dict(zip(names, ranks))
+
+#словарь для хранения средних рангов признаков
+mean = {}
+for key, value in ranks.items():
+ for item in value.items():
+ if item[0] not in mean:
+ mean[item[0]] = 0
+ mean[item[0]] += item[1]
+
+sorted_mean = sorted(mean.items(), key=lambda x: x[1], reverse=True)
+result = {}
+for item in sorted_mean:
+ result[item[0]] = item[1]
+ print(f'{item[0]}: {item[1]}')