前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >案例:火场中消防员的姿态与动作识别

案例:火场中消防员的姿态与动作识别

作者头像
大数据文摘
发布2018-05-21 17:21:54
1.1K0
发布2018-05-21 17:21:54
举报
文章被收录于专栏:大数据文摘大数据文摘

编译|土家、冯丽丽

当勇敢的消防员身处险境试图抢救其他人和他们的财产的时候,他们的生命受到了威胁。在这篇文章中,我想分享我在AAIA第15届数据挖掘竞赛中的经验和获胜战略:给火灾现场的消防员活动做标记,在这个竞赛中我拿了第一名!

比赛是由波兰的华沙大学和华沙主要的消防服务学校联合组织的。比赛持续了3个月,79名参赛者在赛方的主机平台“知识坑”上递交了1840个解决方案。

我非常喜欢参加有潜在巨大影响的竞赛,它不仅仅是一个高精确的评分,而且确有事情濒于险境。这个竞赛就有这样的趣味,参赛者被要求为身处紧急任务中的消防员的安全作出贡献。

挑战

在突发事件中知道救援小组成员正在进行的活动对于决策来说是非常有帮助的。这就是举办本次竞赛的目标——开发一个模型,通过采集消防员身体动作的感知数据和统计监测他们的生命机能来识别他们正在进行的活动。事实上,我们面临着两个相关的多类分类问题。第一类是消防员的主要姿势,第二类是他们的特定动作。下面是给予参赛者的一个数据样本:

姿势

动作

avg-ecg1

ll-acc-x

ll-acc-y

torso-gyro-z

弯腰

操纵

-0.03

-6.98

10.41

28.49

站立

先用水的信号

-0.04

-9.41

0.11

63.84

移动

-0.04

-8.75

3.81

-52.92

爬行

搜索

-0.03

-36.61

2.74

-134.26

弯腰

操纵

-0.04

-3.00

2.23

-7.21

前两列呈现了两类属性:消防员的姿势和主要动作。每个活动都用大约2秒的传感数据时间序列来描述的,这些传感数据来自于加速计、陀螺仪和对消防员生命机能的某些统计。总计有42个类似的统计,对应着42个时间序列。同时,像往常一样,参赛者被给予2个数据集:“训练”和“测试”。在训练数据中,参赛者被给予打上活动标签的实例,就像上表示例一样。在测试数据中,是没有标签的,参赛者被要求设计一个能够给活动自动打标签的模型。为了从参赛者方案中选出一个最好的,一个给定模型在测试集的表现也被纳入考核(依据下面讨论的评估指标)。在主办方平台,你可以找到更多关于竞赛的信息。

可能活动的数量仅限于赛事举办方提供的标签集。第一类共有5个标签,第二类有16个标签。同时,这些标签是相互关联的。让我们看看他们的联合分布:

爬行

蹲伏

移动

弯腰

下梯子

0

0

465

0

0

上梯子

0

0

476

0

0

操纵

0

1764

331

2356

1898

无行动

0

87

0

490

0

使用喷嘴

0

492

0

443

0

0

0

4324

0

0

搜索

459

0

0

0

0

发信号--回调软管

0

0

0

98

0

发现号—先使用水

0

0

41

496

0

发信号—主要使用水

0

46

0

405

0

发信号—停止使用水

0

0

0

277

0

下楼梯

0

0

644

0

0

上楼梯

0

0

1157

0

0

敲击

0

0

0

1022

0

扔软管

0

0

0

234

930

步行

0

0

1064

0

0

例如:数据中有4324个实例,是关于一名消防员正在哪里移动和奔跑;234个实例,是关于一名消防员正在站立哪里并投掷软管。当然,还有救援队能参与的许多其他活动,但是,数据集仅限于这个特定的子集。这可能十分令人失望,但是数据集里并没有“救猫”的标签。这个竞赛是作为一个标准的被监督的学习任务而设立的:参赛人员被提供一套训练活动和活动标签,仅此而已。在测试集中,参赛人员要根据在训练集中所学到的知识给活动打标签。

另外一个需要特别注意的事情是,标签的分布相当不平衡。例如,一个消防员奔跑的机率是投掷软管机率的四倍。这个需要慎重考虑,尤其是在竞赛中评估使用指哪个标的时候。

所选用的指标是“平衡精度”。它是用下面这个方法定义的:首先,给一个既定标签规定预测精度。

然后,类别C中标签为L的指标的平衡精度得分等于C类里所有标签指标的平均精度。

最后,由于我们有两个从属的类属性,我们给“姿势”和“动作”的平衡精度得分计算出一个加权平均值:

一个更高的权重给予了更加颗粒状分类“动作”的分类精度。

方案概览

该任务的方法可以归结为:在习得一个新分类集之前,为时间序列数据提供一个广泛特征的加工步骤。在这个过程中,有几个有趣的细节可以探讨。既然最终的方案由三个略有不同的“随机森林模型”组成,接下来我只描述其中之一:

这个挑战非常有趣的一方面是,我们需要预测两个相关分类。在我的方案中,我做了一个逐步分类。在第一步中,我预测了一个消防员的主要姿势。在第二步中,是基于第一步中的训练集和预计的标签对于特定活动进行了预测。多亏了这个方法,我们可以获得标签之间的层次关系。当然,还有许多其他的方法来处理两个分类的标签问题。例如,可以制定两个独立的分类,或把两个标签连成一个标签。然而,在我的案例中,将两个标签连在一起的办法取得了更好的结果。

在训练和测试数据分布之间的漂移

数据带来的另外一个问题是,在训练和测试中的活动是由不同的消防员产生的。这引起了一个正真的挑战。在任何一个数据挖掘竞赛中,参赛成功的一个重要部分是你能够建立一个与竞赛中所用一致的局部评估框架。很自然的解决方案就是对不同的消防员进行分层交叉验证。但是,没有提供针对消防员某一特定活动的识别符。因此,无论我喜欢与否,我不得不主要依赖于初步评价得分,这个得分是基于整个竞赛数据的10%得出的(最终的评价是基于其他90%的测试数据)。当然,这个问题不仅是针对我的,所有其他的参赛者也面临同样的问题。当我和他们在竞赛后的一个研讨会交流时得知,他们也同样主要依据初步的评估结果,因此基于训练数据产生的评估产生了过于乐观的分数。

特征加工

比赛期间的主要精力都投入到提取有趣的特征来描述的基本时间序列(称为信号)。这里有一些可以从信号中提取到的基本统计信息:平均值,标准差,偏斜度,峰度,分位数。我得到相对丰富的网格分位数,范围从0.01,0.05,0.1,0.95,0.99,…。因为有些活动是周期性的,我认为这对利用一些工具解决任务有用。我通过傅里叶变换以及计算周期图来处理每个信号。从这些转化的信号中,我再次提取基本概要统计。另外一个既简单,又被证明在分类中十分有用的特征就是不同信号之间的相关关系。直观来讲,当你跑步时,附着在你腿上的相关设备的记录应该是负相关的。最后,我做了一些努力来识别数据中的峰值。目的在于,在进行不同的活动时,例如,跑步或是敲击,我们可以在信号中观察到不同数量的“峰”。“峰”的识别是一个问题,因为很容易描述,但却很难进行数学定义。最后,我以基于计数的时间序列——在哪儿超过均值一个或两个标准差这种简单方法结束。

为了与训练和测试数据之间的漂移做斗争,应尽量设计通用(非特定主题的)的特征。例如,“加速”分布的分位数严重的取决于一个特定人的跑步速度和他/她的运动能力。据推测,这些数据在不同人之间有很大差别。另一方面,如果你得出一个左右腿之间加速度相关系数,这个相关系数可能在不同消防员间变化非常小。这是一个理想的特征属性,因为在测试数据进行的活动是由另外一组人员进行的,不是原来训练组的那些人。

特征的提取是解决方案中最乏味的部分,但我认为那是值得的。我提取了一套近5000个描述单个活动的特征。现在,下一步就是根据这些区别不同活动的特征开发一个模型。

让我们投票吧

如果由一个专家组来集体决定一件重要的事,这是经常发生的情况,他们可以做出更好的决策。每个人看问题的角度略有不同,他们可以共同得到一个更精确的判断。这个思路在随机森林算法中被得以充分的探索,这是一次决策树合奏。所以他们共同的预测——通过多数表决法,通常产生比单个模型更为精确的结果。我用这个模型来解决活动识别问题。

随机森林另外一个吸引人的属性是它有一个选择相关属性的固有方法。已经提取了相当丰富的特征集,显然其中一些特征只是有点儿用。我将选择最相关属性这个任务交给模型本来来完成。

就像介绍中已经提到的,数据中标签的分布相当不均衡。回想一下,我们的解决方案是基于“平衡精度”这个评估指标来进行评估的。标签预测工作做不好,无论数据的分布好还是坏,都会产生不利后果。考虑到这一点,森林中的每棵树都被用于数据的分层抽样,这样每个标签以平等的比例出现。这样能保护森林不会过多聚焦于一些流行的标签,并且在得分上给予了重要的改进。

总结

总而言之,竞赛是一个非常令人兴奋的体验。我要感谢所有的参与者,因为他们的参与,竞赛成为一个伟大的事件。同时,我要感谢来自于华沙大学和主要的消防服务学校的组织委员会,他们提供了这样一个有趣的数据集,并且组织了这样的比赛。获胜方案的平衡精度达84%,轻松打败了竞争对手。当然,仍有改进的空间,但我们在提高消防员火场安全方面迈出了一小步。

原文来自:https://dzone.com/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档