Combining sparse coding and time-domain features for heart sound classification

Physiol Meas. 2017 Jul 31;38(8):1701-1713. doi: 10.1088/1361-6579/aa7623.

Abstract

Objective: This paper builds upon work submitted as part of the 2016 PhysioNet/CinC Challenge, which used sparse coding as a feature extraction tool on audio PCG data for heart sound classification.

Approach: In sparse coding, preprocessed data is decomposed into a dictionary matrix and a sparse coefficient matrix. The dictionary matrix represents statistically important features of the audio segments. The sparse coefficient matrix is a mapping that represents which features are used by each segment. Working in the sparse domain, we train support vector machines (SVMs) for each audio segment (S1, systole, S2, diastole) and the full cardiac cycle. We train a sixth SVM to combine the results from the preliminary SVMs into a single binary label for the entire PCG recording. In addition to classifying heart sounds using sparse coding, this paper presents two novel modifications. The first uses a matrix norm in the dictionary update step of sparse coding to encourage the dictionary to learn discriminating features from the abnormal heart recordings. The second combines the sparse coding features with time-domain features in the final SVM stage.

Main results: The original algorithm submitted to the challenge achieved a cross-validated mean accuracy (MAcc) score of 0.8652 (Se = 0.8669 and Sp = 0.8634). After incorporating the modifications new to this paper, we report an improved cross-validated MAcc of 0.8926 (Se = 0.9007 and Sp = 0.8845).

Significance: Our results show that sparse coding is an effective way to define spectral features of the cardiac cycle and its sub-cycles for the purpose of classification. In addition, we demonstrate that sparse coding can be combined with additional feature extraction methods to improve classification accuracy.

MeSH terms

  • Databases, Factual
  • Heart Sounds*
  • Humans
  • Phonocardiography
  • Signal Processing, Computer-Assisted*
  • Support Vector Machine*