Лабораторная работа 1
This commit is contained in:
parent
b3e1e38eeb
commit
220b176be4
27
orlov_artem_lab_1/README.md
Normal file
27
orlov_artem_lab_1/README.md
Normal file
@ -0,0 +1,27 @@
|
||||
### Задание:
|
||||
Данные: make_moons (noise=0.3, random_state=rs)
|
||||
Модели:
|
||||
· Линейную регрессию
|
||||
· Полиномиальную регрессию (со степенью 5)
|
||||
· Гребневую полиномиальную регрессию (со степенью 5, alpha= 1.0)
|
||||
|
||||
### как запустить лабораторную работу:
|
||||
Лабораторная работа запускается в файле `main.py` через Run, должно запуститься окно с графиками и вычисления в консоли
|
||||
|
||||
### Технологии:
|
||||
Для решения задач будем использовать следующие библиотеки
|
||||
matplotlib для построения графиков,
|
||||
numpy для математических операций,
|
||||
sklearn для обучения моделей и получения результатов
|
||||
|
||||
### Что делает лабораторная:
|
||||
Выполнение кода выводит точность каждой модели (в консоль) и отображает графики решений для каждой модели.
|
||||
|
||||
### Пример выходных значений:
|
||||
Консоль:
|
||||
|
||||
![результат в консоль](console.png)
|
||||
|
||||
Графики:
|
||||
|
||||
![img.png](gr.png)
|
BIN
orlov_artem_lab_1/console.png
Normal file
BIN
orlov_artem_lab_1/console.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
BIN
orlov_artem_lab_1/gr.png
Normal file
BIN
orlov_artem_lab_1/gr.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 134 KiB |
53
orlov_artem_lab_1/main.py
Normal file
53
orlov_artem_lab_1/main.py
Normal file
@ -0,0 +1,53 @@
|
||||
import matplotlib.pyplot as plt
|
||||
from sklearn.datasets import make_moons
|
||||
from sklearn.linear_model import LinearRegression, Ridge
|
||||
from sklearn.preprocessing import PolynomialFeatures
|
||||
|
||||
# Генерируем данные
|
||||
rs = 42
|
||||
X, y = make_moons(noise=0.3, random_state=rs)
|
||||
|
||||
# Линейная регрессия
|
||||
lr = LinearRegression()
|
||||
lr.fit(X, y)
|
||||
lr_score = lr.score(X, y)
|
||||
|
||||
# Полиномиальная регрессия
|
||||
poly = PolynomialFeatures(degree=5)
|
||||
X_poly = poly.fit_transform(X)
|
||||
lr_poly = LinearRegression()
|
||||
lr_poly.fit(X_poly, y)
|
||||
lr_poly_score = lr_poly.score(X_poly, y)
|
||||
|
||||
# Гребневая регрессия
|
||||
ridge = Ridge(alpha=1.0)
|
||||
ridge.fit(X_poly, y)
|
||||
ridge_score = ridge.score(X_poly, y)
|
||||
|
||||
# Выводим результаты
|
||||
print(f'Линейная регрессия: {lr_score}')
|
||||
print(f'Полиномиальная регрессия: {lr_poly_score}')
|
||||
print(f'Гребневая регрессия: {ridge_score}')
|
||||
|
||||
# Построение графиков
|
||||
plt.figure(figsize=(12, 6))
|
||||
|
||||
plt.subplot(141)
|
||||
plt.scatter(X[:, 0], X[:, 1], c=y)
|
||||
plt.title('Данные')
|
||||
|
||||
plt.subplot(142)
|
||||
plt.scatter(X[:, 0], lr.predict(X), c=y)
|
||||
plt.title('Линейная регрессия')
|
||||
|
||||
plt.subplot(143)
|
||||
plt.scatter(X[:, 0], ridge.predict(X_poly), c=y)
|
||||
plt.title('Гребневая регрессия')
|
||||
|
||||
# Добавляем график с полиномиальной регрессией
|
||||
plt.subplot(144)
|
||||
plt.scatter(X[:, 0], lr_poly.predict(X_poly), c=y)
|
||||
plt.title('Полиномиальная регрессия')
|
||||
|
||||
plt.tight_layout()
|
||||
plt.show()
|
Loading…
Reference in New Issue
Block a user