Page 58 - 《软件学报》2020年第11期
P. 58

3374                                Journal of Software  软件学报 Vol.31, No.11, November 2020

                 质量、库依赖、设备/用户要求、能耗处理、界面复杂度、应用描述、市场指标这 9 个维度选出共计 108 项数
                 据特征,采用多种回归模型融合的方法对用户接受度进行预测,并挖掘数据特征与用户接受度之间的线性与非
                 线性关联.
                    同样选用豌豆荚数据集,包括 2014 年 5 月 1 日~9 月 30 日用户的下载、更新、卸载等操作行为数据.在爬
                 取对应的安装包并进行反编译等处理后,获取包括第三方库                     [41] 在内的代码相关指标.进一步爬取应用的网页描
                 述信息,并提取数据特征和用户接受度指标.最终获得了 9 824 个应用的完整有效信息,用于预测模型的训练和
                 测试.将数据集随机分为 3 个子集,即一个包含 9 000 个应用的训练集,一个包含 500 个应用的测试集和一个包
                 含 324 个应用的验证集.
                    在成功提取 108 种特征之后,一个简单的做法是直接用这些特征训练模型.考虑到一些特征可能彼此之间
                 高度相关,从而导致共线性等问题,严重影响模型的鲁棒性和个体特征的可解释性,因此在训练预测模型之前,
                 先对特征进行相关性分析,并以此为基础进行过滤,最后得到 79 个特征用于后续预测.
                    为了达到指导开发的目的,需要预测模型具有较好的可解释性,因此选取经典的机器学习算法,包括 Lasso
                 回归、岭回归和随机森林算法,来预测应用的用户接受度.其中,Lasso 回归                     [42] 和岭回归 [43] 是标准的线性回归模
                 型,采用相同的损失函数,但使用不同的正则项.模型学到的变量系数能够体现相应特征的重要性.由于在训练
                 过程中,Lasso 回归模型会对特征进行选择,而岭回归模型不会,因此二者生成的变量系数会有所不同.但由于两
                 种回归模型产生的系数的正负符号基本一致,因此对符号的判断更为可靠.进一步地,由于有些特征可能会与用
                 户接受度指标之间存在非线性关系,因此在线性模型之外引入随机森林算法                           [44] ,在解决非线形回归问题的同时,
                 保持变量的可解释性.以均方误差(mean square  error,简称 MSE)和肯德尔等级相关系数(Kendall’s tau              [45] ,简称τ
                 值)作为模型评价指标.
                    作为比较,采用随机猜测算法作为基线算法.例如,对于测试集中的每个应用,可以简单猜测其卸载率为 0,并
                 计算相应的 MSE;同样地,也可以简单猜测卸载率为 0.5 或 1.在不同的猜测策略中,选择效果最好的一种(即产生
                 最低的 MSE)作为比较基线.在排名效果的比较方面,对测试集中的应用进行随机排序,计算τ 值后,与实际观测
                 值比较.实验结果可见表 2.
                                           Table 2    Prediction results of user acceptance
                                                 表 2   用户接受度预测结果
                                          下载量(download percentile)   卸载率(U-I ratio)   好评率(like ratio)
                               预测模型
                                            τ 值        MSE       τ 值    MSE     τ 值    MSE
                               Lasso 回归     0.236      0.080    0.280   0.028   0.150  0.054
                                岭回归         0.220      0.084    0.314   0.027   0.135  0.061
                               随机森林         0.316      0.070    0.331   0.025   0.252  0.047
                               基线算法        −0.011      0.091    −0.016   0.075  0.010  0.075

                    从实验结果来看,MSE 越低、τ值越高,表明算法效果越好.因此 Lasso 回归、岭回归和随机森林算法的模型
                 效果均明显优于基线算法,这验证了基于应用特征建立的用户接受度预测模型的有效性.其中,从下载量、卸载
                 率和好评率来看,随机森林算法的效果均优于两种线性回归模型.
                    在通过预测模型建立数据特征与用户接受度指标之间的关联后,可以通过识别单个特征对每个指标的影
                 响来验证特征与指标之间的相关性.具体而言,在使用 R 语言训练随机森林模型后,可以通过 rf$importance 指令
                 得到每个特征的%IncMSE 数值,表明当该特征发生重新排列时,MSE 发生的变化.%IncMSE 值越大,表明相应变
                 量对模型输出越为重要.对于随机森林模型选出的重要变量,若该变量也被 Lasso 模型选择,则可以进一步判断
                 其相关性方向.通过这一方法,为 3 个用户接受度指标选出了包括 SDK 版本、调用 Android API 的数量、要求
                 权限的数量、代码耦合程度、描述文本长度等 44 个特征.通过进一步分析每项特征与具体指标之间的相关性,
                 可以为开发者提供改进应用的建议.例如,应用市场中介绍图片的数量、文本描述的长度、描述标签的个数都
                 与用户下载量之间存在正相关,这表明开发者可以使用更多的图片、更为丰富的描述信息来展示应用的功能特
                 性.又如,调用 Android API 的数量、目标 SDK 的版本都与用户接受度之间存在正相关,开发者可以考虑更多地
   53   54   55   56   57   58   59   60   61   62   63