Heart Sound Classifier

Heart Sound Classification demo as explained in the Machine Learning eBook, but now expanded to demonstrate Wavelet scattering
Updated 16 Oct 2019

View License

This submission provides the code explained by the (upcoming) eBook on the complete machine learning workflow. Based on the heart sound recordings of the PhysioNet 2016 challenge, a model is developed that classifies heart sounds into normal vs abnormal, and deployed in a prototype (heart) screening application. The workflow demonstrates:
1) using datastore for efficiently reading large number of data files from several folders
2) using tools from signal processing, wavelets and statistics for feature extraction
3) using ClassificationLearner app to interactively train, compare and optimize classifiers without writing any code
4) programmatically training an ensemble classifier with misclassification costs
5) applying an automated feature selection to select a smaller subset of relevant features
6) performing C code generation for deployment to an embedded system
7) applying Wavelet scattering to automatically extract features that outperform manually engineered ones

Cite As

Bernhard Suhm (2024). Heart Sound Classifier (https://www.mathworks.com/matlabcentral/fileexchange/65286-heart-sound-classifier), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2019b
Compatible with R2016b and later releases
Platform Compatibility
Windows macOS Linux
Find more on Predictive Maintenance Toolbox in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!


Version Published Release Notes

- Moved hyperparameter tuning and cost matrices into the Classification Learner
- Added "bonus" section applying Wavelet scattering
- Fixed problem caused by 'binnedX' field introduced in R2019a
- Converted paths to be compatible with MacOS and Linux

Updated version to exactly match the exampled used for the "Advanced Machine Learning" eBook after obtaining permission to use code authored by a third party.

Fixed bugs uncovered by hanspeter

Actually use version without the signal_entropy feature

Removed reference to signal_entropy.m, which was owned by someone outside MathWorks.