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 0000000..2bda0ed
Binary files /dev/null and b/zavrazhnova_svetlana_lab_2/result.png differ
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]}')