{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![Urgences - Image CC0 - pexels.com](img/pexels-pixabay-263402.jpg \"Urgences\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Biology Order Prescription\n", "*Levi-Dan Azoulay* \n", "*Ali Bellamine*" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Présentation du projet" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Chaque jour, environ 50 000 personnes se présentent dans un service d'accueil des urgences (SAU) en France. En moyenne, 75% des patients retournent à domicile, et 20% sont hospitalisés. La durée moyenne de présence au SAU est longue. On estime que seulement 20% attendront moins d'une heure, tandis que ~30% attendront entre 1h et 2H et ~30% attendront en 2 et 4H. Enfin, un peu plus de 10% resteront au SAU entre 4 et 6H. Dans un contexte de pénurie de soignants, le recours à la consultation au SAU est en constante augmentation depuis plusieurs années. L'optimisation du circuit des urgences est une problématique centrale. Le cout humain et financier des dysfonctionnements du circuit et de l'offre de soin est important. \n", "\n", "Le parcours classique du circuit des urgences est le suivant : \n", "1. **Premier contact d'ordre administratif**\n", "2. **Premier contact soignant avec une infirmière d'accueil et d'orientation (IAO) (~M30) avec** :\n", " - Recueil du motif de consultation\n", " - Prise des constantes\n", " - Recueil de quelques antécédents et de l'ordonnance du patient \n", " - Eventuellement ECG \n", "\n", "\n", "Le patient est classé selon un score de gravité (bleu, vert, jaune, orange, rouge, ou 1-2-3-4-5)\n", "\n", "3. **Premier contact médical avec un médecin (~H1)** :\n", " - Interrogatoire\n", " - Examen clinique\n", "\n", " \n", "A la suite de cette consultation, plusieurs cas de figures selon la situation.\n", "Le patient peut sortir avec ou sans ordonnance si le diagnostic est posé par l'examen clinique et ne nécéssite ni examen, ni hospitalisation.\n", "Le patient peut nécéssiter la réalisation d'examens (prise de sang, radiographie, scanner) ou motiver un avis d'un spécialiste. Auquel cas il doit attendre\n", "\n", "4. **Réalisation des examens complémentaire ou d'un avis (prescription, réalisation, récupération)**\n", "5. **Décision finale : Conclusion une fois les examens récupérés. (~H3)**\n", "\n", "Entre chaque étape, le patient attend pendant une durée plus ou moins longue. Le médecin lui « jongle » avec plusieurs patients à la fois à des étapes différentes. \n", "\n", "Nous proposons d'aider à raccourcir le temps entre l'arrivée du patient et sa sortie, en ne subordonnant pas la décision de réaliser un examen biologique à l'examen clinique du médecin. Nous savons que le temps entre l'arrivée au SAU et la première visite avec le médecin est le temps le plus long et le plus mal vécu par les patients. \n", "\n", "Nous proposons à l'aide d'un algorithme d'apprentissage statistique de prédire, dès les données fournies par l'IAO, la nécéssité de réaliser un examen de biologie médicale, afin de permettre aux IDE de prélever cet examen juste après l'IAO, de sorte que le médecin dès sa première visite peut conclure avec les résultats de la biologie, qu'il aurait sans cela, demandé et attendu de récuperer avant de conclure et de prendre en charge le patient. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Méthode et Objectif" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Données d'entréeAlgorithmeDonnées de sortie
Vecteur {0,1}^d d'examens de biologie associée à sa réalisation (1) ou non (0)
AgeMLP
NLP (Embeddings, Word2Vec ...)
Autres
Ionogramme Complet - {0,1}
SexeBilan hépato-cellulaire - {0,1}
Motif de consultationNumération sanguine (NFS) - {0,1}
Paramètres vitaux (FC, SpO2, PA, T°, FR, EVA)Glycémie - {0,1}
Ordonnance d'entrée du patientHémostase - {0,1}
...
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Plan du documents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Les étapes clés de ce projet sont les suivantes :\n", "\n", "- I. Identifier une base de données exploitable – Verrouiller la base \n", "Base MIMIC-IV ED – Verrouillée et disponible via le présent dépôt\n", "- II. Explorer et visualiser les données \n", "Recherche de corrélations, visualisation des données, description et analyse des inputs et output features\n", "- III. Sélection des variables d'interêts\n", "- IV. Définition et entrainement d'une solution d'apprentissage statistique" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# I. Identifier une base de donnée exploitable - Vérouiller la base" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Les données sont issus du projet MIMIC-IV. \n", "Le projet MIMIC est un projet d'open-data médical initié par l'hopital _Beth Israel Deaconess_ à Boston. \n", "Initialement, seul des données de réanimation été accessible.\n", "\n", "Pour sa 4ème édition, a été mis à disposition un jeu de données couvrant un spectre bien plus large :\n", "- Données relatives aux passages aux urgences\n", "- Données relatives aux hospitalisations\n", "- Données relatives aux séjour en réanimation\n", "- Données de radiographie thoracique avec compte rendu associé" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "L'ensemble de ces données ont été mis à disposition dans le cadre de projets complémentaires :\n", "- [MIMIC-IV](https://physionet.org/content/mimiciv/0.4/) : hospitalisation et réanimation\n", "- [MIMIC-IV-ED](https://physionet.org/content/mimic-iv-ed/1.0/) : urgences\n", "- [MIMIC-IV-CXR](https://physionet.org/content/mimic-cxr/2.0.0/) : radiographie thoracique\n", "\n", "Ces bases sont complémentaires dans le sens où chaque collecte a été faite durant une période temporelle spécifique, qui se recoupe plus où moins. \n", "Certains éléments nécessaires à l'exploitation de MIMIC-IV-ED sont présent dans MIMIC-IV. \n", "La lecture de la documentation de MIMIC-IV et de MIMIC-IV-ED est vivement recommandé (lien ci-dessus).\n", "\n", "En complément, un certains nombre de ressources est disponible sur le site du projet [MIMIC-IV](https://mimic.mit.edu/)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous proposons de travailler autours de ce jeu de données avec pour objectif la tache suivante : **prédire les examens biologiques qui seront réalisés lors de l'arrivé d'un patient aux urgences** \n", "Les métriques d'évaluation des performances seront :\n", "- L'**accuracy**\n", "- La **precision**\n", "- L'**aire sous la courbe (AUC)**\n", "\n", "Nous attachons une importance particulière à la précision. En effet, une sur-prescription d'examen biologique non indiqué pourrait entrainer un effet contraire à l'effet escompté, en prolongant le temps de prise en charge des personnes concernées." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## I.1 Téléchargement des données" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La base de données de biologie étant volumineuse (nous y reviendrons plus bas), un pré-traitement des données a été effectué. \n", "Le pré-traitement est le suivant :\n", "- Intégration de l'ensemble des données utiles au sein d'une base de données SQLITE\n", "- Tri des lignes de biologies afin de ne conserver que celles répondant au critères suivants :\n", " - Date de réalisation >= date de début du passage aux urgences\n", " - Date de réalisation <= date de fin du passage aux urgences\n", "\n", "*Le script de transformation peut être consulté dans `database_constitution/database_constitution.py`*\n", "\n", "Un token de téléchargement des données vous a normallement été mis à disposition." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```\n", " # Commande à executer dans le terminal\n", " pip install -r requirements.txt\n", " python download_data.py [TOKEN]\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## I.2 Récupération des données au format tabulaire" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Les données sont extraites depuis la base de données SQLITE de la façon suivante :\n", " - Récupération et aggrégation des informations suivantes pour chaque consultation aux urgence identifié par un identifiant unique *stay_id* :\n", " - Date de passage *intime*\n", " - Genre *gender*\n", " - Age *age*\n", " - Température à l'accueil **temperature**\n", " - Fréquence Cardiaque à l'accueil **heartrate**\n", " - Fréquence respiratoire à l'accueil **resprate**\n", " - Saturation en Oxygène à l'accueil **o2sat**\n", " - Pression artérielle Systolique à l'accueil (**sbp**) et Diastolique (**dbp**)\n", " - Cotation de douleur à l'accueil **pain**\n", " - Motif de consultation à l'accueil **chiefcomplaint**\n", " - Consultation dans les 7 derniers jours **last_7** ou 30 derniers jours **last_30**\n", " - Antécédents connus au moment de la consultation selon la Classification Internationale des Maladies (CIM) : CIM-9 **icd9** ou CIM10 **icd10**\n", " - Traitements habituels du patient lors de sa consultation, Generic Sequence Number (GSN) (**gsn**)\n", " - Récupération des examens prescrits pour chaque consultation aux urgences :\n", " - Les examens ont été regroupés par paquet correspondant aux techniques de laboratoire et aux organes / aspects fonctionnels explorés sur base de connaissance métier.\n", " - Il s'agit pour chaque paquet d'examen d'une variables binaire indiquant si l'examen a été prescrit au moins une fois durant le passage aux urgences\n", " - La prescription est identifié par la présence d'un résultat d'examen dans la table de résultats d'examens biologiques **labevents**\n", " - Les différentes modalités d'examens sont :\n", " - Cardiaque (**Cardiaque**)\n", " - Coagulation (**Coagulation**)\n", " - Gazométrie (**Gazometrie**)\n", " - Glycemie Sanguine (**Glycemie_Sanguine**)\n", " - Hépato-biliaire (**Hepato-Biliaire**)\n", " - Ionogramme Complet (**IonoC**)\n", " - Lipase (**Lipase**)\n", " - Numération de Formule Sanguine (**NFS**)\n", " - Phospho-Calcique (**Phospho-Calcique**)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from scripts import preprocessing\n", "\n", "lab_dictionnary = pd.read_csv(\"./config/lab_items.csv\").set_index(\"item_id\")[\"3\"].to_dict()\n", "get_drugs, get_diseases = True, True\n", "\n", "X = preprocessing.generate_features_dataset(\n", " database=\"./data/mimic-iv.sqlite\",\n", " get_drugs=get_drugs,\n", " get_diseases=get_diseases\n", ")\n", "\n", "y = preprocessing.generate_labels_dataset(\n", " database=\"./data/mimic-iv.sqlite\",\n", " lab_dictionnary=lab_dictionnary,\n", ")\n", "\n", "# Par conception, last_7 et last_30 doivent valoir 0 lorsque manquant\n", "X[\"last_7\"].fillna(0)\n", "X[\"last_30\"].fillna(0)\n", "\n", "assert((X[\"stay_id\"] != y[\"stay_id\"]).sum() == 0) # Sanity check" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# II. Explorer et visualiser les données" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## II.1. Exploration des features" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "# Visualisation de la distribution des NA\n", "# Visualisation de la distribution des features selon les labels\n", "# Visualisation des corrélations\n", "# Visualisation du texte\n", "# Analyser des ATCD\n", "# Analyse des traitements" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## II. 2. Exploration des labels" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "# Visualisation de la fréquence des labels" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# III. Sélection des variables d'intérêt" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# Définir la stratégie de sélection des features (voir sklearn)\n", "# L'appliquer et sortir un dataset pertinent" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# IV. Définition et entrainement un algorithme d'apprentissage statistique" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# Prévoir la pipeline de traitement\n", "# Algorithmes à produire :\n", "# Tree classifier simple : argument, explicabilité\n", "# MLP\n", "# Ajouter les traitements et voir\n", "# Ajouter les ATCD et voir\n", "# Ajouter le texte et voir" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# OLD - History" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "from sklearn.impute import SimpleImputer, MissingIndicator, KNNImputer\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.multioutput import MultiOutputClassifier\n", "from sklearn.neural_network import MLPClassifier\n", "from sklearn.compose import ColumnTransformer\n", "from sklearn.preprocessing import OrdinalEncoder, StandardScaler, PolynomialFeatures\n", "from sklearn.pipeline import Pipeline, FeatureUnion\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.feature_extraction.text import CountVectorizer, TfidfTransformer\n", "from matplotlib import pyplot as plt" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "import torch" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "X[\"time\"] = pd.to_datetime(X[\"intime\"])\n", "X[\"time\"] = X[\"time\"].dt.hour*3600+X[\"time\"].dt.minute*60\n", "#X[\"temperature\"] = ((X[\"temperature\"]-32)*(5/9))-37 # On prend 37 comme norme\n", "#X[\"heartrate\"] = X[\"heartrate\"]-80\n", "#X[\"resprate\"] = X[\"resprate\"]-18\n", "#X[\"o2sat\"] = X[\"o2sat\"]-100\n", "#X[\"sbp\"] = X[\"sbp\"]-120\n", "#X[\"dbp\"] = X[\"dbp\"]-80" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "IonoC\n", "0 AxesSubplot(0.125,0.125;0.775x0.755)\n", "1 AxesSubplot(0.125,0.125;0.775x0.755)\n", "Name: age, dtype: object" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pd.merge(\n", " X,\n", " y,\n", " left_on=\"stay_id\",\n", " right_on=\"stay_id\"\n", ").groupby('IonoC')[\"age\"].plot(kind='kde')" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "X.loc[(X[\"temperature\"] >= 107),\"temperature\"] = 107" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "X[\"temperature_norm\"] = (X[\"temperature\"]-X[\"temperature\"].mean())/(X[\"temperature\"].max()-X[\"temperature\"].min())\n", "ax = plt.subplot()\n", "pd.merge(\n", " X,\n", " y,\n", " left_on=\"stay_id\",\n", " right_on=\"stay_id\"\n", ").groupby('IonoC')[\"temperature_norm\"].plot(kind='kde', ax=ax)\n", "ax.set_xlim(-0.1, 0.1)\n", "ax.legend()" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
stay_idintimegenderagetemperatureheartrateresprateo2satsbpdbppainchiefcomplaintlast_7last_30icd9icd10gsntimetemperature_norm
0300000122126-02-14 20:22:00F6598.896.018.093.0160.054.00.0CHANGE IN MENTAL STATUS0.01.0[2761, 4589, 5712, 5990, 7804]NaN[8209, 21413, 2510, 27462, 66295, 6818, 6818, ...733200.007457
1300000172185-06-18 11:51:00M39NaN73.018.097.0156.0112.00.0ETOH, Unable to ambulate1.01.0[07070, 30300, V600]NaNNaN42660NaN
2300000382152-12-07 16:37:00F8097.154.018.095.0143.073.00.0CoughNaNNaN[9221, 92231, 92232, 95901, E8889]NaN[16925, 15864, 16278, 17037, 17037, 21413, 289...59820-0.008446
3300000392165-10-06 11:47:00M8098.685.016.098.0189.096.00.0s/p FallNaNNaNNaNNaN[8209, 19293]424200.005586
4300000552155-07-18 17:03:00F6399.485.016.0100.0NaNNaN0.0L Ear painNaNNaN[3804]NaN[8182]613800.013070
............................................................
448967399999392155-08-04 11:15:00M5798.484.016.097.0152.090.02.0Chest painNaNNaNNaNNaN[8182, 16578, 22159, 22159, 27475, 27475]405000.003715
448968399999532152-06-22 14:08:00F3698.2108.018.0100.0155.094.05.0Palpitations, Dizziness, HeadacheNaNNaNNaNNaN[6655]508800.001844
448969399999612145-05-16 17:16:00F5599.3119.022.0NaN132.074.07.0Chest pain, Cough, Dyspnea0.01.0[4019, 7295, 7820, 78909, E9208][C50919, H6692, I10, L308, L538, R112, R29810,...[16927, 16995, 16995, 13109, 2173, 2169, 18368...621600.012134
448970399999642130-06-05 11:53:00M5098.664.018.099.0127.064.04.0SI, Depression0.01.0[71946, 7242, 78659, 9221, 92231, 92411, 95901...[F329, H5711, M25561, M549, M79662, R45851, R5...[44633, 44633, 4561, 4561, 4561, 4540, 4540]427800.005586
448971399999652125-09-14 00:46:00F3097.565.016.0100.0132.077.00.0LaborNaNNaNNaNNaNNaN2760-0.004704
\n", "

448972 rows × 19 columns

\n", "
" ], "text/plain": [ " stay_id intime gender age temperature heartrate \\\n", "0 30000012 2126-02-14 20:22:00 F 65 98.8 96.0 \n", "1 30000017 2185-06-18 11:51:00 M 39 NaN 73.0 \n", "2 30000038 2152-12-07 16:37:00 F 80 97.1 54.0 \n", "3 30000039 2165-10-06 11:47:00 M 80 98.6 85.0 \n", "4 30000055 2155-07-18 17:03:00 F 63 99.4 85.0 \n", "... ... ... ... ... ... ... \n", "448967 39999939 2155-08-04 11:15:00 M 57 98.4 84.0 \n", "448968 39999953 2152-06-22 14:08:00 F 36 98.2 108.0 \n", "448969 39999961 2145-05-16 17:16:00 F 55 99.3 119.0 \n", "448970 39999964 2130-06-05 11:53:00 M 50 98.6 64.0 \n", "448971 39999965 2125-09-14 00:46:00 F 30 97.5 65.0 \n", "\n", " resprate o2sat sbp dbp pain \\\n", "0 18.0 93.0 160.0 54.0 0.0 \n", "1 18.0 97.0 156.0 112.0 0.0 \n", "2 18.0 95.0 143.0 73.0 0.0 \n", "3 16.0 98.0 189.0 96.0 0.0 \n", "4 16.0 100.0 NaN NaN 0.0 \n", "... ... ... ... ... ... \n", "448967 16.0 97.0 152.0 90.0 2.0 \n", "448968 18.0 100.0 155.0 94.0 5.0 \n", "448969 22.0 NaN 132.0 74.0 7.0 \n", "448970 18.0 99.0 127.0 64.0 4.0 \n", "448971 16.0 100.0 132.0 77.0 0.0 \n", "\n", " chiefcomplaint last_7 last_30 \\\n", "0 CHANGE IN MENTAL STATUS 0.0 1.0 \n", "1 ETOH, Unable to ambulate 1.0 1.0 \n", "2 Cough NaN NaN \n", "3 s/p Fall NaN NaN \n", "4 L Ear pain NaN NaN \n", "... ... ... ... \n", "448967 Chest pain NaN NaN \n", "448968 Palpitations, Dizziness, Headache NaN NaN \n", "448969 Chest pain, Cough, Dyspnea 0.0 1.0 \n", "448970 SI, Depression 0.0 1.0 \n", "448971 Labor NaN NaN \n", "\n", " icd9 \\\n", "0 [2761, 4589, 5712, 5990, 7804] \n", "1 [07070, 30300, V600] \n", "2 [9221, 92231, 92232, 95901, E8889] \n", "3 NaN \n", "4 [3804] \n", "... ... \n", "448967 NaN \n", "448968 NaN \n", "448969 [4019, 7295, 7820, 78909, E9208] \n", "448970 [71946, 7242, 78659, 9221, 92231, 92411, 95901... \n", "448971 NaN \n", "\n", " icd10 \\\n", "0 NaN \n", "1 NaN \n", "2 NaN \n", "3 NaN \n", "4 NaN \n", "... ... \n", "448967 NaN \n", "448968 NaN \n", "448969 [C50919, H6692, I10, L308, L538, R112, R29810,... \n", "448970 [F329, H5711, M25561, M549, M79662, R45851, R5... \n", "448971 NaN \n", "\n", " gsn time \\\n", "0 [8209, 21413, 2510, 27462, 66295, 6818, 6818, ... 73320 \n", "1 NaN 42660 \n", "2 [16925, 15864, 16278, 17037, 17037, 21413, 289... 59820 \n", "3 [8209, 19293] 42420 \n", "4 [8182] 61380 \n", "... ... ... \n", "448967 [8182, 16578, 22159, 22159, 27475, 27475] 40500 \n", "448968 [6655] 50880 \n", "448969 [16927, 16995, 16995, 13109, 2173, 2169, 18368... 62160 \n", "448970 [44633, 44633, 4561, 4561, 4561, 4540, 4540] 42780 \n", "448971 NaN 2760 \n", "\n", " temperature_norm \n", "0 0.007457 \n", "1 NaN \n", "2 -0.008446 \n", "3 0.005586 \n", "4 0.013070 \n", "... ... \n", "448967 0.003715 \n", "448968 0.001844 \n", "448969 0.012134 \n", "448970 0.005586 \n", "448971 -0.004704 \n", "\n", "[448972 rows x 19 columns]" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plt.subplot()\n", "pd.merge(\n", " X,\n", " y,\n", " left_on=\"stay_id\",\n", " right_on=\"stay_id\"\n", ").groupby('IonoC')[\"heartrate\"].plot(kind='kde', ax=ax)\n", "ax.set_xlim(0, 150)\n", "ax.legend()" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plt.subplot()\n", "pd.merge(\n", " X,\n", " y,\n", " left_on=\"stay_id\",\n", " right_on=\"stay_id\"\n", ").groupby('IonoC')[\"resprate\"].plot(kind='kde', ax=ax)\n", "ax.set_xlim(0, 30)\n", "ax.legend()" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plt.subplot()\n", "pd.merge(\n", " X,\n", " y,\n", " left_on=\"stay_id\",\n", " right_on=\"stay_id\"\n", ").groupby('IonoC')[\"o2sat\"].plot(kind='kde', ax=ax)\n", "ax.set_xlim(60, 100)\n", "ax.legend()" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plt.subplot()\n", "pd.merge(\n", " X,\n", " y,\n", " left_on=\"stay_id\",\n", " right_on=\"stay_id\"\n", ").groupby('IonoC')[\"sbp\"].plot(kind='kde', ax=ax)\n", "ax.set_xlim(0, 300)\n", "ax.legend()" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plt.subplot()\n", "pd.merge(\n", " X,\n", " y,\n", " left_on=\"stay_id\",\n", " right_on=\"stay_id\"\n", ").groupby('IonoC')[\"dbp\"].plot(kind='kde', ax=ax)\n", "ax.set_xlim(0, 200)\n", "ax.legend()" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [], "source": [ "pd.merge(\n", " X,\n", " y,\n", " left_on=\"stay_id\",\n", " right_on=\"stay_id\"\n", ")[[\"IonoC\",\"last_7\"]].fillna(0).groupby('IonoC')[\"last_7\"].plot.bar()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "pd.merge(\n", " X,\n", " y,\n", " left_on=\"stay_id\",\n", " right_on=\"stay_id\"\n", ")[[\"IonoC\",\"last_7\"]].fillna(0).groupby('IonoC')[\"last_30\"].plot.bar()" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plt.subplot()\n", "pd.merge(\n", " X,\n", " y,\n", " left_on=\"stay_id\",\n", " right_on=\"stay_id\"\n", ").groupby('IonoC')[\"pain\"].plot(kind='kde', ax=ax)\n", "ax.set_xlim(0, 20)\n", "ax.legend()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=42)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "categorical_features = [\n", " \"gender\",\n", " \"last_7\",\n", " \"last_30\"\n", "]\n", "\n", "continuous_features = [\n", " \"pain\",\n", " \"time\",\n", " \"age\",\n", " \"temperature\",\n", " \"heartrate\",\n", " \"resprate\",\n", " \"o2sat\",\n", " \"sbp\",\n", " \"dbp\"\n", "]+X_train.columns[14:-1].tolist()\n", "\n", "continuous_features = [\n", " \"pain\",\n", " \"time\",\n", " \"age\",\n", " \"temperature\",\n", " \"heartrate\",\n", " \"resprate\",\n", " \"o2sat\",\n", " \"sbp\",\n", " \"dbp\"\n", "]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "features_preprocessing = ColumnTransformer([\n", " (\"binary_encoder\", OrdinalEncoder(), categorical_features),\n", " (\"identity\", StandardScaler(), continuous_features),\n", " (\"missing\", MissingIndicator(), continuous_features),\n", " (\"nlp\", Pipeline([\n", " (\"cv\", CountVectorizer(ngram_range=(1,1), max_features=200)),\n", " (\"tf-idf\", TfidfTransformer())\n", " ]), \"chiefcomplaint\"),\n", "])\n", "\n", "features_preprocessing_without_nlp = ColumnTransformer([\n", " (\"binary_encoder\", OrdinalEncoder(), categorical_features),\n", " (\"identity\", StandardScaler(), continuous_features),\n", " (\"missing\", MissingIndicator(), continuous_features)\n", "])\n", "\n", "full_preprocessing = Pipeline([\n", " (\"features\", features_preprocessing_without_nlp),\n", " (\"imputer\", SimpleImputer(strategy=\"median\"))\n", "])\n", "\n", "pipeline = Pipeline([\n", " (\"preprocessing\", full_preprocessing),\n", " (\"mlp\", MLPClassifier(hidden_layer_sizes=(100,20), verbose=True, learning_rate_init=1e-3, batch_size=64, max_iter=100))\n", "])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "preprocesser = full_preprocessing.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from transformers import BertTokenizer, BertModel\n", "import pickle\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bert_name = \"dmis-lab/biobert-v1.1\"\n", "drug_name = \"./models/ATC_2\"\n", "\n", "biobert_tokenizer = BertTokenizer.from_pretrained(bert_name)\n", "\n", "with open(drug_name+\"_encoder.model\", \"rb\") as f:\n", " drug_encoder = pickle.load(f)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#drug_columns = X_train.columns[14:-1]\n", "\n", "#columns_id = drug_encoder.transform(\n", "# np.expand_dims(np.array(X_train[drug_columns].columns), 1)\n", "#).flatten().astype(\"int32\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def get_drug_token_list (df):\n", "\n", " df_drug_tokens = (df[drug_columns] >= 1)*1\n", " df_drug_tokens = df_drug_tokens.rename(columns=dict(zip(drug_columns, columns_id)))\n", "\n", " df_drug_tokens_list = (df_drug_tokens*(df_drug_tokens.columns+1)).apply(lambda x: list(set(x.tolist()))[1:], axis=1) \\\n", " .tolist()\n", "\n", " df_drug_tokens_list = [torch.tensor(x)-1 for x in df_drug_tokens_list]\n", "\n", " return df_drug_tokens_list" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "X_train_preprocess = torch.tensor(preprocesser.transform(X_train), dtype=torch.float32)\n", "X_train_tokens = biobert_tokenizer(X_train[\"chiefcomplaint\"].tolist())[\"input_ids\"]\n", "#X_train_tokens_drug = get_drug_token_list(X_train)\n", "y_train_preprocess = torch.tensor(y_train.iloc[:,1:].values, dtype=torch.float32)\n", "X_test_preprocess = torch.tensor(preprocesser.transform(X_test), dtype=torch.float32)\n", "X_test_tokens = biobert_tokenizer(X_test[\"chiefcomplaint\"].tolist())[\"input_ids\"]\n", "#X_test_tokens_drug = get_drug_token_list(X_test)\n", "y_test_preprocess = torch.tensor(y_test.iloc[:,1:].values, dtype=torch.float32)\n", "X_train_tokens = [torch.tensor(x) for x in X_train_tokens]\n", "X_test_tokens = [torch.tensor(x) for x in X_test_tokens]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from torch import nn, optim\n", "from torch.nn.utils.rnn import pad_sequence, pack_padded_sequence, pad_packed_sequence\n", "import torch\n", "import operator" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "class neural_net (nn.Module):\n", " def __init__(self, n_features, n_outputs, device=\"cpu\"):\n", " super().__init__()\n", "\n", " self.embedding_encoder = nn.Sequential(*[\n", " nn.Linear(768, 250),\n", " nn.ReLU(),\n", " nn.Linear(250, 50),\n", " nn.ReLU(),\n", " nn.Linear(50, 20),\n", " nn.ReLU()\n", " ])\n", "\n", " self.network = nn.Sequential(*[\n", " nn.Linear(n_features+20, 100),\n", " nn.ReLU(),\n", " nn.Linear(100, 50),\n", " nn.ReLU(),\n", " nn.Linear(50, n_outputs),\n", " nn.Sigmoid()\n", " ])\n", "\n", " self.biobert_model = BertModel.from_pretrained(bert_name).to(device)\n", " self.drug_embedding = torch.load(f\"{drug_name}_embedding.model\").to(device) \n", "\n", " for x in self.biobert_model.parameters():\n", " x.requires_grad = False\n", "\n", " #self.drug_embedding.requires_grad = True\n", " #self.biobert_model.embeddings.requires_grad = True\n", " \n", " #self.loss = nn.BCELoss(weight=torch.tensor(y_train.iloc[:,1:].mean().values))\n", " self.loss = nn.BCELoss()\n", " #self.loss = nn.MultiLabelSoftMarginLoss()\n", " #self.loss = nn.CrossEntropyLoss(weight=torch.tensor(y_train.iloc[:,1:].mean().values))\n", " self.optimizer = optim.Adam(self.parameters(), lr=1e-3)\n", "\n", " def forward(self, x):\n", " \n", " x_data = x[0]\n", " x_tokens = x[1]\n", " #x_drugs = x[2]\n", "\n", " x_bert = self.biobert_model.embeddings.word_embeddings(x_tokens)\n", " x_bert_mask = (x_tokens != 0).unsqueeze(2)*1\n", " x_bert = (x_bert*x_bert_mask).sum(axis=1)/x_bert_mask.sum(axis=1)\n", "\n", " #x_drugs_embeddings = self.drug_embedding(x_drugs)\n", " #x_drugs_embeddings_mask = (x_drugs != self.drug_embedding.weight.shape[0]-1).unsqueeze(2)*1\n", " #x_drugs_embeddings_mask = x_drugs_embeddings_mask + 1e-8\n", " #x_drugs_embeddings = (x_drugs_embeddings*x_drugs_embeddings_mask).sum(axis=1)/x_drugs_embeddings_mask.sum(axis=1)\n", "\n", " x_embedding_encoded = self.embedding_encoder(x_bert)\n", " x = torch.concat([x_data, x_embedding_encoded], axis=1)\n", "\n", " y_hat = self.network(x)\n", "\n", " return y_hat\n", " \n", " def fit(self, x, y):\n", " \n", " self.train()\n", " self.optimizer.zero_grad()\n", "\n", " y_hat = self.forward(x)\n", "\n", " loss = self.loss(y_hat, y)\n", "\n", " loss.backward()\n", " self.optimizer.step()\n", "\n", " return loss\n", "\n", " def last_hidden_layer (self, x):\n", " \n", " self.eval()\n", " \n", " with torch.no_grad(): \n", " x_data = x[0]\n", " x_tokens = x[1]\n", " #x_drugs = x[2]\n", "\n", " x_bert = self.biobert_model.embeddings.word_embeddings(x_tokens)\n", " x_bert_mask = (x_tokens != 0).unsqueeze(2)*1\n", " x_bert = (x_bert*x_bert_mask).sum(axis=1)/x_bert_mask.sum(axis=1)\n", "\n", " x_embedding_encoded = self.embedding_encoder(x_bert)\n", " x = torch.concat([x_data, x_embedding_encoded], axis=1)\n", "\n", " y_hat = network.network[:-3](x)\n", "\n", " return y_hat\n", "\n", " def predict(self, x):\n", " \n", " self.eval()\n", " \n", " with torch.no_grad(): \n", " y_hat = self.forward(x)\n", "\n", " return y_hat" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "device = \"cuda:0\"\n", "#device = \"cpu\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#network = neural_net(X_train_preprocess.shape[1], y_train_preprocess.shape[1], device=device)\n", "network = neural_net(X_train_preprocess.shape[1], 1, device=device)\n", "network = network.to(device)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from torch.utils.data import DataLoader\n", "from torchvision.ops.focal_loss import sigmoid_focal_loss\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "data_loader = DataLoader(range(X_train_preprocess.shape[0]), shuffle=True, batch_size=1024)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.691106379032135\n", "On test : precision = 0.5, recall = 0.00028876696505919725\n", "0.6006030204272507\n", "On test : precision = 0.7114660697934683, recall = 0.6731157955529887\n", "0.575636284564858\n", "On test : precision = 0.7091583562171797, recall = 0.7084416209452306\n", "0.5641533084882058\n", "On test : precision = 0.7105074026160701, recall = 0.7136875541438059\n", "Epoch 0 - loss : 0.5566418178473846\n", "0.5154001116752625\n", "On test : precision = 0.7277034414536367, recall = 0.6726826451054\n", "0.5331675112247467\n", "On test : precision = 0.7340632731483918, recall = 0.6711425546250842\n", "0.5320046168951252\n", "On test : precision = 0.7303906490310673, recall = 0.6856771585330638\n", "0.5311751908242108\n", "On test : precision = 0.7530828460603254, recall = 0.6260467802483396\n", "Epoch 1 - loss : 0.5314786310437359\n", "0.5191752910614014\n", "On test : precision = 0.7150190114068441, recall = 0.7240350370584272\n", "0.5276658352058713\n", "On test : precision = 0.7223930122480847, recall = 0.7124843584560593\n", "0.5285998987617777\n", "On test : precision = 0.7104558877814692, recall = 0.74102416016941\n", "0.5277084383457602\n", "On test : precision = 0.7457774871962515, recall = 0.6587737029550486\n", "Epoch 2 - loss : 0.5267519308796412\n", "0.5291849374771118\n", "On test : precision = 0.7194110920526015, recall = 0.7266820675714698\n", "0.5206360940886016\n", "On test : precision = 0.7333908980089394, recall = 0.6949177014149581\n", "0.5217355852992973\n", "On test : precision = 0.7369723210143807, recall = 0.688131677736067\n", "0.521929228622652\n", "On test : precision = 0.7239691845535152, recall = 0.7191259986524209\n", "Epoch 3 - loss : 0.5215651713594606\n", "0.5235981941223145\n", "On test : precision = 0.7369445013311489, recall = 0.6927519491770141\n", "0.5186061596516336\n", "On test : precision = 0.7351477607393114, recall = 0.696794686687843\n", "0.5180819096849926\n", "On test : precision = 0.7319912079128784, recall = 0.7052170565020695\n", "0.5182426832245037\n", "On test : precision = 0.7510562235944102, recall = 0.6673404562518048\n", "Epoch 4 - loss : 0.5190195072300826\n", "0.5245155096054077\n", "On test : precision = 0.7069435141772717, recall = 0.7619597651362018\n", "0.5169979248306539\n", "On test : precision = 0.7158938869665513, recall = 0.7467994994705939\n", "0.5154471167580998\n", "On test : precision = 0.7308615369544987, recall = 0.7181634421022235\n", "0.5157833989474464\n", "On test : precision = 0.7234719058466211, recall = 0.7337087303879103\n", "Epoch 5 - loss : 0.515931355500523\n", "0.4985155463218689\n", "On test : precision = 0.7207000093835038, recall = 0.7392915583790548\n", "0.5164604614866842\n", "On test : precision = 0.7275522459764593, recall = 0.7288478198094138\n", "0.5142399074129798\n", "On test : precision = 0.7449022055763629, recall = 0.6891904899412841\n", "0.5145066314163398\n", "On test : precision = 0.7475281552371384, recall = 0.6804312253344884\n", "Epoch 6 - loss : 0.5147569981556904\n", "0.49890613555908203\n", "On test : precision = 0.7430380398414578, recall = 0.6947251901049186\n", "0.5157188932494362\n", "On test : precision = 0.7427693882774508, recall = 0.6983347771681586\n", "0.5156954976160135\n", "On test : precision = 0.7385383567862006, recall = 0.7047357782269709\n", "0.515681599164722\n", "On test : precision = 0.74251832247557, recall = 0.7021368755414381\n", "Epoch 7 - loss : 0.5150245293786254\n", "0.49726372957229614\n", "On test : precision = 0.7318327350344426, recall = 0.7260564058138416\n", "0.513713940240369\n", "On test : precision = 0.7359238699444886, recall = 0.7146019828664935\n", "0.5135435411586097\n", "On test : precision = 0.7411841972314843, recall = 0.706083357397247\n", "0.5129304822299171\n", "On test : precision = 0.7369464967521198, recall = 0.7152757724516315\n", "Epoch 8 - loss : 0.5133467673500882\n", "0.5323821902275085\n", "On test : precision = 0.7329362366956352, recall = 0.7224949465781114\n", "0.510783731052191\n", "On test : precision = 0.7271386430678466, recall = 0.7355375878332852\n", "0.5100371665622464\n", "On test : precision = 0.7245657568238213, recall = 0.7448262585426894\n", "0.5103289775080063\n", "On test : precision = 0.7371029287873532, recall = 0.7158533063817499\n", "Epoch 9 - loss : 0.5115820087964021\n", "0.5278018712997437\n", "On test : precision = 0.7349821594408329, recall = 0.7236981422658582\n", "0.509880670521519\n", "On test : precision = 0.7158084914182475, recall = 0.7627298103763596\n", "0.5081589534804596\n", "On test : precision = 0.7391979949874686, recall = 0.7097410722879969\n", "0.5089700956677281\n", "On test : precision = 0.7339721762817395, recall = 0.7262007892963711\n", "Epoch 10 - loss : 0.5090479979032203\n", "0.519418478012085\n", "On test : precision = 0.7202764976958526, recall = 0.7522379439792087\n", "0.5076188123462224\n", "On test : precision = 0.7349367960257734, recall = 0.7191259986524209\n", "0.5096459284943727\n", "On test : precision = 0.7378349093774625, recall = 0.7210029839253056\n", "0.5096920878190139\n", "On test : precision = 0.7328155339805825, recall = 0.7265376840889403\n", "Epoch 11 - loss : 0.5086245969126496\n", "0.5080099105834961\n", "On test : precision = 0.7295591469828823, recall = 0.7343343921455385\n", "0.5070724266000314\n", "On test : precision = 0.7358842285994603, recall = 0.721965540475503\n", "0.5059742887518299\n", "On test : precision = 0.7328332930075006, recall = 0.7288478198094138\n", "0.5064577097908602\n", "On test : precision = 0.7308452673706544, recall = 0.7294734815670421\n", "Epoch 12 - loss : 0.5078333315970023\n", "0.49358904361724854\n", "On test : precision = 0.7290276453765491, recall = 0.7361151217634035\n", "0.5067540569470661\n", "On test : precision = 0.7323598635861472, recall = 0.73380498604293\n", "0.5065122897648693\n", "On test : precision = 0.7542148234545647, recall = 0.6846664741553566\n", "0.5084922199827492\n", "On test : precision = 0.7233796296296297, recall = 0.7519973048416595\n", "Epoch 13 - loss : 0.5075114444086823\n", "0.49666109681129456\n", "On test : precision = 0.7252100840336134, recall = 0.7476176725382616\n", "0.5051100498969012\n", "On test : precision = 0.7369399334768147, recall = 0.7250938492636443\n", "0.5057181871649045\n", "On test : precision = 0.7466612294831277, recall = 0.7049764173645202\n", "0.5072105418011992\n", "On test : precision = 0.7283676553939165, recall = 0.7421792280296468\n", "Epoch 14 - loss : 0.5062240871447551\n", "0.5191906690597534\n", "On test : precision = 0.7395544554455445, recall = 0.7189816151698912\n", "0.504310804723513\n", "On test : precision = 0.7552971164569061, recall = 0.684522090672827\n", "0.5053237096883765\n", "On test : precision = 0.7340909090909091, recall = 0.7306285494272788\n", "0.5062640938053892\n", "On test : precision = 0.736219124480313, recall = 0.7244200596785061\n", "Epoch 15 - loss : 0.5053795011737678\n", "0.4989502429962158\n", "On test : precision = 0.7325291977790542, recall = 0.7365482722109924\n", "0.5064039799836603\n", "On test : precision = 0.7364736765349278, recall = 0.729136586774473\n", "0.505478177497636\n", "On test : precision = 0.7345682005527808, recall = 0.7290884589469632\n", "0.5045830322262457\n", "On test : precision = 0.7247833943381365, recall = 0.7528636057368371\n", "Epoch 16 - loss : 0.5043610495102556\n", "0.4920410215854645\n", "On test : precision = 0.7243070658460969, recall = 0.7533448840119357\n", "0.5003653608336307\n", "On test : precision = 0.7195271096616388, recall = 0.7645105399942247\n", "0.5010813141047065\n", "On test : precision = 0.7379865508270751, recall = 0.7236018866108384\n", "0.5018343973991483\n", "On test : precision = 0.7353953556018811, recall = 0.7300510154971604\n", "Epoch 17 - loss : 0.5035921111137052\n", "0.4888218641281128\n", "On test : precision = 0.7268319970165952, recall = 0.7504090865338339\n", "0.5015489895745079\n", "On test : precision = 0.7332950136513867, recall = 0.7367889113485417\n", "0.5033437172275278\n", "On test : precision = 0.7282874905802562, recall = 0.7442005967850611\n", "0.5026719430554348\n", "On test : precision = 0.7377786468517794, recall = 0.7263451727789008\n", "Epoch 18 - loss : 0.5028010086168216\n", "0.5066063404083252\n", "On test : precision = 0.7345524542829643, recall = 0.7346231591105977\n", "0.5018388912229255\n", "On test : precision = 0.719209142027934, recall = 0.763307344306478\n", "0.5002150563754846\n", "On test : precision = 0.7373129950132004, recall = 0.7258157666762922\n", "0.5022425656500845\n", "On test : precision = 0.7278510838831291, recall = 0.7433342958898835\n", "Epoch 19 - loss : 0.5019486363175549\n", "0.47926339507102966\n", "On test : precision = 0.7323501427212179, recall = 0.7408797766868803\n", "0.49971008772897246\n", "On test : precision = 0.7300813777441333, recall = 0.7426605063047454\n", "0.5002152393409862\n", "On test : precision = 0.7273622970817303, recall = 0.7461257098854558\n", "0.5013288241684238\n", "On test : precision = 0.7416225313072315, recall = 0.7210992395803253\n", "Epoch 20 - loss : 0.5008858129193511\n", "0.5151246786117554\n", "On test : precision = 0.735239852398524, recall = 0.728799691981904\n", "0.4983244101599892\n", "On test : precision = 0.7248408818374689, recall = 0.7563769371450573\n", "0.4970505050758817\n", "On test : precision = 0.730860225229488, recall = 0.7433824237173934\n", "0.49717872661609586\n", "On test : precision = 0.7449337881219904, recall = 0.714746366349023\n", "Epoch 21 - loss : 0.49780065651181377\n", "0.48739099502563477\n", "On test : precision = 0.7354018115243784, recall = 0.7346231591105977\n", "0.49334852795789735\n", "On test : precision = 0.7303307264675398, recall = 0.7460775820579459\n", "0.49463323218312427\n", "On test : precision = 0.7429808841099164, recall = 0.7183078255847531\n", "0.49579841146041387\n", "On test : precision = 0.7449392712550608, recall = 0.7084416209452306\n", "Epoch 22 - loss : 0.4965084141568293\n", "0.4926077127456665\n", "On test : precision = 0.7217624590760277, recall = 0.7639330060641063\n", "0.49502673007474085\n", "On test : precision = 0.7273743537193162, recall = 0.7515641543940706\n", "0.4956098737111732\n", "On test : precision = 0.7344678811121764, recall = 0.7373664452786601\n", "0.4958594325570965\n", "On test : precision = 0.7506115014311736, recall = 0.6941476561748002\n", "Epoch 23 - loss : 0.495923723374741\n", "0.47399887442588806\n", "On test : precision = 0.7381651017214398, recall = 0.7264414284339205\n", "0.4940861616984452\n", "On test : precision = 0.7452663468821005, recall = 0.7103667340456252\n", "0.49426327445613805\n", "On test : precision = 0.7333174224343676, recall = 0.7393878140340745\n", "0.4953075092892314\n", "On test : precision = 0.7655076495132128, recall = 0.662238906535759\n", "Epoch 24 - loss : 0.4953661680221558\n", "0.5228779315948486\n", "On test : precision = 0.7442258340461934, recall = 0.7118105688709212\n", "0.4923725653402876\n", "On test : precision = 0.7376028030561098, recall = 0.7294734815670421\n", "0.4930079595663061\n", "On test : precision = 0.7340628882729618, recall = 0.7392915583790548\n", "0.49445695774103715\n", "On test : precision = 0.7341409901745684, recall = 0.7407835210318606\n", "Epoch 25 - loss : 0.49466084581387193\n", "0.46513304114341736\n", "On test : precision = 0.7360903344110409, recall = 0.7341418808354991\n", "0.49388582281547017\n", "On test : precision = 0.7195767195767195, recall = 0.765809991336991\n", "0.49362160183897064\n", "On test : precision = 0.7461990675045611, recall = 0.7086341322552699\n", "0.49338837715478434\n", "On test : precision = 0.7481032639136412, recall = 0.7070940417749543\n", "Epoch 26 - loss : 0.49349285349061217\n", "0.4880646765232086\n", "On test : precision = 0.7410621825533803, recall = 0.7232649918182693\n", "0.49176528194163105\n", "On test : precision = 0.7345693837360103, recall = 0.7360188661083839\n", "0.49261100775566863\n", "On test : precision = 0.7456571944974395, recall = 0.7147944941765328\n", "0.49288865616947314\n", "On test : precision = 0.7505957931820537, recall = 0.6972759649629415\n", "Epoch 27 - loss : 0.4931577115873747\n", "0.47572997212409973\n", "On test : precision = 0.7506438652518801, recall = 0.7013668303012802\n", "0.49050306595198\n", "On test : precision = 0.7380428941325907, recall = 0.7270670901915488\n", "0.4920397731498699\n", "On test : precision = 0.7261525681849647, recall = 0.7572913658677447\n", "0.492620616260161\n", "On test : precision = 0.7270705947748749, recall = 0.75541438059486\n", "Epoch 28 - loss : 0.4932937731471243\n", "0.5012404918670654\n", "On test : precision = 0.7346705417123255, recall = 0.7421311002021369\n", "0.4935308385013354\n", "On test : precision = 0.7320115733055068, recall = 0.7427567619597651\n", "0.4925164138499777\n", "On test : precision = 0.7216824049997719, recall = 0.7613822312060834\n", "0.4938466421195439\n", "On test : precision = 0.750325436084353, recall = 0.693521994417172\n", "Epoch 29 - loss : 0.4946022235894505\n", "0.4953339099884033\n", "On test : precision = 0.7297094305966296, recall = 0.7481470786408702\n", "0.49041805763055785\n", "On test : precision = 0.7502446561936646, recall = 0.7010299355087112\n", "0.4931423207420615\n", "On test : precision = 0.7352813956841447, recall = 0.736307633073443\n", "0.4925843425763406\n", "On test : precision = 0.7460094368035338, recall = 0.7152757724516315\n", "Epoch 30 - loss : 0.4933103129833559\n", "0.5755341053009033\n", "On test : precision = 0.7485953621411788, recall = 0.7053614399845991\n", "0.4932693898087681\n", "On test : precision = 0.7366245136186771, recall = 0.7288959476369237\n", "0.49100364855865936\n", "On test : precision = 0.7430106457068948, recall = 0.7188372316873616\n", "0.49268141141365535\n", "On test : precision = 0.7314221048660883, recall = 0.7465588603330445\n", "Epoch 31 - loss : 0.49313025632991064\n", "0.46600431203842163\n", "On test : precision = 0.7224534601838722, recall = 0.7601790355183367\n", "0.4903270124208809\n", "On test : precision = 0.7441521203279843, recall = 0.7119549523534507\n", "0.49055656909349543\n", "On test : precision = 0.7316389548693587, recall = 0.7412166714794494\n", "0.492653287625392\n", "On test : precision = 0.7404246971703202, recall = 0.72663393974396\n", "Epoch 32 - loss : 0.4919591864453086\n", "0.4467436969280243\n", "On test : precision = 0.7414435618319114, recall = 0.7277408797766869\n", "0.4866951137486071\n", "On test : precision = 0.7230283334096215, recall = 0.7602271633458466\n", "0.4884573491058539\n", "On test : precision = 0.735220368405825, recall = 0.73380498604293\n", "0.49062324639570676\n", "On test : precision = 0.7195598472939592, recall = 0.7710559245355665\n", "Epoch 33 - loss : 0.49098759293556216\n", "0.4772811532020569\n", "On test : precision = 0.7395291809710642, recall = 0.7257195110212725\n", "0.4887826596156205\n", "On test : precision = 0.7256522142790828, recall = 0.7523341996342285\n", "0.49171305325493886\n", "On test : precision = 0.728898459809934, recall = 0.7493502743286168\n", "0.49049466204801667\n", "On test : precision = 0.7414505450744189, recall = 0.7168639907594572\n", "Epoch 34 - loss : 0.49134464648705495\n", "0.48381781578063965\n", "On test : precision = 0.7229911835914302, recall = 0.7617191259986524\n", "0.49350475320721615\n", "On test : precision = 0.7532263963634463, recall = 0.6938107613822312\n", "0.4918556806459949\n", "On test : precision = 0.7408834865105247, recall = 0.7216286456829338\n", "0.4905527135066416\n", "On test : precision = 0.735855421686747, recall = 0.7348637982481471\n", "Epoch 35 - loss : 0.49083545019355\n", "0.50368332862854\n", "On test : precision = 0.7351413733410271, recall = 0.7357782269708345\n", "0.490445864082563\n", "On test : precision = 0.7325553703262682, recall = 0.7402059871017422\n", "0.48895341009642945\n", "On test : precision = 0.742154915590864, recall = 0.7193666377899701\n", "0.4895016640127695\n", "On test : precision = 0.7154373775164796, recall = 0.7730772932909808\n", "Epoch 36 - loss : 0.49018767596800117\n", "0.4943732023239136\n", "On test : precision = 0.741195092995647, recall = 0.7211473674078352\n", "0.48728429179380434\n", "On test : precision = 0.7321445599313435, recall = 0.7390509192415055\n", "0.4889129802065702\n", "On test : precision = 0.7385675200312684, recall = 0.7275483684666474\n", "0.4895449759952254\n", "On test : precision = 0.7478923311325546, recall = 0.7087303879102897\n", "Epoch 37 - loss : 0.4894779199286352\n", "0.5134391784667969\n", "On test : precision = 0.7131474103585658, recall = 0.7753393011839446\n", "0.48750126656919424\n", "On test : precision = 0.7298979687353739, recall = 0.7505534700163634\n", "0.4876820467301269\n", "On test : precision = 0.7359180335754486, recall = 0.736307633073443\n", "0.48870848401440337\n", "On test : precision = 0.7342398616182971, recall = 0.7354413321782655\n", "Epoch 38 - loss : 0.4888177595561064\n", "0.5162264704704285\n", "On test : precision = 0.7294762998734118, recall = 0.7488208682260082\n", "0.4837004595463819\n", "On test : precision = 0.7297081355454247, recall = 0.7472326499181827\n", "0.4879101812839508\n", "On test : precision = 0.7376440711076382, recall = 0.7269227067090192\n", "0.4885243367515133\n", "On test : precision = 0.7336136059621632, recall = 0.7390509192415055\n", "Epoch 39 - loss : 0.48852996003778676\n", "0.4767839014530182\n", "On test : precision = 0.7173160756819918, recall = 0.7681682548849745\n", "0.48714618989736724\n", "On test : precision = 0.7371397922863133, recall = 0.7275964962941572\n", "0.48659720883440616\n", "On test : precision = 0.7303243472923847, recall = 0.7444893637501203\n", "0.4855928495278786\n", "On test : precision = 0.7257344737820751, recall = 0.7513716430840311\n", "Epoch 40 - loss : 0.4853414050385922\n", "0.4991248846054077\n", "On test : precision = 0.7392603477834925, recall = 0.7263451727789008\n", "0.4837396457643792\n", "On test : precision = 0.7260178471834914, recall = 0.75180479353162\n", "0.4851182410076483\n", "On test : precision = 0.7457893668831169, recall = 0.7075271922225431\n", "0.4848854331875164\n", "On test : precision = 0.7241426737575647, recall = 0.7601790355183367\n", "Epoch 41 - loss : 0.48461107302315626\n", "0.4812166690826416\n", "On test : precision = 0.7516588652847076, recall = 0.7032919434016749\n", "0.4824957245647317\n", "On test : precision = 0.7348794687966126, recall = 0.7350563095581866\n", "0.48231442339384734\n", "On test : precision = 0.7364314789687924, recall = 0.7313985946674367\n", "0.48301191365600027\n", "On test : precision = 0.7260126936718313, recall = 0.7487246125709885\n", "Epoch 42 - loss : 0.48370890670184846\n", "0.4642280340194702\n", "On test : precision = 0.7284904688304997, recall = 0.7485802290884589\n", "0.4810808053111086\n", "On test : precision = 0.7414962618210625, recall = 0.7207623447877562\n", "0.4822801913491529\n", "On test : precision = 0.7300451807228916, recall = 0.7465588603330445\n", "0.4838001663700687\n", "On test : precision = 0.7426664674535585, recall = 0.7176821638271248\n", "Epoch 43 - loss : 0.4833500043500828\n", "0.48344671726226807\n", "On test : precision = 0.7282776710852967, recall = 0.7482914621233997\n", "0.47828448113828603\n", "On test : precision = 0.7443261699136373, recall = 0.7134469150062566\n", "0.47993328796690377\n", "On test : precision = 0.7382389011528084, recall = 0.7242756761959765\n", "0.482173868984083\n", "On test : precision = 0.7241951849460382, recall = 0.7557031475599192\n", "Epoch 44 - loss : 0.48240686473967154\n", "0.4691382050514221\n", "On test : precision = 0.7398253662868137, recall = 0.7217730291654635\n", "0.4799038248487038\n", "On test : precision = 0.7180549302116164, recall = 0.7675425931273462\n", "0.48127377181503905\n", "On test : precision = 0.7440377566902646, recall = 0.7132062758687073\n", "0.48116818308038173\n", "On test : precision = 0.7240358827337464, recall = 0.753585523149485\n", "Epoch 45 - loss : 0.4820579810233056\n", "0.4957138001918793\n", "On test : precision = 0.7318316030098104, recall = 0.739580325344114\n", "0.4815530251748491\n", "On test : precision = 0.7397954165437198, recall = 0.7239869092309174\n", "0.4814220647610242\n", "On test : precision = 0.7348794687966126, recall = 0.7350563095581866\n", "0.4813806482921803\n", "On test : precision = 0.7248872111223644, recall = 0.7578207719703532\n", "Epoch 46 - loss : 0.48105589106113095\n", "0.4731432795524597\n", "On test : precision = 0.7445958763915931, recall = 0.7178265473096545\n", "0.47872081457978427\n", "On test : precision = 0.7366201279813845, recall = 0.7313023390124169\n", "0.4795397832915558\n", "On test : precision = 0.72129574633344, recall = 0.7597940128982578\n", "0.4801403841505019\n", "On test : precision = 0.7380836100800938, recall = 0.727355857156608\n", "Epoch 47 - loss : 0.48055834536310993\n", "0.47339731454849243\n", "On test : precision = 0.7346831070383342, recall = 0.7369814226585812\n", "0.4796473847167327\n", "On test : precision = 0.738722447583207, recall = 0.7274521128116277\n", "0.4792541035668767\n", "On test : precision = 0.735829812035553, recall = 0.729136586774473\n", "0.4792395104403512\n", "On test : precision = 0.7345323741007195, recall = 0.7370776783136009\n", "Epoch 48 - loss : 0.479706547079207\n", "0.45964089035987854\n", "On test : precision = 0.7396514161220044, recall = 0.7189334873423814\n", "0.4777260641060253\n", "On test : precision = 0.7351035016444186, recall = 0.7314948503224564\n", "0.4780597803901084\n", "On test : precision = 0.7253739637845598, recall = 0.7538261622870344\n", "0.4789733001560072\n", "On test : precision = 0.7376690339527191, recall = 0.729858504187121\n", "Epoch 49 - loss : 0.4793024491660203\n" ] } ], "source": [ "n_epochs = 50\n", "n_epoch_print = 1\n", "n_batch_print = 100\n", "\n", "for i in range(n_epochs):\n", "\n", " losses = []\n", "\n", " j = 0\n", " for indices in data_loader:\n", " X_tensor = X_train_preprocess[indices,:].to(device)\n", " X_train_tokens_indices = list(operator.itemgetter(*indices)(X_train_tokens))\n", " X_train_tokens_indices = pad_sequence(X_train_tokens_indices, batch_first=True, padding_value=biobert_tokenizer(\"[PAD]\")[\"input_ids\"][1]).to(device)\n", " #X_train_drug_tokens_indices = list(operator.itemgetter(*indices)(X_train_tokens_drug))\n", " #X_train_drug_tokens_indices = pad_sequence(X_train_drug_tokens_indices, batch_first=True, padding_value=len(drug_encoder.categories_[0])).to(device)\n", " #X_train_drug_tokens_indices = X_train_drug_tokens_indices.int()\n", "\n", " y_tensor = y_train_preprocess[indices,5].unsqueeze(1).to(device)\n", " #y_tensor = y_train_preprocess[indices,:].to(device)\n", "\n", " loss = network.fit((X_tensor, X_train_tokens_indices), y_tensor).detach().cpu().item()\n", "\n", " losses.append(loss)\n", "\n", " if j%n_batch_print == 0:\n", " print(np.array(losses).mean())\n", "\n", " y_test_hat, y_true = get_test_evaluation(X_test_preprocess, X_test_tokens)\n", " prec = precision_score(y_true, y_test_hat, zero_division=0)\n", " rec = recall_score(y_true, y_test_hat, zero_division=0)\n", " \n", " print(f\"On test : precision = {prec}, recall = {rec}\")\n", "\n", " j += 1\n", "\n", " if (i%n_epoch_print) == 0:\n", " mean_loss = np.array(losses).mean()\n", " print(f\"Epoch {i} - loss : {mean_loss}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Analyse des faux positifs" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "y_hats = []\n", "y_val = []\n", "\n", "data_loader_noshuffle = DataLoader(range(X_train_preprocess.shape[0]), shuffle=False, batch_size=1024)\n", "\n", "for indices in data_loader_noshuffle:\n", " X_tensor = X_train_preprocess[indices,:].to(device)\n", " X_train_tokens_indices = list(operator.itemgetter(*indices)(X_train_tokens))\n", " X_train_tokens_indices = pad_sequence(X_train_tokens_indices, batch_first=True, padding_value=biobert_tokenizer(\"[PAD]\")[\"input_ids\"][1]).to(device)\n", "\n", " y_hats.append(\n", " network.predict((X_tensor, X_train_tokens_indices)).detach().cpu()\n", " )\n", " y_val.append(y_train_preprocess[indices,5])\n", "\n", "y_hat = np.concatenate(y_hats)\n", "y_val = np.concatenate(y_val)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fp = (y_hat >= 0.65)*1 & ((y_val == 0)*1).reshape(-1, 1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "416252 UNRESPPONSIVE\n", "441947 Abd pain, Abnormal CT, Transfer\n", "189529 Chest pain, Palpitations, ILI\n", "240265 Weakness, Transfer\n", "291786 Hallucinations\n", " ... \n", "252801 s/p Fall\n", "239629 Abd pain\n", "278167 Hyperglycemia, Weakness\n", "137337 Wound eval\n", "131932 s/p Fall, R Hip pain\n", "Name: chiefcomplaint, Length: 24690, dtype: string" ] }, "execution_count": 206, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train.iloc[np.where(fp == 1)[0],:][\"chiefcomplaint\"]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "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tmnFihU644wzWkelJGnEiBFasWKFNm3apEceeURlZWWdvl8wGNTixYv1t7/9TS+//LLuuOMObdiwoXW7uro6XXLJJfrFL37RYenc75NPPlFiYqJKSkq0detW/c///I+2bNnS+vjLL7+s0tJSNTc3H3KO1VlnnaVzzz1Xxx9/vK688kodd9xxrSWyublZaWlpWrRokb72ta/pq1/96gHPff7553XCCSe0FsCioiLdcsstOvPMM1vnpu1/rf3ajpy1tXr1at1yyy36zW9+02new8FIGACg2znUiJUXKioq9MYbb2jVqlVyzikUCsk5p6uvvrp1wvl++/btU15ensaNG6cdO3aotrZW2dnZn3nNQ42EFRQUaOfOnSooKFAwGFR1dfUBI0aStGzZMknS2LFjJUmXXXaZfvKTn0iSBg4c2Lrd1772Nd1yyy2fea9hw4ZpypQpevfdd3XJJZeoqqpKwWBQSUlJKi4ubj3UVlBQoLy8PGVmZiozM1MnnXSSli9frgkTJigQCOiSSy7Rl770JV188cWtrz148GCVlpZq6NChKi0tbT0c+Oc//1kLFixQcnKyBg0apBNOOEGLFi3SmDFjWp+blpamz3/+83r22Wd15plndrxjJN1222267bbbJElXXXVV6yhVQUGBLrnkEknSRRddpGuvPXC50ccee+wzheq6667TddddJ0n63ve+p4KCgtbHgsGgnnrqKS1evPiA5xQXF+uiiy7So48+2rof4oGRMAAAJD355JO6+uqrtX37dm3btk07d+7U6NGjtW/fPpWUlGjt2rWSImceLl++XDNnzlRGRoauu+46ffOb32w9y7C0tFR//OMfJR16JOzzn/+8Hnnkkdb3P+200z4zEjZ8+HCtWbOmdQ2qV199VUVFRa3vtd9zzz3Xen9xcbEaGxslSZWVlXr//fc1ceJEOed06qmntp59+Mgjj+jCCy+UJF144YV69913FQwG1dDQoI8//lhFRUUyM1133XUqKirSzTfffEC2tvnbvlZhYaHeeOON1rlsH330kSZNmqS6urrWzMFgUC+88IImTZrU6X4JhUKqqKiQJK1YsUIrVqzQWWedJUn6whe+0DqS9vbbb2vChAmtz6uurtbbb7/dmmm//YdMd+zYoaeeeuqAkvbaa69p0qRJBxSzqqoqnXfeebrzzjt1wgkndJr1sHU0Y7+7/uLsSADonfw+O/Lkk0+2F1988YD77r77brvxxhvtvffes/nz59uMGTNs7ty59sorr7Ru09zcbN/97ndt7NixNmXKFDvmmGPspZdeiuk9Gxsb7dJLL7WxY8favHnzbPPmza2PzZgxo/Xn++67zyZNmmTTpk2z888/38rLy83M7NZbb7XJkyfb9OnT7ZRTTrG1a9eamdkrr7xi06ZNs+nTp9u0adPsN7/5Tetrbd682ebNm2djx461Sy+9tPUsSjOzn/70p1ZUVGRTpkyxn//852Zm9u6775okmzZtms2YMcNmzJhhf/vb38zMrLy83E477TQbN26cnXbaaVZRUWFmkTMyL730Ups8ebIVFRXZT3/6UzOLnDk6d+5cmzZtmk2ePNluuukmCwQCZmb2ySef2PDhwy0jI8MGDBhgkydPbv2MioqKrKioyObPn29Lly5tzVtZWWnnnnuuTZ061Y499lhbtmxZ62O///3vW8/QbOvEE0+0oqIimz59ur322msHPHbNNdfYfffdd8B9d9xxh2VkZLT+2WfMmNHuWZhmh392pLN2jg93Z3PnzrVFixb5HQMAEGdr165tHckBeqL2/g475xab2dz2tudwJAAAgA8oYQAAAD6ghAEAAPiAEgYA6DZ62jxlYL8j+btLCQMAdAtpaWmqqKigiKHHMTNVVFQoLS3tsJ7HYq0AgG6hoKBAxcXFrethAT1JWlraAeuLxYISBgDoFpKTkzV69Gi/YwBdhsORAAAAPqCEAQAA+IASBgAA4IMed9ki59xeSdu74K3yJJV3wfsgduyT7od90j2xX7of9kn31BX7ZaSZ5bf3QI8rYV3FObeoo2s9wR/sk+6HfdI9sV+6H/ZJ9+T3fuFwJAAAgA8oYQAAAD6ghHXsAb8D4DPYJ90P+6R7Yr90P+yT7snX/cKcMAAAAB8wEgYAAOCDPl3CnHMLnHPrnXObnHO3tvO4c87dE318hXNuth85+5oY9suXovtjhXPuA+fcDD9y9iWH2idttpvnnAs55y7tynx9VSz7xTl3inNumXNutXPu7a7O2NfE8N+vHOfc88655dF9cq0fOfsS59xDzrk9zrlVHTzu23d9ny1hzrlESfdKOkfSZElXOucmH7TZOZLGR39dL+m+Lg3ZB8W4X7ZKOtnMpku6Q8y18FSM+2T/dv8t6eWuTdg3xbJfnHO5kn4t6fNmNkXSF7s6Z18S47+Vr0taY2YzJJ0i6X+ccyldGrTveVjSgk4e9+27vs+WMEnHSNpkZlvMrEXSY5IuPGibCyU9ahEfScp1zg3t6qB9zCH3i5l9YGaV0ZsfSTq8y9bjcMXyb0WSviHpL5L2dGW4PiyW/XKVpKfMbIckmRn7xlux7BOTlO2cc5KyJO2TFOzamH2Lmb2jyOfcEd++6/tyCRsuaWeb28XR+w53G8TX4X7m10l60dNEOOQ+cc4Nl3SRpPu7MFdfF8u/lQmS+jvn3nLOLXbOXd1l6fqmWPbJryQVSSqRtFLSt8ws3DXx0AHfvuuTuuJNuinXzn0HnyoayzaIr5g/c+fcqYqUsBM9TYRY9skvJN1iZqHI/+CjC8SyX5IkzZF0uqR0SR865z4ysw1eh+ujYtknZ0taJuk0SWMlveqce9fMajzOho759l3fl0tYsaQRbW4XKPJ/Joe7DeIrps/cOTdd0oOSzjGzii7K1lfFsk/mSnosWsDyJJ3rnAua2TNdkrBvivW/YeVmVi+p3jn3jqQZkihh3ohln1wr6ScWWR9qk3Nuq6RJkj7pmohoh2/f9X35cOSnksY750ZHJ0VeIem5g7Z5TtLV0TMnjpVUbWalXR20jznkfnHOFUp6StKX+T/6LnHIfWJmo81slJmNkvSkpH+mgHkulv+GPSvpc865JOdchqT5ktZ2cc6+JJZ9skORkUk55wZLmihpS5emxMF8+67vsyNhZhZ0zt2kyJlciZIeMrPVzrkbo4/fL+kFSedK2iSpQZH/g4GHYtwvt0saKOnX0ZGXIBfG9U6M+wRdLJb9YmZrnXMvSVohKSzpQTNr9zR9HL0Y/63cIelh59xKRQ6D3WJm5b6F7gOccwsVORM1zzlXLOn7kpIl/7/rWTEfAADAB335cCQAAIBvKGEAAAA+oIQBAAD4gBIGAADgA0oYAACADyhhAOLOORdyzi1r82tUJ9vWxeH9HnbObY2+1xLn3HFH8BoP7r/YsnPuewc99sHRZoy+zv7PZZVz7vnoBbY7236mc+7ceLw3gO6HJSoAxJ1zrs7MsuK9bSev8bCkv5rZk865syT9zMymH8XrHXWmQ72uc+4RSRvM7EedbP8VSXPN7KZ4ZwHgP0bCAHjOOZflnHs9Okq10jl3YTvbDHXOvdNmpOhz0fvPcs59GH3u/znnDlWO3pE0Lvrcm6Ovtco59+3ofZnOub8555ZH7788ev9bzrm5zrmfSEqP5vhT9LG66O+Ptx2Zio7AXeKcS3TO3eWc+9Q5t8I5d0MMH8uHil4k2Dl3jHPuA+fc0ujvE6Mrrv9Q0uXRLJdHsz8UfZ+l7X2OAHqOPrtiPgBPpTvnlkV/3irpi5IuMrMa51yepI+cc8/ZgUPxV0l62cx+5JxLlJQR3fY/JJ1hZvXOuVsk3axIOenIBZJWOufmKLLy9XxFVib/2Dn3tqQxkkrM7DxJcs7ltH2ymd3qnLvJzGa289qPSbpc0gvRknS6pH9S5ELy1WY2zzmXKul959wrZra1vYDRP9/pkn4XvWudpJOiK66fIenHZnaJc+52tRkJc879WNIbZvbV6KHMT5xzr0WvDQmgh6GEAfBCY9sS45xLlvRj59xJilw+Z7ikwZJ2t3nOp5Ieim77jJktc86dLGmyIqVGklIUGUFqz13Ouf+QtFeRUnS6pKf3FxTn3FOSPifpJUk/c879tyKHMN89jD/Xi5LuiRatBZLeMbPG6CHQ6c65S6Pb5Ugar0gBbWt/OR0labGkV9ts/4hzbrwkU/SSKu04S9LnnXPfid5Ok1QorgcJ9EiUMABd4UuS8iXNMbOAc26bIgWilZm9Ey1p50n6g3PuLkmVkl41sytjeI/vmtmT+29ER5Q+w8w2REfJzpV0Z3TEqrORtbbPbXLOvSXpbEVGxBbufztJ3zCzlw/xEo1mNjM6+vZXSV+XdI8i1xN808wuip7E8FYHz3eSLjGz9bHkBdC9MScMQFfIkbQnWsBOlTTy4A2ccyOj2/xWkcN0syV9JOkE59z+OV4ZzrkJMb7nO5K+EH1OpqSLJL3rnBsmqcHM/ijpZ9H3OVggOiLXnscUOcz5OUUu1Kzo7/+0/znOuQnR92yXmVVL+qak70SfkyNpV/Thr7TZtFZSdpvbL0v6hosOCzrnZnX0HgC6P0oYgK7wJ0lznXOLFBkVW9fONqdIWuacWyrpEkl3m9leRUrJQufcCkVK2aRY3tDMlkh6WNInkj6W9KCZLZU0TZG5VMsk3Sbpv9p5+gOSVuyfmH+QVySdJOk1M2uJ3vegpDWSljjnVkn6jQ5xpCGaZbmkKyT9VJFRufclJbbZ7E1Jk/dPzFdkxCw5mm1V9DaAHoolKgAAAHzASBgAAIAPKGEAAAA+oIQBAAD4gBIGAADgA0oYAACADyhhAAAAPqCEAQAA+IASBgAA4IP/D7/mHGwtdARoAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.metrics import roc_curve, roc_auc_score\n", "\n", "fpr, tpr, thresholds = roc_curve(\n", " y_val,\n", " y_hat\n", ")\n", "\n", "auc = roc_auc_score(y_val, y_hat)\n", "\n", "plt.figure(figsize=(10,10))\n", "\n", "plt.plot(fpr,tpr,label=\"AUC=\"+str(auc))\n", "plt.ylabel('True Positive Rate')\n", "plt.xlabel('False Positive Rate')\n", "plt.legend(loc=4)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "batch_size = 256\n", "\n", "def get_test_evaluation(X_test_preprocess, X_test_tokens):\n", " y_hats = []\n", "\n", " for idx in range(0, X_test_preprocess.shape[0], batch_size):\n", " X_test_tensor = X_test_preprocess[idx:idx+batch_size].to(device)\n", " X_test_tokens_indices = X_test_tokens[idx:idx+batch_size]\n", " X_test_tokens_indices = pad_sequence(X_test_tokens_indices, batch_first=True, padding_value=biobert_tokenizer(\"[PAD]\")[\"input_ids\"][1]).to(device)\n", " #X_test_drug_tokens_indices = X_test_tokens_drug[idx:idx+batch_size]\n", " #X_test_drug_tokens_indices = pad_sequence(X_test_drug_tokens_indices, batch_first=True, padding_value=len(drug_encoder.categories_[0])).to(device)\n", " #X_test_drug_tokens_indices = X_test_drug_tokens_indices.int()\n", "\n", " y_hat_ = ((network.predict((X_test_tensor, X_test_tokens_indices)).detach().cpu()) >= 0.65)*1\n", "\n", " y_hats.append(y_hat_)\n", "\n", " y_hat = torch.concat(y_hats, axis=0).numpy()\n", " y_true = y_test_preprocess[:,[5]]\n", " #y_true = y_test_preprocess[:,:]\n", "\n", " return y_hat, y_true\n", "\n", "y_hat, y_true = get_test_evaluation(X_test_preprocess, X_test_tokens)\n", "titles = y_train.columns.tolist()[1:]\n", "titles = y_train.columns[[6]].tolist()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "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FdnvgIV9y0fJLrvP5bp1y7fN0DBly5a1vOXT384Hzz43Xz9913z767tkr31vy7orFv79XnfFiuy5z4a7nPdTP3Ntzj93p9x267Lsc7/bctVlK27fd9WlK7Lv/W67yzkAAAAAAEzPNGPXgUkuWfR47XgbS+jmG5fl1b96aE75k+9nl93mJz5/Uyu1anP7/NQNnZifr/zakx6c5x57VB589E25/4Nv3uI593/QLXnh71+WN/3eQUk2/e9783tPAAAAAABLapqxa1Of+N4lj1TVyVW1uqpWX3n13BTH2f5suC159a8emic+/Zr81FPu2aXV9t3/ritX9hmvXNlv/9ty5aUL++Y2JDdetzy77eWfIX258brl+cYZu+aRT7g+11y1InvfZ+Hf773vc1t+ePXo9uP23f/WvOodF+Z1v3FILrtoZZLkqsvuuvLx6h+MQuea2xZvAAAAADBDphm71iY5eNHjg5JceueDWmtvb62taq2t2m8fl8DbVlpL/vJ3DsnBR6zPL7zoynv8PPvcd0N23nU+5525c1pLPvPhvfMTJyyEs0f/9HX59N8v/L7Rv/3TnnnET11vZRdd2GPvDdll94Uwu8OO8znmsTfkkjU75kuf2j3HP2vhd+iOf9a6nHHa7kkWLtH56vdcmP/9P/bPt766y+3Ps+6KFbnphmU58pgbk7Qc/4xrcsZpeyz56wEAAAAA2J5NcwnCV5McUVWHJfl+kpOS/OIU/x6LnPuVXfLZD++dwx5yc158/IOTJC94xaW57dZlecsfHJhrrx7lD3/pAXngQ2/Oa99/QZLkeY86KjfesCwbbq2ccdoeee37z8/9H7Q+v/5nl+QvfvOQ3HrLsqx6wnV55BOvT5Kc+Jyr8z9fdv/88mMekt323JBXvvWiwV4vTGLv+96W333TxVm2LFm2LDn9E3vky5/ZPd86c+f8/tsuyoknrcsV398hr3nR/ZMkP/eCq3LAYbfmF3/r8vzib12eJHnFSQ/ItVevyP96+UH53Tdekh12nM/qz++Wr35utyFfGgAAAADAdqfapn54aVs9edVTkrwxyfIk72ytvWZzx696xI7tK6cdvLlDYLtywgFHDz0CzIwvt8/murZuqutHVx52UNv/j399mn/iXuGiX375ma21VUPPsb1btWpVW7169dBjAABbUFXeO80A750AoA/39L3TVH9cprV2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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "n_cols = 3\n", "n_rows = len(titles) // n_cols + int((len(titles)%n_cols) != 0)\n", "\n", "figs, axs = plt.subplots(nrows=n_rows, ncols=n_cols, figsize=(30,30))\n", "axs_flatten = axs.flatten()\n", "\n", "for i in range(len(titles)):\n", " cm_plot = ConfusionMatrixDisplay(confusion_matrix(y_true[:,i], y_hat[:,i]))\n", " cm_plot.plot(ax=axs_flatten[i])\n", " axs_flatten[i].set_title(titles[i])\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
precisionrecallf1_score
IonoC0.80.580.67
\n", "
" ], "text/plain": [ " precision recall f1_score\n", "IonoC 0.8 0.58 0.67" ] }, "execution_count": 210, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame.from_dict(\n", " dict(zip(titles, np.concatenate([\n", " precision_score(y_true, y_hat, average=\"binary\", zero_division=0).reshape(1,-1),\n", " recall_score(y_true, y_hat, average=\"binary\", zero_division=0).reshape(1,-1),\n", " f1_score(y_true, y_hat, average=\"binary\").reshape(1,-1)\n", " ], axis=0).T)),\n", " orient=\"index\",\n", " columns=[\"precision\",\"recall\",\"f1_score\"]\n", ").round(2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "28b293e0c0671e44c7281dde6399c7c7419d3faca031d22494da8635907ada72" }, "kernelspec": { "display_name": "Python 3.9.7 ('base')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }