<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>IEEE | Ukant Jadia</title><link>https://ukantjadia.github.io/tag/ieee/</link><atom:link href="https://ukantjadia.github.io/tag/ieee/index.xml" rel="self" type="application/rss+xml"/><description>IEEE</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Thu, 01 Aug 2024 00:00:00 +0000</lastBuildDate><image><url>https://ukantjadia.github.io/media/icon_hu5e29e1df12b63ca0c9252c8db4842f1b_8915_512x512_fill_lanczos_center_3.png</url><title>IEEE</title><link>https://ukantjadia.github.io/tag/ieee/</link></image><item><title>ECG-Lense: Cardiac ECG Classification (IEEE Published)</title><link>https://ukantjadia.github.io/project/heart-ecg-project/</link><pubDate>Thu, 01 Aug 2024 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/heart-ecg-project/</guid><description>&lt;blockquote>
&lt;p>&lt;strong>Published at ETNCC 2024 · IEEE&lt;/strong> · DOI: &lt;a href="https://doi.org/10.1109/ETNCC63262.2024.10767459" target="_blank" rel="noopener">10.1109/ETNCC63262.2024.10767459&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h2 id="headline-numbers">Headline numbers&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>80% classification accuracy&lt;/strong>&lt;/li>
&lt;li>&lt;strong>90% ROC-AUC&lt;/strong>, the best of all six models tested&lt;/li>
&lt;li>&lt;strong>21,837 ECG records&lt;/strong> · 18,885 patients · 12-lead · PTB-XL dataset&lt;/li>
&lt;/ul>
&lt;h2 id="what-it-is">What it is&lt;/h2>
&lt;p>ECG-Lense is the deep CNN architecture I built and benchmarked against five other models for classifying cardiac ECG signals. Three classical ML, three deep learning, head-to-head on the same dataset and same metrics. ECG-Lense wins.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Model&lt;/th>
&lt;th>Type&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Decision Tree&lt;/td>
&lt;td>Classical&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Random Forest&lt;/td>
&lt;td>Classical&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Logistic Regression&lt;/td>
&lt;td>Classical&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Simple CNN&lt;/td>
&lt;td>Deep&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>LSTM&lt;/td>
&lt;td>Deep&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>ECG-Lense (Complex CNN)&lt;/strong>&lt;/td>
&lt;td>&lt;strong>Deep (proposed)&lt;/strong>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="what-i-actually-did">What I actually did&lt;/h2>
&lt;ul>
&lt;li>Worked off the &lt;a href="https://physionet.org/content/ptb-xl/1.0.3/" target="_blank" rel="noopener">PTB-XL dataset&lt;/a>: clinical 12-lead ECGs, 10 seconds each, sampled at 100 Hz, with hierarchical diagnostic labels (5 superclasses, 24 subclasses)&lt;/li>
&lt;li>Preprocessed signals with &lt;code>wfdb&lt;/code> and standard ML libraries&lt;/li>
&lt;li>Implemented a stationary wavelet transform (SWT) for &lt;strong>data augmentation&lt;/strong>. The dataset is imbalanced and the augmentation increased sample diversity while preserving signal characteristics&lt;/li>
&lt;li>Trained the deep models on raw ECG signals so feature extraction would be automatic&lt;/li>
&lt;li>Evaluated on accuracy, precision, recall, F1, and ROC-AUC&lt;/li>
&lt;/ul>
&lt;h2 id="what-broke-and-what-i-learned">What broke and what I learned&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Class imbalance was the actual problem.&lt;/strong> First CNN runs hit a wall around 70% accuracy because rare cardiac classes were under-represented. SWT-based augmentation unlocked the next 10 points.&lt;/li>
&lt;li>&lt;strong>Raw signals beat hand-crafted features.&lt;/strong> Classical ML on extracted features stalled. The deep models, given raw signals, found patterns the feature engineering had thrown away.&lt;/li>
&lt;li>&lt;strong>More layers wasn&amp;rsquo;t the answer.&lt;/strong> ECG-Lense is &amp;ldquo;complex&amp;rdquo; relative to the simple CNN baseline, but each block earns its place. Depth for depth&amp;rsquo;s sake didn&amp;rsquo;t help.&lt;/li>
&lt;/ul>
&lt;p>Six months of work. A+ thesis grade. Submitted to IEEE during the project, accepted, presented and published at ETNCC 2024.&lt;/p>
&lt;h2 id="stack">Stack&lt;/h2>
&lt;p>Python · TensorFlow · Keras · scikit-learn · MLFlow · &lt;code>wfdb&lt;/code> · NumPy · pandas&lt;/p>
&lt;h2 id="acknowledgements">Acknowledgements&lt;/h2>
&lt;p>Mentor: &lt;strong>Dr. Kamal Kant Hiran&lt;/strong> (PhD). He pushed me to write the paper, guided the work end-to-end.
Supervisors: &lt;strong>Alok Kumar&lt;/strong>, &lt;strong>Dr. Chandani Joshi&lt;/strong>, &lt;strong>Harsh Bansal&lt;/strong>.&lt;/p>
&lt;h2 id="dataset-images">Dataset images&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>The dataset comprises 21,837 clinical 12-lead ECG records of 10 seconds in length from 18,885 patients. Hierarchical diagnostic organization: 5 superclasses, 24 sub-classes.
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710042174672" srcset="
/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_d73d6067d9f8a17aa93adec711d3ef1b.webp 400w,
/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_7382c3df4dbd7f3cb64751f8ed807327.webp 760w,
/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_d73d6067d9f8a17aa93adec711d3ef1b.webp"
width="699"
height="511"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Metadata in &lt;code>ptbxl_database.csv&lt;/code>: each ECG identified by a unique &lt;code>ecg_id&lt;/code> with SCP codes for multi-label classification.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710042188040" srcset="
/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_60bb6de163d0ad0363a04ee12f410402.webp 400w,
/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_62d8ca151f00d39ca7ac06751c232aab.webp 760w,
/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_60bb6de163d0ad0363a04ee12f410402.webp"
width="760"
height="540"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>Demographic overview of patients in PTB-XL.&lt;/li>
&lt;/ul>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="alt text" srcset="
/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_3ff4e44550cef96969d1d53bcc039626.webp 400w,
/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_297b7db56075283464819cc7331aed69.webp 760w,
/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_3ff4e44550cef96969d1d53bcc039626.webp"
width="760"
height="176"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>
&lt;p>The dataset comprises 21837 clinical 12-lead ECG records of 10 seconds in length from 18885 patients.
For the diagnostic labels, it provides a hierarchical organization in terms of 5 coarse superclasses and 24 sub-classes for the diagnostic labels
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710042174672" srcset="
/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_d73d6067d9f8a17aa93adec711d3ef1b.webp 400w,
/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_7382c3df4dbd7f3cb64751f8ed807327.webp 760w,
/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_d73d6067d9f8a17aa93adec711d3ef1b.webp"
width="699"
height="511"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Columns provided in the metadata table ptbxl_database.csv. Each ECG is identified by a unique ID (ecg_id) and comes with several ECG statements (scp_codes) that can be used to train a multi-label classifier that can be evaluated based on the proposed fold assignments (strat_fold).&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710042188040" srcset="
/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_60bb6de163d0ad0363a04ee12f410402.webp 400w,
/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_62d8ca151f00d39ca7ac06751c232aab.webp 760w,
/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_60bb6de163d0ad0363a04ee12f410402.webp"
width="760"
height="540"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>Demographic overview of patients in PTB-XL.&lt;/li>
&lt;/ul>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="alt text" srcset="
/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_3ff4e44550cef96969d1d53bcc039626.webp 400w,
/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_297b7db56075283464819cc7331aed69.webp 760w,
/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_3ff4e44550cef96969d1d53bcc039626.webp"
width="760"
height="176"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p></description></item></channel></rss>