diff --git a/antonov_dmitry_lab_1/README.md b/antonov_dmitry_lab_1/README.md
new file mode 100644
index 0000000..be111c3
--- /dev/null
+++ b/antonov_dmitry_lab_1/README.md
@@ -0,0 +1,97 @@
+# Лаб 1
+
+Работа с типовыми наборами данных и различными моделями
+
+# Вариант 3
+
+Данные: make_classification (n_samples=500, n_features=2,
+n_redundant=0, n_informative=2, random_state=rs, n_clusters_per_class=1)
+
+# Запуск
+
+Выполнением скрипта файла (вывод в консоль + рисует графики).
+
+# Модели:
+
+1. Линейная регрессия
+1. Полиномиальная регрессия (со степенью 3)
+1. Гребневая полиномиальная регрессия (со степенью 3, alpha = 1.0)
+
+# Графики
+
+
+Качество каждой модели может быть оценено на основе среднеквадратичной ошибки (MSE).
+Более низкая MSE указывает на лучшее соответствие данным.
+Однако выбор модели зависит от набора данных и лежащей в основе взаимосвязи между объектами и целевой переменной.
+
+Линейная регрессия: Линейная регрессия предполагает линейную зависимость между признаками и целевой переменной.
+Это хорошо работает, когда взаимосвязь линейна, а шум в наборе данных минимален.
+Лучше всего сработала на наборе лун. Хуже всего на кругах.
+На линейном наборе показала себя на равне с остальными.
+
+Полиномиальная и гребневая показали примерно одинаково на всех наборах.
+
+Полиномиальная регрессия (степень=3):
+Полиномиальная регрессия обеспечивает более гибкую подгонку за счет полинома более высокого порядка(кубическая кривая).
+Она может выявить более сложные взаимосвязи между объектами и целевой переменной.
+Она может сработать лучше, чем линейная регрессия, если истинная взаимосвязь нелинейна.
+
+Гребневая регрессия (степень= 3, альфа=1,0):
+В случае полиномиальной регрессии с регуляризацией (альфа=1,0) модель добавляет коэффициент регуляризации
+для управления сложностью обучения. Регуляризация помогает предотвратить переобучение, когда набор
+данных содержит шум или когда он ограничен.
+
+
+
+
Набор лун (moon_dataset)
+
+
+
+
Графики регрессии
+
+
+
+
+ Линейная MSE: 0.0936
+ Полиномиальная (degree=3) MSE: 0.0674
+ Гребневая (degree=3, alpha=1.0) MSE: 0.0682
+
+
+
+
+
Набор кругов (circles_dataset)
+
+
+
+
Графики регрессии
+
+
+
+
+ Линейная MSE: 0.2684
+ Полиномиальная (degree=3) MSE: 0.1341
+ Гребневая (degree=3, alpha=1.0) MSE: 0.1312
+
+
+
+
+
Набор линейный (linearly_dataset)
+
+
+
+
Графики регрессии
+
+
+
+
+ Линейная MSE: 0.1101
+ Полиномиальная (degree=3) MSE: 0.1045
+ Гребневая (degree=3, alpha=1.0) MSE: 0.1078
+
+
+
+
+Итоговая модель подбирается учитывая зависимость в данных,
+как правило полиномиальная регрессия справляется лучше, а коэф регуляризации в гребневой регрессии помогает избежать
+переобучения.
+
\ No newline at end of file
diff --git a/antonov_dmitry_lab_1/lab1.py b/antonov_dmitry_lab_1/lab1.py
new file mode 100644
index 0000000..f92c5d4
--- /dev/null
+++ b/antonov_dmitry_lab_1/lab1.py
@@ -0,0 +1,97 @@
+import numpy as np
+from matplotlib import pyplot as plt
+from skimage.metrics import mean_squared_error
+from sklearn.datasets import make_moons, make_circles, make_classification
+from sklearn.linear_model import LinearRegression, Ridge
+from sklearn.model_selection import train_test_split
+from sklearn.pipeline import make_pipeline
+from sklearn.preprocessing import StandardScaler, PolynomialFeatures
+
+X, y = make_classification(
+ n_features=2,
+ n_redundant=0,
+ n_informative=2,
+ random_state=0,
+ n_clusters_per_class=1
+)
+
+rng = np.random.RandomState(2)
+X += 2 * rng.uniform(size=X.shape)
+linearly_dataset = (X, y)
+moon_dataset = make_moons(noise=0.3, random_state=0)
+circles_dataset = make_circles(noise=0.2, factor=0.5, random_state=1)
+datasets = [moon_dataset, circles_dataset, linearly_dataset]
+
+"""
+Данные:
+· moon_dataset
+· circles_dataset
+· linearly_dataset
+"""
+for ds_cnt, ds in enumerate(datasets):
+ X, y = ds
+ X = StandardScaler().fit_transform(X)
+ X_train, X_test, y_train, y_test = train_test_split(
+ X, y, test_size=.4, random_state=42
+ )
+ """
+ Модели:
+ · Линейную регрессию
+ · Полиномиальную регрессию (со степенью 3)
+ · Гребневую полиномиальную регрессию (со степенью 3, alpha = 1.0)
+ """
+
+ # Линейная
+ linear_regression = LinearRegression()
+ linear_regression.fit(X_train, y_train)
+ linear_predictions = linear_regression.predict(X_test)
+ linear_mse = mean_squared_error(y_test, linear_predictions)
+
+ # Полиномиальная (degree=3)
+ poly_regression = make_pipeline(PolynomialFeatures(degree=3), LinearRegression())
+ poly_regression.fit(X_train, y_train)
+ poly_predictions = poly_regression.predict(X_test)
+ poly_mse = mean_squared_error(y_test, poly_predictions)
+
+ # Гребневая (degree=3, alpha=1.0)
+ poly_regression_alpha = make_pipeline(PolynomialFeatures(degree=3), Ridge(alpha=1.0))
+ poly_regression_alpha.fit(X_train, y_train)
+ poly_alpha_predictions = poly_regression_alpha.predict(X_test)
+ poly_alpha_mse = mean_squared_error(y_test, poly_alpha_predictions)
+
+ # График данных
+ plt.figure(figsize=(10, 6))
+ plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap='coolwarm')
+ plt.title('Датасет №' + str(ds_cnt))
+ plt.xlabel('X')
+ plt.ylabel('Y')
+
+ # График линейной модели
+ plt.figure(figsize=(10, 6))
+ plt.scatter(X_test[:, 0], X_test[:, 1], c=linear_predictions, cmap='coolwarm')
+ plt.title('Линейная ds'+ str(ds_cnt))
+ plt.xlabel('X')
+ plt.ylabel('Y')
+ plt.show()
+
+ # График полиномиальной модели (degree=3)
+ plt.figure(figsize=(10, 6))
+ plt.scatter(X_test[:, 0], X_test[:, 1], c=poly_predictions, cmap='coolwarm')
+ plt.title('Полиномиальная (degree=3) ds' + str(ds_cnt))
+ plt.xlabel('X')
+ plt.ylabel('Y')
+ plt.show()
+
+ # График гребневой модели (degree=3, alpha=1.0)
+ plt.figure(figsize=(10, 6))
+ plt.scatter(X_test[:, 0], X_test[:, 1], c=poly_alpha_predictions, cmap='coolwarm')
+ plt.title('Гребневая (degree=3, alpha=1.0) ds' + str(ds_cnt))
+ plt.xlabel('X')
+ plt.ylabel('Y')
+ plt.show()
+
+ # Сравнение качества
+ print('Линейная MSE:', linear_mse)
+ print('Полиномиальная (degree=3) MSE:', poly_mse)
+ print('Гребневая (degree=3, alpha=1.0) MSE:', poly_alpha_mse)
+
diff --git a/antonov_dmitry_lab_1/screens/myplot1.png b/antonov_dmitry_lab_1/screens/myplot1.png
new file mode 100644
index 0000000..8341361
Binary files /dev/null and b/antonov_dmitry_lab_1/screens/myplot1.png differ
diff --git a/antonov_dmitry_lab_1/screens/myplot10.png b/antonov_dmitry_lab_1/screens/myplot10.png
new file mode 100644
index 0000000..ad58249
Binary files /dev/null and b/antonov_dmitry_lab_1/screens/myplot10.png differ
diff --git a/antonov_dmitry_lab_1/screens/myplot11.png b/antonov_dmitry_lab_1/screens/myplot11.png
new file mode 100644
index 0000000..a26f8ba
Binary files /dev/null and b/antonov_dmitry_lab_1/screens/myplot11.png differ
diff --git a/antonov_dmitry_lab_1/screens/myplot12.png b/antonov_dmitry_lab_1/screens/myplot12.png
new file mode 100644
index 0000000..84e0d74
Binary files /dev/null and b/antonov_dmitry_lab_1/screens/myplot12.png differ
diff --git a/antonov_dmitry_lab_1/screens/myplot2.png b/antonov_dmitry_lab_1/screens/myplot2.png
new file mode 100644
index 0000000..0c50b29
Binary files /dev/null and b/antonov_dmitry_lab_1/screens/myplot2.png differ
diff --git a/antonov_dmitry_lab_1/screens/myplot3.png b/antonov_dmitry_lab_1/screens/myplot3.png
new file mode 100644
index 0000000..19cc7d4
Binary files /dev/null and b/antonov_dmitry_lab_1/screens/myplot3.png differ
diff --git a/antonov_dmitry_lab_1/screens/myplot4.png b/antonov_dmitry_lab_1/screens/myplot4.png
new file mode 100644
index 0000000..03c667b
Binary files /dev/null and b/antonov_dmitry_lab_1/screens/myplot4.png differ
diff --git a/antonov_dmitry_lab_1/screens/myplot5.png b/antonov_dmitry_lab_1/screens/myplot5.png
new file mode 100644
index 0000000..de743ae
Binary files /dev/null and b/antonov_dmitry_lab_1/screens/myplot5.png differ
diff --git a/antonov_dmitry_lab_1/screens/myplot6.png b/antonov_dmitry_lab_1/screens/myplot6.png
new file mode 100644
index 0000000..d22bdbc
Binary files /dev/null and b/antonov_dmitry_lab_1/screens/myplot6.png differ
diff --git a/antonov_dmitry_lab_1/screens/myplot7.png b/antonov_dmitry_lab_1/screens/myplot7.png
new file mode 100644
index 0000000..29f6740
Binary files /dev/null and b/antonov_dmitry_lab_1/screens/myplot7.png differ
diff --git a/antonov_dmitry_lab_1/screens/myplot8.png b/antonov_dmitry_lab_1/screens/myplot8.png
new file mode 100644
index 0000000..d75641a
Binary files /dev/null and b/antonov_dmitry_lab_1/screens/myplot8.png differ
diff --git a/antonov_dmitry_lab_1/screens/myplot9.png b/antonov_dmitry_lab_1/screens/myplot9.png
new file mode 100644
index 0000000..0ef0f8c
Binary files /dev/null and b/antonov_dmitry_lab_1/screens/myplot9.png differ