Группа: М8О-308Б-19
Почта: ikorolew02@gmail.com
Выбрать набор данных. Поставить задачу, которую необходимо решить с помощью эти данных. Определить что нужно получить на выходе, как это измерять, посмотреть на сами данные. Определить являются ли данные грязными или чистыми. Есть ли у данных пропуски. Как зависят между собой признаки. Вывести матрицу корреляции. Показать попарные корреляции между признаками. Посмотреть на зависимости и на основе этого построить визуализацию и выводы.
На наборе данных о сердечной недостаточности подготовить данные для решения бинарной классификации наличия болезни сердца. С помощью датасета необходимо определять, есть ли у пациента болезнь сердца.
Набор данных о сердечной недостаточности:
-
Age - возраст пациента;
-
Sex - пол пациента;
-
ChessPainType - тип боли в груди;
-
ResingBP - артериальное давление в состоянии покоя;
-
Cholesterol - холестерин;
-
Fasting - уровень сахара в крови натощак;
-
RestingECG - ЭКГ;
-
MaxHR - максимальная достигнутая частота сердечных сокращений;
-
ExerciseAngina - Физическая стенокардия;
-
Oldpeak - снижение ST, вызванная физической нагрузкой;
-
ST_Slope - наклон снижения сегмента;
-
HeartDisease - болезнь сердца.
-
Был скачан датасет.
-
С помощью pandas датасет был преобразован в удобный для работы вид.
-
Были просмотрены данные датасета, признаки и их типы. Датасет был проверен на повторение данных, а также пустые данные.
-
Были проанализированы числовые данные. Произведён поиск выбросов среди них. Была выведена матрица корреляции. Были просмотрены ассимметрия и эксцесс.
-
Были проанализированы категориальные данные. Просмотрены смещение и эксцесс.
-
Были построены корреляции различных признаков с признаком наличия болезни сердца. По корреляциям были сделаны выводы.
-
Категориальные данные датасета были преобразованы в числовые с помощью метода OneHotEncoding.
-
Данные были нормализованы для дальнейшего обучения.
-
На всякий случай был проведён тест преобразованного датасета с помощью метода опорных векторов SVM.
-
Реализовать вручную алгоритмы: Logistic Regression, SVM, KNN, Naive Bayes в отдельных классах
-
Данные классы должны наследоваться от BaseEstimator и ClassifierMixin, и иметь методы fit и predict
-
Вы должны организовать весь процесс предобработки, обучения и тестирования с помощью Pipeline;
-
Вы должны настроить гиперпараметры моделей с помощью кросс валидации, вывести и сохранить эти гиперпараметры в файл, вместе с обученными моделями;
-
Проделать аналогично с коробочными решениями
-
Для каждой модели получить оценки метрик: Confusion Matrix, Accuracy, Recall, Precision, ROC/AUC curve
-
Проанализировать полученные результаты и сделать выводы о применимости моделей
-
Загрузить полученные гиперпараметры модели и обученные модели в формате pickle на гит вместе Jupyter Notebook ваших экспериментов
Был найден для предсказания болезни сердца у пациента по определённым признакам. Над датасетом был проведён анализ и выявлены корреляции между признаками. Для того, чтобы выполнять обучение на датасете категориальные данные были преобразованы с помощью One Hot Encoding к нужному виду. Были вручную реализованы алгоритмы: Logistic Regression, SVM, KNN, Naive Bayes в отдельных классах. Весь процесс обучения и тестирования выполнялся с помощью Pipeline. Для моделей были настроены гиперпараметры, чтобы модели давали лучшие результаты. Для реализованных вручную моделей были выполнены сравнения с их коробочными реализациями. Наилучшие модели каждого типа были загружены в формате pickle.