Page 252 - 《软件学报》2021年第10期
P. 252

3224                                 Journal of Software  软件学报 Vol.32, No.10, October 2021

                 分比.例如,数据记录(0a50e09262,1426245782,discharge,54)表示用户 0a50e09262 的设备在时刻 1426245782 处
                 于放电状态,且电池电量水平为 54%.
                    为了抽取会话,本文首先舍弃掉了所有处于充电状态下的数据样本.对于一串连续的处于放电状态的、中
                 间不含任何充电状态样本的样本,理论上来说,其可以被认为是一个会话.但在实际中,可能存在以下两种情况
                 使得上述论断不一定成立.
                    (1)  相邻两条样本之间的时间间隔过长.如果用户在一段时间内关闭了手机,或者由于数据收集的故障导
                        致一段时间内的数据没有被有效收集,都会出现相邻两条样本之间时间间隔过长的现象.在上述情况
                        下,这段较长时间内的电池充放电状态及电量信息是无从得知的.为了保证数据的可靠性,本文从过
                        长的间隔处(本文选取的阈值为 10 分钟)将样本序列分割开来,将其前后分别作为一个会话处理;
                    (2)  在连续的两条记录中,后一条的电量水平高于前一条.前文已经讨论过,在一个会话中,电量是随着时
                        间单调递减的,因此不可能出现电量升高的情况.唯一可能的原因是,用户在两条记录之间的时间内
                        更换了电池.在这种情况下,本文也从上述两条记录中间将样本序列分割,将其前后分别作为一个会
                        话处理.
                    通过上述方法,本文可以从原始数据中抽取出会话以供后续分析.为了使得分析更加可靠,本文去除了持续
                 时间过短的会话,仅保留了持续时长至少为 1 小时的会话.最终,本文共从原始数据中抽取得到了 37 088 个会话.
                 3.3   描述性分析
                    在生成会话后,我们随即可以获知对应会话的若干信息,例如在该会话内,用户的使用行为和系统状态等.
                 当用户发起一个续航时间查询请求时,从会话开始的时间 t s 直到查询时刻 t q 这段时间内的上下文信息能够体现
                 用户的使用行为和系统状态,从而很有可能为续航时间预测提供信息.为了检验这一假设是否成立,本小节基于
                 抽取得到的会话及相关上下文信息,对数据进行简单的描述性分析.
                    用户在发起查询时的电量和目标电量之间的差值越大,续航时间会倾向于更长.因此,预测续航时间不能脱
                 离上述电量差值进行,否则会失去实际意义.为了使得表述更加统一,本文取而代之地对发起查询后的电量消耗
                 速率进行预测:
                                                    bt   () bt  bt   () bt
                                                                     ( )
                                                          ( )
                                                 R   q    e    q    e  .
                                                  1   t  t       Δt
                                                       e  q
                    需要说明的是:在 b(t q )和 b(t e )给定的情况下,R 1 和t 呈现反比关系.因此,预测 R 1 和预测t 是等价的.
                    为了进行描述性分析,本文对全部 37 088 个会话进行了采样,从每个会话中随机选取了一个时间点作为发
                 起查询的点 t q ,分析发起查询前的相关信息与发起查询后的耗电速率的关系.
                    首先,从直觉上看,电池的电量消耗速率和用户发起查询时剩余电量是有关的.为了验证这一点,本文采用
                 Bin-Bin 图展示了两者之间的关系,如图 1(a)所示.可以看出:当发起查询电量为 30%时,查询后的耗电速率更高.
                 在 30%之前的部分,查询时电量越低,后续耗电速率越低,说明用户会倾向于保守使用;在 30%之后的部分,查询
                 时电量越高,后续耗电速率越低,说明在剩余电量较为充沛时用户的使用强度通常更低.
                    进一步地,本文希望了解在用户发起查询前后,电量消耗的速度是否相对恒定.如果电池的消耗速率整体来
                 说比较不稳定,则续航时间预测本质上的可预测性相对较低.本文按照与计算 R 1 类似的方式,计算发起查询前的
                 平均耗电速率 R 0 :
                                                           () bt
                                                          bt    ( )
                                                      R    s    q  .
                                                       0
                                                            t  t s
                                                            q
                    图 1(b)用 Bin-Bin 图的方式展示了 R 0 和 R 1 之间的相关性.可以看出,两者呈现出了比较明显的正相关,即:
                 在同一会话内,用户发起查询前后的耗电速率是相对一致的.这说明续航时间是可预测的.
                    接下来,本文探索哪些使用行为信息可能与 R 1 紧密相关,能够对预测续航时间带来帮助.本文首先分析了用
                 户的电池使用习惯与续航时间之间的相关性.本文定义 R 为用户在所有会话中 R 0 的平均值,该值表示了用户本
                 身的电池使用习惯,即用户总体上习惯于重度使用还是轻度使用.图 1(c)展示了 R 与 R 1 之间的关联,可以看
   247   248   249   250   251   252   253   254   255   256   257