diff --git a/orlov_artem_lab_1/README.md b/orlov_artem_lab_1/README.md new file mode 100644 index 0000000..9b62ac2 --- /dev/null +++ b/orlov_artem_lab_1/README.md @@ -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) \ No newline at end of file diff --git a/orlov_artem_lab_1/console.png b/orlov_artem_lab_1/console.png new file mode 100644 index 0000000..1e03aae Binary files /dev/null and b/orlov_artem_lab_1/console.png differ diff --git a/orlov_artem_lab_1/gr.png b/orlov_artem_lab_1/gr.png new file mode 100644 index 0000000..6e58950 Binary files /dev/null and b/orlov_artem_lab_1/gr.png differ diff --git a/orlov_artem_lab_1/main.py b/orlov_artem_lab_1/main.py new file mode 100644 index 0000000..45c1cc8 --- /dev/null +++ b/orlov_artem_lab_1/main.py @@ -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() \ No newline at end of file