《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一一1.6 练习题-阿里云开发者社区

开发者社区> 华章出版社> 正文
登录阅读全文

《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一一1.6 练习题

简介:

本节书摘来自华章计算机《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一书中的第1章,第1.6节,作者:[美] 德博拉·诺兰(Deborah Nolan)  邓肯·坦普·朗(Duncan Temple Lang)  更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.6 练习题

Q.1 写出将原始训练数据读入一个数据结构的代码,该数据结构采用1.2节中描述的第一种方案。即由多个列组成的数据框,每个检测到信号的MAC地址对应于一个列。使用MAC地址的后两个字符作为列的名字,或者使用其他的唯一标识符。
Q.2 比较下面两个数据结构的大小:在1.2节创建的数据框和在Q.1中创建的数据框。哪一个使用的内存少?每个数据框的维度是多少?对于大楼中不同数量的设备,这个维度会如何变化?有些设备很少被检测到,对于这些设备上的各种数量的信号数据,这个维度会如何变化?使用object.size()和dim()函数处理这些问题。
Q.3 对于1.2节描述的两种方法,比较读取原始数据所花费的总时间和创建数据框所花费的总时间。按照不同大小的数据子集(随机选择)进行比较,并且对每一种方法,画出按照输入大小变化的执行时间曲线。此外,说明两种方法占用的内存和执行速度。使用system.time()和Rprof()这两个函数进行比较。
Q.4 检查离线数据中的time变量。信号特征随时间发生变化的原因有多种,例如,测量设备的电池电能随着时间流逝而减少,或者,在不同时间进行的测量是由不同的人以不同的精度完成的。此外,通过对time的检查可以分析出实验是如何进行的,例如,相互近邻的位置是否在相近时间进行测量?你看到了信号强度的变化性或者均值中随时间而发生的变化吗?尝试对可能影响到这种关联关系的其他变量进行控制。
Q.5 写出1.3.4节描述的readData()函数。该函数的参量是文件名filename以及拥有的MAC地址subMacs。确定这些参数是否应该具有缺省值。返回值是1.3节描述的数据框。使用在codetools中现成的findGlobals()函数,检查该函数是否不依赖任何全局变量。
Q.6 在1.4.1小节,我们为每种组合(位置×角度×接入点)上的信号强度,计算了关于中心和位置的测量值(参见图1-9中的例子)。请使用另一种汇总统计方法—柯莫果夫-史迈诺夫(Kolmogorov-Smirnov)正态性检验进行计算。如果信号强度大致是正态的,则期望p值具有均匀分布。这使得8000次检验中5%的p值小于0.05。
Q.7 编写创建如图1-10中图形的surfaceSS()函数。该函数有3个参量:data、mac和angle。data用于指定离线汇总数据框,mac和angle用于指定从数据中选取哪些MAC地址和角度进行平滑处理和绘图。
Q.8 考虑图1-11的散点图。信号强度与距离之间的关系表现为曲线形式。进行对数转换能将这种关系改进为线性关系吗?注意,由于信号是负值,在对信号强度取对数时,需要特别当心。
Q.9 大楼的平面图(见图1-1)显示有6个接入点。但是,数据中包含7个接入点,以及大致的预期信号数量(166个位置×8个方向×110个重复=146 080个测量值)。根据图1-10中的热度图体现的信号强度,我们将接入点匹配到对应的MAC地址。但是,有两个MAC地址似乎对应同一接入点。在1.3.2小节,我们决定保留来自MAC地址00:0f:a3:39:e1:c0的测量值,删除MAC地址00:0f:a3:39:dd:cd。请对这两个地址进行更深入的数据分析。这个决定正确吗?如果将保留的地址替换为丢弃的地址,能够改进预测效果吗?
Q.10 编写1.5.2小节描述的selectTrain()函数。该函数有3个参量:新观测点的方向angleNewObs,训练数据signals(采用offlineSummary格式的数据),从signals中包含的角度的个数m。该函数返回与trainSS相匹配的数据框,即用selectTrain()调用reshapeSS()(见1.5.2小节中对该函数的定义)。
Q.10 我们使用欧氏距离来发现信号强度向量之间的距离。但是,欧氏距离鲁棒性不好,其对离群点敏感。考虑使用其他度量标准,如L1距离,即信号强度之差的绝对值。使用这个替代距离修改1.5.3小节中的findNN()函数。这样能够改进预测效果吗?
Q.12 为了预测位置,我们对一个信号强度集合使用k最近邻方法,对这些邻居的已知(x,y)值求平均值。但是,一个较好的预测器是求加权平均值,其中的权重与观测测试集中的“距离”(信号强度)成反比,这样,虽然允许包含相近的k个点,但是对它们之间实际上如何相近要加以区分。对于第i个最近的邻居观测点,权重可以是:

其中,di是从新观测点到这个参照点的距离(在信号强度空间中)。实现这个替代的预测模型。这种方法改进了预测效果吗?使用calcError()函数将这个方法与简单平均方法进行比较。
Q.13 在1.5.4小节,我们使用交叉验证方法来选择k,即邻居的个数。另外一个需要选择的参数是角度的个数,即测试信号的角度。使用交叉验证方法选择这个值。也可以考虑同时选择一对参数值,即k和角度的个数。
Q.14 数据采集方面的研究者实现了一种根据信号强度预测位置的贝叶斯方法。下面这篇论文里描述了他们的工作:http://www.informatik.uni-mannheim.de/pi4/publications/King2006g.pdf。考虑采用这个方法建立一个统计型IPS。
Q.15 人们还开发了其他利用无线局域网来预测室内位置的统计技术。这些技术包括在文献[3,4,11]中介绍的技术。考虑采用其中一种方法,结合CRAWDAD数据,建立一个统计型IPS并进行测试。
参考文献

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: