Merge pull request 'Лабораторная работа 1' (#145) from orlov_artem_lab_1 into main
Reviewed-on: http://student.git.athene.tech/Alexey/IIS_2023_1/pulls/145
This commit is contained in:
commit
44023b7305
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