图片缩略图

“机器学习信号处理”网络研讨会代码

version 1.1.0.1 (3.75 MB) by Gabriele Bunkheila
MATLAB Code from example used in the Webinar“Signal Processing for Machine Learning”
4.9
17评级

53下载

更新2016年9月01日

视图版本历史

查看许可协议

这些文件包含了在“MATLAB中的机器学习信号处理”网络研讨会中运行示例所需的所有代码。它们还包括用于自动下载和准备所使用的数据集的代码。
在那次网络研讨会中,我们展示了一个分类系统的例子,该分类系统能够仅基于智能手机产生的加速度计信号来识别人体所从事的体育活动。
我们使用统一的信号处理方法来提取相当数量的高度描述性特征,最后训练一个小型神经网络将特征向量映射到预先录制的数据集的6个不同的活动类别中。
讨论的议题包括:
*信号操作和可视化
*数字滤波器的设计和应用
*频域分析
*自动峰值检测
*信号特征提取
*简单神经网络的训练和测试

引用作为

Gabriele Bunkheila(2021)。“机器学习信号处理”网络研讨会代码(//www.tatmou.com/matlabcentral/fileexchange/49893-code-for-webinar-signal-processing-for-machine-learning), MATLAB中央文件交换。检索

意见及评分(36

Diellor岜沙

嗨Gabriele,
谢谢你的网络研讨会。我想知道您是否可以详细说明如何缓冲数据以获得BufferedAccelerations矩阵。特别是,如何从原始加速数据中得到10299x128矩阵?在我看来,atx、aty或atz变量的第一列是所有受试者的降采样、附加数据。其他列中的数据是什么?我假设“行走”、“站立”等的时间都有不同的时长,所以我对它们如何整齐地符合“活动”的标签感到困惑。也许我误解了数据结构,所以任何帮助都是值得感谢的。谢谢你!

Sravan汉

athira devaraj

Spyros Vlachospyros

Biserka Petrovska

嗨Gabriele,

我试图用这个工具箱来分类我自己的数据集。我用Myo臂带收集自己的测量数据,并根据DataPreparation进行整理。m和PrepareData。m函数。我有5种不同的手臂动作(喝水,吃东西,移动玻璃,打开抽屉和抓挠)。当我标记数据时,我使用列向量a) 32个样本,b) 64个样本。我有20个实验对象,每个实验对象有50多个不同的标签。

我使用工具箱中的高通滤波器,我用extractAllFeatures.m计算特征。我采用了隐层18个神经元的ffd神经网络。

在这两种情况下,我得到的混淆矩阵的分类准确率都略高于50%。
为什么我不能得到更好的分类精度时,数据集是两倍大(列向量的64个样本,而列向量的32个样本)?
我应该改变特征的计算和方向吗?

谢谢

Gabriele Bunkheila

嗨,Ross -这是你应该下载这个项目使用的数据集的文件夹。请参考脚本dataprepara .m的代码注释中捕获的说明

罗斯麦科马克

嗨,Gabriele,我必须创建我自己的/数据/原始文件还是它位于某个地方?我找不到这个位置,当我使我自己的文件程序卡住解压缩文件。谢谢你!

yiran段

Gabriele Bunkheila

你好,
谢谢你的发帖。您尝试过按照错误消息的建议操作吗?请查看数据准备里面的说明。M,并在设置完毕后首先运行该脚本。如果这个问题仍然是当前的,请通过我的MATLAB中心概要随时联系我。我的带宽有限(而且我可能在8月份无法及时回复),但我会尽我所能提供帮助。

绿色的线

你好,Gabriel,我想用和你一样的方法,但是,有一个问题:
数据文件BufferedAccelerations。垫没有找到,
数据文件RecordedAccelerationsBySubject。垫没有找到
目前还没有一些准备好的数据。请DataPreparation运行。米第一
你能帮我吗?

翁JaiJun

亚当

你好,加布里埃尔,我想用和你完全一样的方法,但同时识别信号的不同部分。换句话说,我想训练机器学习识别所有模式,我想测试它的时候,我想给整个信号(背靠背的所有活动),我想让我的机器告诉我每个活动位于哪里,它持续多久。期待您的回复

Amamcherla Nagaswathi

该模型有6个类。请问有几个频道?

Gabriele Bunkheila

@adam
On subbid - subbid数组(在一些助手函数中使用)包含执行记录的活动的主体的ID号(在1-30之间)。我使用subject ID快速将原始数据集划分为training和test
对于findpeaks和xcorr——我使用minprom和mindist来确保findpeaks的输出是预期的结果。如果约束更少,findpeak可能会返回“中间”的局部自相关输出峰值,而不是期望的峰值。在从整个数据集中提取特征时,很容易忽略这种行为。一般来说,类似的错误可能会潜在地导致提取不好的特征,危及整个分类任务。

Florian Stueben

嘿,好!如何将输入数据更改为其他频谱?

亚当

亚当

嘿!我有两个问题:什么是次矩阵?当计算自相关特征时,我们真的需要minprom和mindist吗?我们能不能不用xcorr函数的峰值?

Gabriele Bunkheila

你好,Sirinthip,我的带宽有限,但我很乐意帮忙。您愿意将您的详细问题直接发送到gabriele.bunkheila@mathworks.co.uk吗?谢谢

sirinthip roomkham

嗨,我和亚当有些问题-谁能帮我解决这个问题?

哈米德

Gabriele Bunkheila

你好亚当,

从您的描述来看,您可以在DataPreparation的代码注释中找到一些相关的指导。M,可能是第二个脚本部分。在执行脚本的第3节之前,确保完成了数据集.zip归档文件的下载,并将其复制到文件夹。

我希望这对你有所帮助。谢谢,
Gabriele。

亚当

当我运行文件:DataPreparation。如果我得到这个错误,

错误使用textscan
无效的文件标识符。使用fopen生成一个有效的文件标识符。

importAccelerationComponentFile错误(第162行)
datareray = textcan (fileID, formatSpec, endRow(1)-startRow(1)+1, 'Delimiter',
delimiter, 'MultipleDelimsAsOne', true, 'EmptyValue',NaN,'HeaderLines',
startRow (1) 1, ReturnOnError,假);

prepareData错误(第58行)
ax_train = importAccelerationComponentFile (fullfile (sourceTrainDataPath的惯性
信号”、“total_acc_x_train.txt '));

数据准备出错(第43行)
prepareData

请问谁能帮我解决一下?

Gabriele Bunkheila

嗨Grish,

如果您还没有解决这个问题,我怀疑这是一个相关文件夹没有添加到MATLAB路径的简单情况。请阅读主文件夹中的read-me.txt文件,并在那里执行安装步骤。
数据文件TrainedNetwork。\数据\已准备

谢谢,
Gabriele。

Grish

runTrainedNetworkOnBufferedData错误(第11行)
sn =负载(“TrainedNetwork.mat”、“净”);

DemoMain错误(第48行)
runTrainedNetworkOnBufferedData
有人可以帮我解决这个问题吗?我没有文件名" trainednetwork。mat "

救世主

发现它

救世主

谢谢你的努力。
在“PrepareData”中有一个名为“createUnbufferedData”的函数。M”不见了!!你有这个功能包括在压缩文件或电子邮件我mahdi1982ir@yahoo.com吗

谢谢

Nguyen)

丹玻色

citysky

雷扎塔

了不起的工作!谢谢!

雷扎塔

Tahmina Zebin

谢谢!它在matlab 2015a中运行没有任何问题

Gabriele Bunkheila

嗨Tahmina,

谢谢你提出问题。看来你的情节更新出了问题。一种可能的解释是,您使用的是比R2014b更老的MATLAB版本,因此您仍然运行遗留的MATLAB图形系统。
代码需要一个最新的版本才能在其他地方运行,因此我强烈建议更新到最新的版本。
或者,您可以通过替换所有的点赋值到图形句柄(例如h(1))来解决这个特定的问题。使用等价的set语句(例如set(h(1),'YData', g*ax');)。
我希望这对你有所帮助。如果你遇到其他类似的问题,你也可以联系MathWorks的技术支持服务台,我相信他们会很乐意帮助你。金宝app

问候,
Gabriele。

Tahmina Zebin

对非结构对象的结构赋值。

嗨,情节缓冲区出现这样的错误,有什么原因吗?
runTrainedNetworkOnBufferedData/plotBuffer错误(第61行)
h(1)。YData = g * ax ';

runTrainedNetworkOnBufferedData错误(第42行)
plotBuffer

RHU

korkam

MATLAB版本兼容性
创建R2014b
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区可以如何帮助您!

开始狩猎!