Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/egorumaev/2023-cirrhosis-outcomes
Прогнозирование исхода лечения пациентов с циррозом печени
https://github.com/egorumaev/2023-cirrhosis-outcomes
catboost imblearn iqr lda matplotlib numpy pandas pca phik pipeline sklearn t-sne xgboost
Last synced: 8 days ago
JSON representation
Прогнозирование исхода лечения пациентов с циррозом печени
- Host: GitHub
- URL: https://github.com/egorumaev/2023-cirrhosis-outcomes
- Owner: egorumaev
- Created: 2023-12-28T13:21:24.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2023-12-30T03:57:31.000Z (11 months ago)
- Last Synced: 2023-12-30T04:31:12.965Z (11 months ago)
- Topics: catboost, imblearn, iqr, lda, matplotlib, numpy, pandas, pca, phik, pipeline, sklearn, t-sne, xgboost
- Language: Jupyter Notebook
- Homepage:
- Size: 5.64 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 2023-cirrhosis-outcomes
Прогнозирование исхода лечения пациентов с циррозом печени# **ПРОЕКТ «Прогнозирование исхода лечения цирроза печени – Prediction of Cirrhosis Outcomes»**
---
![](https://github.com/egorumaev/2023-cirrhosis-outcomes/blob/main/Multi-Class%20Prediction.PNG)Проект выполнен в рамках участия в соревновании на **Kaggle** «Multi-Class Prediction of Cirrhosis Outcomes» (декабрь 2023)
* [Официальный сайт соревнования](https://www.kaggle.com/competitions/playground-series-s3e26 'Ссылка на официальный сайт')
---
## **Примененные библиотеки и технологии**
* Pandas, Numpy, Matplotlib, Seaborn, Missingno, Dataprep, Phik, Category_encoders, Sklearn, Imblearn, Catboost, XGBoost
* IQR (Interquartile Range), PCA (Principal component analysis), LDA (Linear Discriminant Analysis), t-SNE (T-distributed Stochastic Neighbor Embedding), Feature Engineering, Polynomial Features, Pipeline, VarianceThreshold, SMOTETomek
---
## **Цель и задачи проекта**
**Цель** – используя мультиклассовый подход спрогнозировать исход лечения пациентов с циррозом печени, предсказав вероятность для каждого пациента одного из трех статусов: C, CL или D.
Для достижения цели были решены следующие **задачи**:
* данные проверены на наличие пропусков, явные дубликаты, выбросы;
* выбросы обработаны;
* признаки проверены на мультиколлинеарность;
* данные подготовлены для сжати с помощью алгоритмов PCA, LDA, t-SNE;
* проведена оценка требуемого для машинного обучения количества главных компонент для применения PCA;
* данные высокой размерности представлены в 2D с помощью алгоритмов PCA, LDA, t-SNE;
* проведено обучение моделей CatBoost и XGBoost как с применением классических подходов обработки данных с помощью Pipeline, так и с помощью алгоритмов сжатия данных PCA и LDA, подготовлены csv-файлы для серии сабмитов.
Решаемая в рамках проекта задача является задачей **мультиклассификации**.
---
## **Основные результаты**
**(1)** Выполнено визуальное представление данных высокой размерности с помощью **PCA**, **LDA**, **t-SNE**, показавшее, что имеющиеся для машинного обучения данные плохо разделяются на группы, разные классы целевого признака перемешаны. Несколько лучшее распределение данных наблюдается на рисунках, построенных на данных, сжатых с помощью **t-SNE**. Однако, метод **t-SNE** применим только для визуализации и не пригоден для обработки данных с целью передачи модели машинного обучения.
**(2)** Для машинного обучения выбраны две модели градиентного бустинга: CatBoost и XGBoost, каждая из которых обучена на трех разных датасетах:
* **train_features** (исходный датасет, включающий категориальные и числовые признаки, обработанный с помощью Pipeline с помощью обычных функций)
* **train_for_compress** (19 числовых признаков)
* **train_for_compress_polynom** (210 числовых признаков, большая часть которых – полиномиальные)
**(3)** В серии сабмитов лучшие и почти одинаковые результаты показали обе отобранные для машинного обучения модели CatBoost и XGBoost, обученные на датасете с исходными признаками **train_features**.
**(4)** Сабмиты, выполненные на специально подготовленных датасетах **train_for_compress** и **train_for_compress_polynom** по итогам экспериментов с подбором числа главных компонент алгоритма **PCA** показали результаты, уступающие обучению моделей на датасете с исходными признаками **train_features**.
**(5)** Самые низкие результаты показали сабмиты, выполненные по результатам обучения машинных моделей с помощью алгоритма сжатия данных **LDA**.
**(6)** Более низкие результаты обучения машинных моделей, полученные с помощью **PCA** и **LDA**, в целом были ожидаемы, так как на серии визуализаций представления данных высокой размерности было отчетливо видно, что классы целевого признака плохо разделяются на группы, накладываются друг на друга.