shestakova_maria_lab_5 is ready
This commit is contained in:
parent
a8c58683dd
commit
62c88ea9b2
29
shestakova_maria_lab_5/README.md
Normal file
29
shestakova_maria_lab_5/README.md
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
### Задание:
|
||||||
|
|
||||||
|
Использовать полиномиальную регрессию для данных, самостоятельно сформулировав задачу. Оценить, насколько хорошо она подходит для решения сформулированной вами задачи: предсказание качества сна на основе некоторых других признаков
|
||||||
|
|
||||||
|
### Технологии:
|
||||||
|
|
||||||
|
Библиотека Scikit-learn, библиотека pandas, библиотека matplotlib
|
||||||
|
|
||||||
|
### Что делает лабораторная:
|
||||||
|
|
||||||
|
Лабораторная работа предсказывает качество сна, используя следующие признаки: уровень стресса, возраст, пол, уровень физической активности и категория индекса массы тела.
|
||||||
|
|
||||||
|
### Как запустить:
|
||||||
|
|
||||||
|
Лабораторная работа запускается в файле `shestakova_maria_lab_5.py` через Run: открывается окно и появляется вывод в консоли
|
||||||
|
|
||||||
|
### Вывод:
|
||||||
|
|
||||||
|
График:
|
||||||
|
|
||||||
|
![img2.png](scatter.png)
|
||||||
|
|
||||||
|
На графике показаны синие маркеры - тестовые результаты и черные маркеры - предсказанные результаты
|
||||||
|
|
||||||
|
Консоль:
|
||||||
|
|
||||||
|
![результат в консоли](mark.png)
|
||||||
|
|
||||||
|
По оценке пожно увидеть, что алгоритм показывает достаточно точные результаты обучения
|
BIN
shestakova_maria_lab_5/mark.png
Normal file
BIN
shestakova_maria_lab_5/mark.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
BIN
shestakova_maria_lab_5/scatter.png
Normal file
BIN
shestakova_maria_lab_5/scatter.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 557 KiB |
40
shestakova_maria_lab_5/shestakova_maria_lab_5.py
Normal file
40
shestakova_maria_lab_5/shestakova_maria_lab_5.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
from matplotlib import pyplot as plt
|
||||||
|
from sklearn import metrics
|
||||||
|
from sklearn.linear_model import LinearRegression
|
||||||
|
from sklearn.model_selection import train_test_split
|
||||||
|
from sklearn.preprocessing import PolynomialFeatures, LabelEncoder
|
||||||
|
from sklearn.pipeline import Pipeline
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
# Загрузка данных из файла
|
||||||
|
data = pd.read_csv('sleep.csv')
|
||||||
|
|
||||||
|
# Преобразование категориальных признаков в числовые значения
|
||||||
|
label_encoder = LabelEncoder()
|
||||||
|
data['Gender'] = label_encoder.fit_transform(data['Gender'])
|
||||||
|
data['BMI Category'] = label_encoder.fit_transform(data['BMI Category'])
|
||||||
|
|
||||||
|
# Выделение признаков и целевой переменной
|
||||||
|
x = data[['Stress Level', 'Age', 'Gender', 'Physical Activity Level', 'BMI Category']]
|
||||||
|
y = data[['Quality of Sleep']]
|
||||||
|
|
||||||
|
# Разделение данных на обучающую и тестовую выборки
|
||||||
|
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.1, random_state=27)
|
||||||
|
|
||||||
|
# Создание модели с использованием полиномиальных признаков и линейной регрессии
|
||||||
|
poly = Pipeline([('poly', PolynomialFeatures(degree=3)), ('linear', LinearRegression())])
|
||||||
|
poly.fit(x_train, y_train)
|
||||||
|
|
||||||
|
# Предсказание целевой переменной на тестовой выборке
|
||||||
|
y_predicted = poly.predict(x_test)
|
||||||
|
|
||||||
|
# Вывод оценки качества модели
|
||||||
|
print('Оценка:')
|
||||||
|
print(metrics.r2_score(y_test, y_predicted))
|
||||||
|
|
||||||
|
# Визуализация сравнения истинных значений и предсказанных значений
|
||||||
|
plt.figure(1, figsize=(16, 9))
|
||||||
|
plt.title('Сравнение')
|
||||||
|
plt.scatter(x=[i for i in range(len(x_test))], y=y_test, c='blue', s=5)
|
||||||
|
plt.scatter(x=[i for i in range(len(x_test))], y=y_predicted, c='black', s=5)
|
||||||
|
plt.show()
|
Loading…
Reference in New Issue
Block a user