From db8ad8af9bc3e565499df8a1e2feac7ebe990327 Mon Sep 17 00:00:00 2001 From: enuementtt Date: Mon, 11 Dec 2023 13:59:12 +0400 Subject: [PATCH] romanova_adelina_lab_5 is ready --- romanova_adelina_lab_5/1.png | Bin 0 -> 55176 bytes romanova_adelina_lab_5/README.md | 79 ++++++++++++++++++++++++++++ romanova_adelina_lab_5/lab.py | 87 +++++++++++++++++++++++++++++++ 3 files changed, 166 insertions(+) create mode 100644 romanova_adelina_lab_5/1.png create mode 100644 romanova_adelina_lab_5/README.md create mode 100644 romanova_adelina_lab_5/lab.py diff --git a/romanova_adelina_lab_5/1.png b/romanova_adelina_lab_5/1.png new file mode 100644 index 0000000000000000000000000000000000000000..3845e0a2dff00e9d75751585bbd4292f47f37a28 GIT binary patch literal 55176 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 literal 0 HcmV?d00001 diff --git a/romanova_adelina_lab_5/README.md b/romanova_adelina_lab_5/README.md new file mode 100644 index 0000000..a2469ed --- /dev/null +++ b/romanova_adelina_lab_5/README.md @@ -0,0 +1,79 @@ +# Лабораторная работа №5. Вариант 21 + +## Тема: +Регрессия + +## Модель: + +LinearRegression + +## Как запустить программу: +Установить *python, numpy, matplotlib, sklearn* +``` +python lab.py +``` + +## Какие технологии использовались: +Язык программирования Python, библиотеки numpy, matplotlib, sklearn + +Среда разработки VSCode + +# Что делает лабораторная работа: + +Поскольку артериальное давление пациента в состоянии покоя является важным медицинским показателем, оно было выбрано для предсказания на основе доступных признаков, таких как возраст, пол и других. + +Внедрение линейной регрессии в решение задачи прогнозирования артериального давления в состоянии покоя приносит несколько ключевых преимуществ. + +Линейная регрессия является мощным инструментом в области статистики и машинного обучения, широко применяемым для анализа и моделирования связей между зависимыми и независимыми переменными. Ее основная цель — построить линейную функцию, наилучшим образом приближающую отношение между входными данными и целевой переменной. Это позволяет предсказывать значения целевой переменной на основе новых входных данных. + +### Описание: +```LinearRegression``` - метод наименьших квадратов (MSE) – это основной принцип LinearRegression. Он стремится минимизировать сумму квадратов разностей между фактическими и предсказанными значениями. Этот алгоритм предоставляет аналитическое решение для определения коэффициентов линейной модели, что делает его эффективным и простым для понимания. + +Процесс обучения линейной регрессии требует выполнения следующих шагов: + +  1.  Получить исходные данные + +  2.  Выбрать целевое значение, которые нужно предсказывать + +  3.  Обработать данные таким образом, чтобы все признаки имели только числовой формат, и добавить нормализацию, или иначе, стандартизацию данных + +  4.  4. Провести обучение выбранной модели на подготовленных данных + +Обработка данных происходит с помощью функции ```str_features_to_numeric```: + +``` +def str_features_to_numeric(data): + # Преобразовывает все строковые признаки в числовые. + + # Определение категориальных признаков + categorical_columns = [] + numerics = ['int8', 'int16', 'int32', 'int64', 'float16', 'float32', 'float64'] + features = data.columns.values.tolist() + for col in features: + if data[col].dtype in numerics: continue + categorical_columns.append(col) + + # Кодирование категориальных признаков + for col in categorical_columns: + if col in data.columns: + le = LabelEncoder() + le.fit(list(data[col].astype(str).values)) + data[col] = le.transform(list(data[col].astype(str).values)) + + return data +``` + +Далее происходит нормализация с помощью ```StandardScaler```. + +В качестве целевого признака был выбран артериальное давление в состоянии покоя ```trestbps```- артериальное давление в состоянии покоя (в мм рт. ст. при поступлении в больницу). Обработанные данные поступают на вход обучения модели линейной регресии: + +![](1.png "") + +- reg.score_ - отображает точность работы модели +- reg.coef_ - отображает коэффициенты при признаках расположенных по порядку +- reg.intercept_ - показывает параметр смещения (в английской литературе bias) + +## Вывод + +На основе полученных результатов, можно сказать, что классическая модель линейной регрессии является более чем подходящей для решения именно этой конкретной задачи + diff --git a/romanova_adelina_lab_5/lab.py b/romanova_adelina_lab_5/lab.py new file mode 100644 index 0000000..7419ad8 --- /dev/null +++ b/romanova_adelina_lab_5/lab.py @@ -0,0 +1,87 @@ +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +import seaborn as sns +import sklearn +from sklearn.linear_model import LinearRegression, SGDRegressor, Ridge + + +from sklearn.preprocessing import (LabelEncoder, + StandardScaler, + MinMaxScaler, + RobustScaler) +from sklearn.model_selection import train_test_split, GridSearchCV, StratifiedKFold, learning_curve, ShuffleSplit + + +def str_features_to_numeric(data): + # Преобразовывает все строковые признаки в числовые. + + # Определение категориальных признаков + categorical_columns = [] + numerics = ['int8', 'int16', 'int32', 'int64', 'float16', 'float32', 'float64'] + features = data.columns.values.tolist() + for col in features: + if data[col].dtype in numerics: continue + categorical_columns.append(col) + + # Кодирование категориальных признаков + for col in categorical_columns: + if col in data.columns: + le = LabelEncoder() + le.fit(list(data[col].astype(str).values)) + data[col] = le.transform(list(data[col].astype(str).values)) + + return data + + +if __name__ == "__main__": + data = pd.read_csv("..//heart_disease_uci.csv") + data['target'] = data['trestbps'] + data = data.drop(columns=['id', 'dataset', 'trestbps']) + + data_wo_null = data.dropna() + print(len(data_wo_null)) + + encoded_data_wo_null = str_features_to_numeric(data_wo_null) + print(len(encoded_data_wo_null)) + + # Model standartization + # The standard score of a sample x is calculated as: + # z = (x - мат.ож.) / (стандартное отклонение) + scaler = StandardScaler() + new_data = pd.DataFrame(scaler.fit_transform(encoded_data_wo_null), columns = encoded_data_wo_null.columns) + + dataset = data_wo_null.copy() # original data + target_name = 'target' + target = data_wo_null.pop(target_name) + + test_train_split_part = 0.2 + random_state = 42 + + train, valid, train_target, valid_target = train_test_split(new_data, target, + test_size=test_train_split_part, + random_state=random_state) + + reg = LinearRegression().fit(train, train_target) + + print("---"*15, " LinearRegression ", "---"*15) + print(f"Accuracy: {reg.score(valid, valid_target)}") + print(f"коэффициенты: {reg.coef_}") + print(f"Смещение относительно начала координат (bias): {reg.intercept_}") + + SGD_reg = SGDRegressor(max_iter=1000, tol=1e-3) + SGD_reg.fit(train, train_target) + + print("---"*15, " SGDRegressor ", "---"*15) + print(f"Accuracy: {SGD_reg.score(valid, valid_target)}") + print(f"коэффициенты: {SGD_reg.coef_}") + print(f"Смещение относительно начала координат (bias): {SGD_reg.intercept_}") + + Ridge_clf = Ridge(alpha=1.0) + Ridge_clf.fit(train, train_target) + + print("---"*15, " Ridge ", "---"*15) + print(f"Accuracy: {Ridge_clf.score(valid, valid_target)}") + print(f"коэффициенты: {Ridge_clf.coef_}") + print(f"Смещение относительно начала координат (bias): {Ridge_clf.intercept_}") +