Atrial Fibrillation binary classifier (心律不整分類器)

Avatar of 施智皓.
Avatar of 施智皓.

Atrial Fibrillation binary classifier (心律不整分類器)

Master of Science in Applied Mathematics
Taiwan

心房顫動偵測專案 (AFib binary classifier)

這個專案的目標在於實作一個簡易的、能夠自動偵測心房纖維性顫動(Atrial Fibrillation)的二元分類器,好協助居家照護者或病友能夠及早發現心律異常,在有限時間內做出正確的醫療決策。改進前的演算法請看下方文獻參考[1].


Description in english:

This project aims to implement a simple binary classifier (see reference [1]) that can automatically detect Atrial Fibrillation (AF), with the goal of assisting caregivers or patients in early identification of cardiac arrhythmias and making correct medical decisions within a limited time.

專案成就:

  • 實作由ECG raw data 到 model的資料管線(data pipeline),大幅提升計算效率。
  • 實作一個輕量級的AFib偵測器,可用於穿戴式設備偵測心律異常,準確率達84%以上
  • 根據現實應用場景,改進論文[1]方法,找出特徵提取替代方案,簡化處理過程,增加特徵提取時的穩健性、達到與原著論文相近的準確度。

上圖是本專案的Data Flow Diagram,建立好的DFD可協助其他開發相關人員容易理解和維護專案。

心率變異性分析(heart rate variability)近年來在生醫訊號領域是個越來越重要的研究主題,透過將HRV製成Poincaré plot可協助醫療從業人員辨識病患心電圖是否正常。上圖為心房顫動患者30分鐘的ECG Poincaré plot,利用DBSCAN辨識出不同分群再將它們上色,其優點是能夠自動辨認雜訊(深藍色點)。樣本資料來源 : PAF Prediction Challenge Database.

Code & implementation details on github : AFib binary classifier


Reference :

[1] Park, J., Lee, S. & Jeon, M. Atrial fibrillation detection by heart rate variability in Poincare plot. BioMed Eng OnLine 8, 38 (2009). https://doi.org/10.1186/1475-925X-8-38

演算流程: 第一步、將每一段長達30分鐘的ECG做預處理、透過neurokit內建的peak dection algorithm取得它的心律變異性(Heart rate variability, HRV)。第二步、將HRV畫成Poincare plot可以看見清晰的分群。第三步、使用DBSCAN分群算法計算分群數量,另外再計算Poincare plot的統計量,獲得3 dimensions featue values。第四步、透過CatBoostClassfier 對 featue values做ensemble learning。 This project aims to implement a simple binary classifier that can automatically detect Atrial Fibrillation (AF), with the goal of assisting caregivers or patients in early identification of cardiac arrhythmias and making correct medical decisions within a limited time. Scores: Precision : 92%. Recall : 80%. F1-score : 85.5%. Accuracy : 84%. (AFib = Positive, Normal = Negative)
Avatar of the user.
Please login to comment.

Published: Sep 8th 2023
88
6
0

Tools

github
GitHub
python
Python

scikit-learn
sklearn
CatBoostClassifier
生醫訊號處理
data science
biomedical signal processing
python

Share