图片缩略图

心声分类器

版本1.6.0.0(7.88 MB) Bernhard Suhm
心音分类演示,如机器学习电子书中所述,但现在扩展到演示小波散射
4.6
22日评级

112下载

更新2019年10月16日

查看版本历史记录

查看许可证

此提交文件提供了(即将出版的)关于完整机器学习工作流程的电子书所解释的代码。基于PhysioNet 2016挑战赛的心音记录,开发了一个将心音分为正常和异常的模型,并部署在原型(心脏)筛查应用程序中。该工作流演示了:
1)使用数据存储有效地从多个文件夹读取大量数据文件
2) 使用信号处理、小波和统计学工具进行特征提取
3)使用ClassificationLearner应用程序交互式训练、比较和优化分类器,无需编写任何代码
4)以错误分类成本,以编程方式培训集合分类器
5)应用自动特征选择来选择相关特征的较小子集
6)执行C代码生成,部署到嵌入式系统
7) 应用小波散射自动提取优于人工设计的特征

引用为

伯恩哈德·苏姆(2021年)。心声分类器(//www.tatmou.com/matlabcentral/fileexchange/65286-heart-sound-classifier),Matlab中央文件交换。检索到

意见及评分(47

Diego GUEDES DE OLIVEIRA

你好,

你们们试图解释机器学习如何以非常好的方式工作,我非常感激。但是,脚本才能非常适用于“访问和探索数据”,“频域中的信号看起来像什么?”。
通过下一步,“准备将数据读为内存”,我收到了一个错误说:
“使用文件数据存储时出错(第226行)
找不到匹配的文件或文件夹:C:…路径…”
我想知道你们知不知道怎么修好它。

热忱地,

Bernhard Suhm

你可以打电话找我bsuhm@mathworks.com

巴里斯安弗酒店

谢谢你的伟大工作。我试图通过使用Android块和Simulink将模型部署到移动设备中,但是,我遇到了一些问题。金宝app我可以离线联系你(通过电子邮件)吗?你有一个官方低端​​电子邮件吗?

Bernhard Suhm

大卫·摩尔:更多细节请线下联系我。可能是您不小心将整个导出模型传递给代码生成,而不仅仅是分类对象。或者您可能创建了一个非常大的模型,一些大小限制适用于代码生成。

大卫。摩尔

这是一个很好的例子,谢谢。只有一个问题-当运行脚本的“代码生成”部分时,我得到以下错误。什么好主意吗?

编码器的输入。const不能被简化为常量:不支持的值。金宝app

==>loadCompactModel行:33列:64中出错
代码生成失败:查看错误报告

秋道

Shiela Marie Puro.

很好的教程。很容易理解

Bernhard Suhm

当然,您可以将相同的工作流应用于其他数据集。您可能会发现其他模型在您的问题上工作得更好(比SVM或随机森林),而且您可能必须调整这些特性(但这被封装在不同的函数中)——或应用小波。在R2020a版本中,我将推出一个具有全新Auto ML示例的更新,包括对该数据应用小波散射,这可以作为将小波散射应用于她的信号类型数据的蓝图。

詹姆斯·弗林

如果这个程序可以与其他数据合作,您的工作已经充满了我很好的兴趣我,我很好奇。我的合作伙伴和我正在努力在另一个分类器上工作,我们有兴趣改装您的代码,我们的数据是我们的实际分类器的基础,任何想法?

Bernhard Suhm

Re:X.A.-特征提取在实际的心音记录上滑动5秒钟的窗口,这些记录的长度各不相同。这就是为什么我们最终会得到比音波文件多得多的行。如果您想研究提取了哪些特征,请查看helperFunction中的extractFeatures.m。

X.A.

功能表(13015 * 28),它如何与3240音频波文件相关联?每个文件的4行?谢谢

Sainath Urankar

Bernhard Suhm

好了,各位,这个最新版本(1.6)有很多新东西:
•将超参数调优和成本矩阵移动到分类学习器中(需要R2019b)
•添加了在最终应用深度学习的链接,以及应用小波散射的奖励部分
•细微调整,确保脚本也能在MacOS上运行

Bernhard Suhm

没错,在代码生成部分存在向后代码不兼容性。我即将发布一个重要的更新版本,利用R2019b中可用的很酷的新特性,并演示一种自动特征提取技术(小波散射)。请继续关注。

穆斯塔岛Saleh.

@阿伦普拉丹
尝试重新生成mat文件,而不是加载“TrainedSembleModel_FeatSel.mat”。

卢卡斯霍尔兹

包括数据在内的挑战网站现在似乎已经被重新定位了。我在他们的档案中找到了以下链接的网站数据:

https://archive.physionet.org/pn3/challenge/2016/

可以在该页面的底部找到.zip文件的Respecitve链接:

https://archive.physionet.org/pn3/challenge/2016/training.zip
https://archive.physionet.org/pn3/challenge/2016/validation.zip.

将这些添加到你的直播脚本中,你就可以开始了!

miraksy.

魏建林

@阿伦普拉丹
我遇到了同样的问题。你找到解决办法了吗?

阿伦普拉丹

在运行此脚本时,在代码生成阶段(与系统集成分析)部分,我得到了这个错误

使用rmfield出错(第65行)
一个名为“BinnedX”的字段不存在。

ClassReg.Learning.Coderutils.Classiftostruct(第37行)中出现错误
dataSummary = rmfield (dataSummary BinnedX);

classReg.Learning.Classif.comPactClassificationSenseMble / Tostruct(397行)中出现错误
s=classreg.learning.coderutils.classifToStruct(this);

saveCompactModel错误(第23行)
compactStruct = toStruct (compactObj);% #好< NASGU >

Bernhard Suhm

培训数据确实应该放在data /training/training-a,b,…不确定这是否解决了脚本后面的问题。

雅各布·霍夫曼

当FileDataStore尝试从“Training”文件夹中读取时,我会收到错误。uching.zip时,解压缩时包含几个名为Training-A的文件夹,训练-B等。如果这些文件夹的内容组合成一个名为培训的文件夹?我试过这个,它过去了这个步骤,但后来我稍后得到错误。我认为,因为这些各个训练文件夹中的每一个中的一些文件都有相同的名称,因此在复制到同一文件夹时覆盖对方。

teimoor巴拉米

嗨,我想通过PhyooneT PTB诊断数据库预测心脏病发作。如果我向下加载整个数据库。我想要分类是牵引课程案例正常和心脏病发作

kumia kuma

西尔维亚•西蒙

用它来学习机器使事情变得更容易。太棒了!

张娇

非常方便!

michio

Bernhard Suhm

@Muhammad:在选择特定功能后,你一定没有在生成或加载模型的实时脚本上运行这一节。你可以简单地运行load('TrainedEnsembleModel_FeatSel.mat')来创建这个变量。

code_genration
未定义函数或变量'trained_model_featsel'。

code_generation错误(第2行)
saveCompactModel (trained_model_featsel HeartSoundClassificationModel);

遗传算法

@Youjie你们
我也有同样的问题。函数importudiofile位于HelperFunctions文件夹中。您需要将文件夹HelperFunctions添加到路径中。如果代码不适合您,那么右键单击Matlab左侧面板中的该文件夹,选择“添加到路径”,然后选择“选定文件夹”。

Youjie你们

嗨Suhm先生,
我正在读你的电子书,真的是一个伟大的教程。但是,我遇到了一个错误,这使得程序不能在我执行手动锻炼并运行分类器的“访问和探索数据”时划分的错误。这是错误信息:

使用fileDatastore时出错(第64行)
函数importAudioFile不存在。

谢谢!

最好的问候,
尤杰。Ye@warwick.ac.uk)

Bernhard Suhm

回复:JJ的问题。
1)如果您计划运行实际的特征提取(通过数据存储访问数据),请确保您已经下载了训练数据。第一个代码段会这样做,但默认情况下它是禁用的(getTrainingData = 0)
2)GCP是一个MATLAB命令,它启动了一个计算资源池(如果可用的话,包括CPU的多个核心),但您需要安装并行计算工具箱,或者您将收到错误。

JJ

你好

我试图通过运行代码为feature_table提取特性,但我遇到了两个困难:1)fileDatastore创建了一个错误在第105行->错误使用fileDatastore(第105行)不能找到文件或文件夹匹配…
2)我需要知道gcp,以便运行这行代码:我们质量是什么?

谢谢!

ehsan modiri.

它是完美的,易于使用。然而,在Mathworks提供的“掌握机器学习:MATLAB逐步指南”链接中仍然存在一个问题。
https://uk.mathwands.com/campaigns/offers/mastering-machine-learning-with-matlab.html.
他们没有更新你的功能的最新版本。

Bernhard Suhm

在今天的更新中,代码与我们的高级机器学习电子书中的示例相匹配,无需进一步更改,并且应该解决一些人遇到的代码生成问题(现在,简化模型将使用15个功能)。继续反馈!

福锡

干得好!

段怡然

李盛文

德州仪器

福里斯特科姆

我在第102行的fileDatastore中发现一个错误,它显示“找不到匹配的文件或文件夹”,然后它列出了一个路径。在左窗格中,有一个数据文件夹,其中包含大量.wav文件的验证子文件夹。我试图删除该数据文件夹,以便可以重新加载,但我没有权限。脚本在FFT绘图中运行。

Bernhard Suhm

很抱歉,由于某些原因,上次更新没有收到这些更正。您可以通过将extractCodegenFeatures中的一行修改为“number_of_features=14

伊斯兰阿拉姆

这个例子太棒了。
但是,在HelperFunctions/trifbank中有一个错误。第一行是vfunction而不是function。

然后,当我纠正这个错字时,我得到了以下错误,我现在无法解决:

??? X数据必须有14列。

==>classifyHeartSounds行:20列:20中出错
代码生成失败:查看错误报告

您能否提供一些帮助来解决第二个错误?

非常感谢您提供这么好的教程。

Rohan Leekha

使用mfcc时出错
使用提取函数时出错

我如何纠正这些错误,你能帮我出去

Riados

美好的一天Suhm先生,

您能否请重新加载/向我展示Wavelet_Features Helper功能的代码?
我正在进行类似的机器学习项目,从这个讲座中学到了很多,并看到/理解小波_features函数对我有很大的帮助。

最好的问候,
Riad(r.akhundov@griffith.edu.au)

专员Hanspeter

可能很酷,但不幸的是不起作用。一个错误出现在HelperFunctions/trifbank.m中,其中第一行是“函数”的“vfunction”。

在生命脚本中,有一行是save('FeatureTable1', 'feature_table');但是应该保存('FeatureTable', 'feature_table');

Codegen也失败了

??? X数据必须有14列。

==>classifyHeartSounds行:20列:20中出错
代码生成失败:查看错误报告

晴朗的莎

小娟倪

MATLAB版本兼容性
创建R2019b
兼容R2016b及后续版本
平台兼容性
窗户 macOS Linux.

社区寻宝

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!

HeartsoundclassificationNew-FX.