本实施例表明基于用于码生成和部署智能智能传感器信号进行分类的人类活动如何万博1manbetx准备的Simulink模型。这个例子提供了两个Simulink模型是准备部署到万博1manbetxAndroid设备和iOS设备。您安装一个目标设备所需的支持包后,训练分类模型和部署Simul万博1manbetxink模型到设备。万博1manbetx
万博1manbet万博1manbetxxSimulink的支持包都需要在这个例子中,Simulink模型。
下载并安装Simulink的支持包为And万博1manbetxroid设备万博1manbetx(需要为Android部署)
下载并安装Simulink的支持包为苹果i万博1manbetxOS设备万博1manbetx(需要针对iOS的部署)
加载人类活动
数据集。
加载人类活动
该人类活动
数据集包含五个不同的物理人类活动24075点意见:坐,站立,行走,跑步,跳舞。每个观测具有从由智能手机加速计传感器测量的加速度数据中提取60层的功能。该数据集包含以下变量:
ACTID
- 响应矢量包含活动ID在整数:1,2,3,4,和5代表坐,站立,步行,跑步,和跳舞,分别
actnames
- 对应于所述整数活动ID活动名称
功绩
- 60个为特征的观测24075特征矩阵
featlabels
- 的60个功能标签
该传感器HAR(人类活动识别)应用程序[1]被用于创建人类活动
数据集。当测量与此应用程序的原始加速度数据,一个人置于智能电话在口袋中,使得智能电话是倒过来,面朝人的屏幕。然后,该软件相应校准所测量的原始数据和提取校准数据60层的功能。有关校准和特征提取的详细信息,请参阅[2]和[3], 分别。在Sim万博1manbetxulink模型后述也使用原始加速度数据和包括用于校准和特征提取块。
此示例使用90%的观察来训练模型,分类上述五种类型的人类活动的和观测的10%,以验证训练的模型。用cvpartition
指定用于测试组10%的不渗透性。
RNG('默认')%用于重现分区= cvpartition(ACTID,'坚持',0.10);trainingInds =训练(分区);对于训练集%指标XTrain =技艺(trainingInds,:);YTrain = ACTID(trainingInds);testInds =试验(分区);对于测试集%指数XTEST =技艺(testInds,:);YTest = ACTID(testInds);
转换的特征矩阵XTrain
和响应向量YTrain
到表加载训练数据在分类学习者应用设置。
tTrain = array2table([XTrain YTrain]);
为表中的每一列指定变量名。
tTrain.Properties.VariableNames = [featlabels'“活动”]。
通过分类学习应用训练分类模型。要打开分类学习应用程序,输入classificationLearner
在命令行。或者,单击应用选项卡,并单击箭头的右侧应用段开画廊。然后,在机器学习和深度学习,点击分类学习。
在分类学习选项卡,在文件部分,点击新建会话并选择从工作区。
在新建会话对话框中,单击箭头数据集变量,然后选择表tTrain
。分类学习者检测预测和从表中的响应。
默认选项为5倍交叉验证,这可以防止过度拟合。请点击启动会议。分类学习者加载数据集和地块的前两个特点的散点图。
在分类学习选项卡,单击箭头的右侧型号类型段开画廊。然后,在集成分类,点击提振树。
数据浏览器显示的当前模型窗格中的默认设置,推进树整体模型。
在分类学习选项卡,在训练部分,点击培养。当训练完成后,数据浏览器显示5倍的历史窗格中,交叉验证的分类精度。
在分类学习选项卡,在出口部分,点击导出模型,然后选择出口紧凑型。请点击好在对话框中。结构trainedModel
出现在MATLAB工作区。场ClassificationEnsemble
的trainedModel
包含了紧凑型。提取从结构上训练模型。
classificationEnsemble = trainedModel.ClassificationEnsemble;
另外,您也可以训练在命令行相同的分类模式。
模板= templateTree('MaxNumSplits',20);classificationEnsemble = fitcensemble(XTrain,YTrain,...'方法','AdaBoostM2',...'NumLearningCycles'30,...“学习者”,模板,...'LearnRate',0.1%,...“类名”[1;2;3;4;5]);
执行5倍交叉验证classificationEnsemble
并计算验证准确性。
partitionedModel = crossval(classificationEnsemble,'KFold',5);validationAccuracy = 1-kfoldLoss(partitionedModel)
validationAccuracy = 0.9830
评估测试数据集的性能。
testAccuracy = 1-损耗(classificationEnsemble,XTEST,YTest)
testAccuracy = 0.9763
训练的模型正确分类的测试数据集人类活动的97.63%。这一结果证实,经过训练的模型并不过度拟合训练数据集。
需要注意的是精度值可以根据您的操作系统而有所不同。
代码生成包括分类模型对象,使用saveLearnerForCoder
和loadLearnerForCoder
。
通过使用保存训练模型saveLearnerForCoder
。
saveLearnerForCoder(classificationEnsemble,'EnsembleModel.mat');
功能块predictActivity在Simuli万博1manbetxnk模型负荷训练的模型使用loadLearnerForCoder
并使用训练的模型对新数据进行分类。
现在,您已经准备好一个分类模型,你可以打开Simulink模型,这取决于哪种类型你有智能手机,并部署模型到您的设备。万博1manbetx需要注意的是Simulink万博1manbetx模型要求EnsembleModel.mat
文件和校准矩阵文件slexHARAndroidCalibrationMatrix.mat
要么slexHARiOSCalibrationMatrix.mat
。如果您单击位于此页面的右上部分的按钮,打开在MATLAB®这个例子中,然后打开MATLAB®包括这些校准矩阵文件的例子文件夹。
类型slexHARAndroidExample
开放的Android部署万博1manbetxSimulink模型。
类型slexHARiOSExample
打开适用于iOS的部署S万博1manbetximulink模型。你可以打开Mac OS平台上的模型。
两个Simuli万博1manbetxnk模型基于由智能电话传感器测得的加速度数据的人类活动分类。该模型包括以下模块:
该加速度计块从加速度传感器接收设备上的原始加速度数据。
该校准块是校准的原始加速度数据MATLAB功能块。该块使用在校准矩阵slexHARAndroidCalibrationMatrix.mat
文件或slexHARiOSCalibrationMatrix.mat
文件。如果您单击位于此页面的右上部分的按钮,打开在MATLAB®这个例子中,然后打开MATLAB®包含这些文件的例子文件夹。
显示块加X,加ÿ和加ž被连接到校准块和显示校准数据点为设备上的各轴。
每个缓冲块,X缓冲区,Y缓冲区, 和我Z缓冲器,缓冲器32个样品用缓冲的帧之间的重叠的12个样品的加速度计轴线的。收集20个样品中,每个后缓冲块加入20个样品与来自先前帧的12个样品并经过总共32个样品的extractFeatures块。每缓冲块接收输入样本每0.1秒,并且输出缓冲的帧包括每2秒32个样本。
该extractFeatures块是一个MATLAB函数块提取物的32个加速计样本被缓冲的帧60层的功能。此功能块使用DSP系统工具箱™和信号处理工具箱™。
该predictActivity块是MATLAB功能块负荷从训练的模型EnsembleModel.mat
文件通过loadLearnerForCoder
和分类使用所提取的特征的用户活动。输出为1和5之间的整数,分别对应于坐,站立,步行,跑步,和跳舞,。
该预测的活动块显示设备上的用户分类活性值。
该视频输出子系统使用一个多端口开关块选择相应的用户活动图像数据以显示在设备上。该转换为RGB块分解所选择的图像为单独的RGB矢量和图像传递给活动展示块。
到Simulink模型部署到万博1manbetx您的设备,请按照下列步骤运行模式在Android设备上(万博1manbet万博1manbetxxSimulink的支持包为Android设备)或运行模式对苹果iOS设备(万博1manbet万博1manbetxxSimulink的支持包为苹果iOS设备)。运行模型设备上,作为收集训练数据前面所述将设备以同样的方式,并尝试了五项活动。该模型相应地显示所分类的活性。
为了确保模型的准确性,您需要为收集训练数据描述到您的设备放置在相同的方式。如果你想你的设备放置在不同的位置或方向,然后收集数据以自己的方式和使用您的数据来训练分类模型。
所述模型的精确度可以是不同的从测试数据集的准确度(testaccuracy
),这取决于器件。为了改进模型,你可以考虑使用附加的传感器和更新校准矩阵。此外,您可以为音频反馈使用音频工具箱™输出子系统再添输出块。使用ThingSpeak™写块从您的设备发布分类活动,并加速数据物联网。有关详细信息,请参阅https://thingspeak.com/。
[1]埃尔希罗,A.传感器HAR识别应用程序。MathWorks的文件交换//www.tianjin-qmedu.com/matlabcentral/fileexchange/54138-sensor-har-recognition-app
[2]意法半导体,AN4508应用说明。“参数和一个低g 3轴加速计的校准”。2014年
[3]埃尔希罗,A.传感器数据分析。MathWorks的文件交换//www.tianjin-qmedu.com/matlabcentral/fileexchange/54139-sensor-data-analytics--french-webinar-code-
fitcensemble
|loadLearnerForCoder
|预测
|saveLearnerForCoder