tepechin_kirill_lab_5 #228
62
tepechin_kirill_lab_5/README.md
Normal file
62
tepechin_kirill_lab_5/README.md
Normal file
@ -0,0 +1,62 @@
|
||||
## Лабораторная работа №5, ПИбд-42 Тепечин Кирилл
|
||||
|
||||
### Датасет:
|
||||
#### Ссылка:
|
||||
[Smoking and Drinking Dataset with body signal](https://www.kaggle.com/datasets/sooyoungher/smoking-drinking-dataset/data)
|
||||
#### Подробности датасета
|
||||
| Столбец | Пояснение |
|
||||
|------------------|:-----------------------------------------------------------------:|
|
||||
| sex | Пол(мужской, женский) |
|
||||
| age | Возраст(округлён) |
|
||||
| height | Рост(округлён) [см] |
|
||||
| weight | [кг] |
|
||||
| sight_left | зрение (левый) |
|
||||
| sight_left | зрение (правый) |
|
||||
| hear_left | слух (левое): 1 (нормальное), 2 (ненормальное) |
|
||||
| hear_right | слух (правое): 1 (нормальное), 2 (ненормальное) |
|
||||
| SBP | Систолическое артериальное давление [мм рт. ст.] |
|
||||
| DBP | Диастолическое артериальное давление [мм рт. ст.] |
|
||||
| BLDS | глюкоза в крови натощак [мг/дл] |
|
||||
| tot_chole | общий холестерин [мг/дл] |
|
||||
| HDL_chole | Холестерин ЛПВП [мг/дл] |
|
||||
| LDL_chole | Холестерин ЛПНП [мг/дл] |
|
||||
| triglyceride | триглицерид [мг/дл] |
|
||||
| hemoglobin | гемоглобин [г/дл] |
|
||||
| urine_protein | белок в моче, 1(-), 2(+/-), 3(+1), 4(+2), 5(+3), 6(+4) |
|
||||
| serum_creatinine | креатинин сыворотки (крови) [мг/дл] |
|
||||
| SGOT_AST | глутамат-оксалоацетат-трансаминаза / аспартат-трансаминаза [МЕ/л] |
|
||||
| SGOT_ALT | аланиновая трансаминаза [МЕ/л] |
|
||||
| gamma_GTP | γ-глутамилтранспептидаза [МЕ/л] |
|
||||
| SMK_stat_type_cd | Степень курения: 1 (никогда), 2 (бросил), 3 (курю) |
|
||||
| DRK_YN | Пьющий или нет |
|
||||
|
||||
|
||||
### Как запустить лабораторную работу:
|
||||
|
||||
Для запуска лабораторной работы необходимо запустить файл lab5.py
|
||||
|
||||
### Используемые технологии:
|
||||
|
||||
* Python 3.12
|
||||
* pandas
|
||||
* scikit-learn
|
||||
|
||||
### Что делает лабораторная работа:
|
||||
|
||||
Эта лабораторная работа применяет полиномиальную регрессию к данным из файла для предсказания степени курения и оценивает ее эффективность используя среднеквадратичную ошибку и коэффициент детерминации (R-squared)
|
||||
|
||||
### Предварительная обработка данных:
|
||||
Изначально датасет имеет несколько категориальных признаков : *sex* , *DRK_YN*
|
||||
|
||||
Преобразуем их в фиктивные переменные используя
|
||||
````python
|
||||
data = pd.get_dummies(data, columns=['sex', 'DRK_YN'], drop_first=True)
|
||||
````
|
||||
### Результат:
|
||||
![Результат](result.png)
|
||||
### Вывод:
|
||||
Чем ближе значение MSE к нулю, тем лучше модель предсказывает целевую переменную. В данном случае, MSE не является очень высоким, но и не низким.
|
||||
|
||||
Значение коэф. детерминации 0.4052 говорит о том, что модель объясняет примерно 40.52% изменчивости в данных по степени курения.
|
||||
|
||||
В целом, результаты указывают на то, что выбранная модель полиномиальной регрессии демонстрирует некоторую способность предсказывать степень курения на основе данных из датасета.
|
38
tepechin_kirill_lab_5/lab5.py
Normal file
38
tepechin_kirill_lab_5/lab5.py
Normal file
@ -0,0 +1,38 @@
|
||||
import pandas as pd
|
||||
from sklearn.linear_model import LinearRegression
|
||||
from sklearn.metrics import mean_squared_error, r2_score
|
||||
from sklearn.model_selection import train_test_split
|
||||
from sklearn.preprocessing import PolynomialFeatures
|
||||
|
||||
# Загрузка данных
|
||||
data = pd.read_csv("smoking_drinking_dataset.csv")
|
||||
|
||||
# # Подготовка данных
|
||||
data = pd.get_dummies(data, columns=['sex', 'DRK_YN'], drop_first=True)
|
||||
|
||||
# Разделение данных на признаки (X) и целевую переменную (y)
|
||||
X = data.drop(columns=['SMK_stat_type_cd'])
|
||||
y = data['SMK_stat_type_cd']
|
||||
|
||||
# Разделение данных
|
||||
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
|
||||
|
||||
# Построение полиномиальных признаков
|
||||
poly = PolynomialFeatures(degree=2)
|
||||
X_train_poly = poly.fit_transform(X_train)
|
||||
X_test_poly = poly.transform(X_test)
|
||||
|
||||
# Обучение модели
|
||||
model = LinearRegression()
|
||||
model.fit(X_train_poly, y_train)
|
||||
|
||||
# Предсказание на тестовых данных
|
||||
y_pred = model.predict(X_test_poly)
|
||||
|
||||
# Оценка модели
|
||||
mse = mean_squared_error(y_test, y_pred)
|
||||
r2 = r2_score(y_test, y_pred)
|
||||
|
||||
# Вывод результатов
|
||||
print(f"Mean Squared Error: {mse}")
|
||||
print(f"R^2 Score: {r2}")
|
BIN
tepechin_kirill_lab_5/result.png
Normal file
BIN
tepechin_kirill_lab_5/result.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.7 KiB |
991347
tepechin_kirill_lab_5/smoking_drinking_dataset.csv
Normal file
991347
tepechin_kirill_lab_5/smoking_drinking_dataset.csv
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user