diff --git a/.idea/discord.xml b/.idea/discord.xml
new file mode 100644
index 0000000..30bab2a
--- /dev/null
+++ b/.idea/discord.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 3c29c38..b6db721 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 2dd87a1..21abd8a 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,7 +1,12 @@
+
+
+
-
+
+
+
@@ -15,23 +20,32 @@
+
+ {
+ "associatedIndex": 2
+}
- {
+ "keyToString": {
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "last_opened_file_path": "D:/ulstukek/Course4/IIS/labs",
+ "settings.editor.selected.configurable": "reference.settings.ide.settings.new.ui"
}
-}]]>
+}
diff --git a/savenkov_alexander_lab_1/.idea/.gitignore b/savenkov_alexander_lab_1/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/savenkov_alexander_lab_1/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/savenkov_alexander_lab_1/.idea/.name b/savenkov_alexander_lab_1/.idea/.name
new file mode 100644
index 0000000..11a5d8e
--- /dev/null
+++ b/savenkov_alexander_lab_1/.idea/.name
@@ -0,0 +1 @@
+main.py
\ No newline at end of file
diff --git a/savenkov_alexander_lab_1/.idea/Lab_1_IIS.iml b/savenkov_alexander_lab_1/.idea/Lab_1_IIS.iml
new file mode 100644
index 0000000..74d515a
--- /dev/null
+++ b/savenkov_alexander_lab_1/.idea/Lab_1_IIS.iml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/savenkov_alexander_lab_1/.idea/discord.xml b/savenkov_alexander_lab_1/.idea/discord.xml
new file mode 100644
index 0000000..30bab2a
--- /dev/null
+++ b/savenkov_alexander_lab_1/.idea/discord.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/savenkov_alexander_lab_1/.idea/inspectionProfiles/profiles_settings.xml b/savenkov_alexander_lab_1/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/savenkov_alexander_lab_1/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/savenkov_alexander_lab_1/.idea/misc.xml b/savenkov_alexander_lab_1/.idea/misc.xml
new file mode 100644
index 0000000..a377feb
--- /dev/null
+++ b/savenkov_alexander_lab_1/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/savenkov_alexander_lab_1/.idea/modules.xml b/savenkov_alexander_lab_1/.idea/modules.xml
new file mode 100644
index 0000000..b990923
--- /dev/null
+++ b/savenkov_alexander_lab_1/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/savenkov_alexander_lab_1/app.py b/savenkov_alexander_lab_1/app.py
new file mode 100644
index 0000000..940664f
--- /dev/null
+++ b/savenkov_alexander_lab_1/app.py
@@ -0,0 +1,62 @@
+import numpy as np
+from flask import Flask, request, render_template
+from sklearn.datasets import make_moons
+from sklearn.linear_model import LinearRegression
+from sklearn.preprocessing import PolynomialFeatures
+from sklearn.linear_model import Ridge
+from sklearn.model_selection import train_test_split
+import matplotlib.pyplot as plt
+
+app = Flask(__name__)
+
+@app.route('/')
+def home():
+ return render_template('index.html')
+
+@app.route('/compare_models', methods=['POST'])
+def compare_models():
+ # Генерация данных
+ rs = 0
+ X, y = make_moons(noise=0.3, random_state=rs)
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=rs)
+
+ # Линейная регрессия
+ lr = LinearRegression()
+ lr.fit(X_train, y_train)
+ lr_score = lr.score(X_test, y_test)
+
+ # Полиномиальная регрессия (степень 3)
+ poly = PolynomialFeatures(degree=3)
+ X_poly = poly.fit_transform(X_train)
+ poly_reg = LinearRegression()
+ poly_reg.fit(X_poly, y_train)
+ poly_score = poly_reg.score(poly.transform(X_test), y_test)
+
+ # Гребневая полиномиальная регрессия (степень 3, alpha=1.0)
+ ridge = Ridge(alpha=1.0)
+ ridge.fit(X_poly, y_train)
+ ridge_score = ridge.score(poly.transform(X_test), y_test)
+
+ # Создание графиков
+ plt.figure(figsize=(12, 4))
+
+ plt.subplot(131)
+ plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=plt.cm.RdBu)
+ plt.title('Линейная регрессия\n(Score: {:.2f})'.format(lr_score))
+
+ plt.subplot(132)
+ plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=plt.cm.RdBu)
+ plt.title('Полиномиальная регрессия\n(Score: {:.2f})'.format(poly_score))
+
+ plt.subplot(133)
+ plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=plt.cm.RdBu)
+ plt.title('Гребневая полиномиальная регрессия\n(Score: {:.2f})'.format(ridge_score))
+
+ plt.tight_layout()
+
+ plt.savefig('static/models_comparison.png')
+
+ return render_template('index.html', result=True)
+
+if __name__ == '__main__':
+ app.run(debug=True)
diff --git a/savenkov_alexander_lab_1/readme.md b/savenkov_alexander_lab_1/readme.md
new file mode 100644
index 0000000..4c54245
--- /dev/null
+++ b/savenkov_alexander_lab_1/readme.md
@@ -0,0 +1,63 @@
+Общее задание:
+Используя код из пункта «Регуляризация и сеть прямого
+распространения» из [1] (стр. 228), сгенерируйте определенный тип данных и
+сравните на нем 3 модели (по варианту). Постройте графики, отобразите
+качество моделей, объясните полученные результаты.
+
+Задание по вариантам 1 вариант (22), взял 1 т.к. всего 21 вариант задания:
+1. Данные: make_moons (noise=0.3, random_state=rs)
+Модели:
+· Линейную регрессию
+· Полиномиальную регрессию (со степенью 3)
+· Гребневую полиномиальную регрессию (со степенью 3, alpha = 1.0)
+
+Запуск приложения осуществляется запуском файла app.py
+
+Использованные технологии:
+Среда программирования Pycharm
+Версия языка python: 3.11
+Flask: Flask - это микрофреймворк для создания веб-приложений на языке Python. Он используется для создания веб-сервера и определения маршрутов, таких как '/' и '/compare_models', для обработки запросов.
+
+HTML: Ваш шаблон index.html использует язык разметки HTML для создания веб-страницы и отображения содержимого на веб-сайте.
+
+Matplotlib: Matplotlib - это библиотека для создания графиков и визуализации данных. В этой программе она используется для создания трех графиков, представляющих результаты различных моделей.
+
+NumPy: NumPy - это библиотека для вычислительных операций с массивами и матрицами. В этой программе она используется для генерации данных (make_moons) и работы с данными.
+
+Scikit-Learn (sklearn): Scikit-Learn - это библиотека машинного обучения для Python. Она используется для обучения трех моделей машинного обучения: линейной регрессии, полиномиальной регрессии и гребневой полиномиальной регрессии.
+
+Jinja2: Flask использует шаблонизатор Jinja2 для вставки динамических данных (например, параметра result) в HTML-шаблоны.
+
+Файловая система и статические файлы: В программе используется файловая система для сохранения изображений графиков (static/models_comparison.png). Эти изображения затем отображаются на веб-странице как статические файлы.
+
+Краткое описание работы программы:
+В разделе HTML (index.html) определен шаблон для главной страницы. Этот шаблон содержит заголовок, форму для отправки POST-запроса на /compare_models и, если result истинно, отображает изображение графиков моделей.
+
+В Python-скрипте (app.py) создается Flask-приложение, которое имеет два маршрута:
+
+'/' отвечает за главную страницу и отображает шаблон index.html.
+'/compare_models' обрабатывает POST-запрос, обучает различные модели и создает графики. После этого он возвращает результат в виде изображений и обновляет страницу с параметром result=True, чтобы отобразить изображения.
+Для генерации данных используется make_moons, а затем данные разбиваются на обучающий и тестовый наборы.
+
+Тренируются три модели: линейная регрессия, полиномиальная регрессия (степень 3) и гребневая полиномиальная регрессия (степень 3, alpha=1.0).
+
+После обучения моделей создаются три графика, каждый из которых представляет собой точечное облако с цветной разметкой, а также заголовок, содержащий оценку (score) модели.
+
+Графики сохраняются в файл static/models_comparison.png.
+
+Наконец, приложение запускается с debug=True в режиме отладки.
+
+Пример входных данных:
+X = [[-0.5, 0.5],
+ [0.2, 1.2],
+ [1.5, -0.3],
+ ...
+ ] # Матрица признаков
+
+y = [0, 1, 0, 1, 1, 0, 0, 1, ...] # Вектор меток классов
+
+Пример выходных данных:
+Графики моделей: Это изображения, на которых отображены точки данных с цветной разметкой в соответствии с предсказанными значениями моделей.
+Оценки моделей: В заголовках графиков отображаются оценки моделей (например, Score: 0.85), которые показывают качество каждой модели на тестовых данных.
+
+Обновленная главная страница: После генерации графиков, главная страница (index.html) обновляется, и на ней отображаются созданные графики моделей.
\ No newline at end of file
diff --git a/savenkov_alexander_lab_1/static/models_comparison.png b/savenkov_alexander_lab_1/static/models_comparison.png
new file mode 100644
index 0000000..c0715a6
Binary files /dev/null and b/savenkov_alexander_lab_1/static/models_comparison.png differ
diff --git a/savenkov_alexander_lab_1/templates/index.html b/savenkov_alexander_lab_1/templates/index.html
new file mode 100644
index 0000000..9354153
--- /dev/null
+++ b/savenkov_alexander_lab_1/templates/index.html
@@ -0,0 +1,17 @@
+
+
+
+ Сравнение моделей
+
+
+