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 + + + + + + + \ 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]}')