Для запуска лабораторной работы необходимо запустить файл lab6.py
### Используемые технологии:
* Python 3.12
* pandas
* scikit-learn
### Что делает лабораторная работа:
Эта лабораторная работа применяет нейронную сеть (MLPRegressor) к данным из файла для предсказания степени курения и оценивает ее эффективность используя среднеквадратичную ошибку и коэффициент детерминации (R-squared)
### Предварительная обработка данных:
Изначально датасет имеет несколько категориальных признаков : *sex* , *DRK_YN*
Преобразуем их в фиктивные переменные используя
````python
data = pd.get_dummies(data, columns=['sex', 'DRK_YN'], drop_first=True)
````
Т.к датасет содержит слишком большое количество данных следует уменшить их размер до 10%
````python
data = data.sample(frac=0.1, random_state=42)
````
### Тесты:
Изначально нейронная сеть с дефолтными параметрами показывает ужасный результат
Поэтому применим GridSearchCV для оптимизации производительности модели
Выбранные параметры:
````python
model = MLPRegressor(hidden_layer_sizes=(100,1), max_iter=500, learning_rate_init=0.001, random_state=42, alpha=0.0001, activation='tanh', solver='adam')
````
Теперь протестируем сеть с новыми параметрами
![тест2](test2.png)
Сеть стала работать значительно лучше
Также стоит отметить что при уменьшении количества данных до 0.1% результат немного ухудшается
![тест3](test3.png)
Однако при увеличении до 30% остается практически неизменным
![тест4](test4.png)
### Вывод:
Результаты указывают на то, что модель нейронной сети (MLPRegressor), как и модель полиномиальной регрессии демонстрируют некоторую способность предсказывать степень курения на основе данных из датасета.