2. 武汉科技大学 智能信息处理与实时工业系统湖北省重点实验室, 武汉430081;
3. 武汉海云健康科技股份有限公司 技术管理部门, 武汉430081
2. Hubei Province Key Laboratory of Intelligent Information Processing and Real-time Industrial System, Wuhan University of Science and Technology, Wuhan 430081, China;
3. Technical Management Department, Wuhan Haiyun Health Science & Technology Co. Ltd., Wuhan 430081, China
在数字时代, 在对数据进行分析和挖掘时, 如何有效地处理缺失值是一个重要的挑战. 对于类似销售领域方面的缺失值填补, 销售数据反映出个体行为信息, 以往的方法往往简单地忽略缺失值或者仅对可观测数据进行插补, 这可能会导致信息的损失和准确性的降低. 而通过挖掘缺失值之间的相关性, 我们可以更准确地估计缺失值, 提高数据的质量和完整性. 在销售领域, 如何合理地进行缺失值的填补, 是研究这个课题的首要任务.
缺失值填补按填补方法可分为统计填补和机器学习填补[1]. 统计填补是针对数据本身分布信息进行分析和似然估计等, 常见的统计学填补方法有均值填补[2]、热卡填补[3]、回归填补[4] 以及多重填补等. 基于机器学习的缺失填补方法是利用适当的算法, 构造相关模型, 从数据集已知数据中寻找样本之间、属性之间的关联关系, 通过模型输出填补缺失值. 通常关于机器学习的填补方法有K近邻填补[5]、K-means填补[6]、决策树[7]等. 统计填补和机器学习填补使用的场景不同. 面临海量数据, 很难使用传统的学习方法来处理缺失数据[8–13], 因为大部分统计学习是基于线性关系并且需要大量标签数据进行有监督学习, 依赖于预定义的模型和假设, 缺乏灵活性. 而机器学习可以进行交叉验证与调参进行模型优化, 其模型具有更强的泛化能力, 能够识别出异常数据和冗余特征[14]. 它可以对大部分新输入进行理解性识别. 所以本文在基于海量数据的基础上, 是采用基于机器学习方式的缺失值填补.
在运用机器学习进行缺失值填补研究中, 文献[15]研究一种基于支持向量机的缺失值填补方法, 该方法与均值填补法、基于决策树回归的填补法相比较, 其准确率更高, 具有更强的拟合能力, 并具有良好的抗噪声能力. 文献[16]提出了K近邻算法和用于后插补的期望最大化算法结合(kEMI)方法, 在运用K近邻找到最佳值K的同时, 利用最佳值K的邻近数据, 通过学习全局相似性来估计缺失分数. 文献[17]研究出基于Stacking集成学习方法构建付费意向预测模型, 通过对比不同基模型组合预测效果确定基模型组合方案, 借助游戏玩家行为数据集验证模型优越性、稳定性和验证可移植性. 文献[18]为了对地面电磁学的缺失数据插补, 比较传统统计方法和监督机器学习方法之间的各种插补技术. 结果证明多种机器学习如SVR能大幅度地提升填补性能. 文献[19]研究在处理缺失值的同时进行特征选择的新方法, 以提高模型的学习性能并减少插补的负面影响. 文献[20]研究用决策树和模糊聚类集成的模型处理缺失值的同时进行特征选择的新方法, 以提高模型的学习性能并减少插补的负面影响.
上述众多基于机器学习的缺失值填补方法, 考虑了从特征工程上对特征进行处理、不同缺失率的填补方法和算法模型的优化, 大部分都是假设多项缺失值之间是弱相关甚至无相关, 很少考虑缺失值之间的相关性. 在很多领域中如销售领域, 一些行为特征和物品特征有着强关联性. 而缺失值之间的关联信息很少用于信息填补. 因此, 本文以销售领域为研究对象, 基于Stacking融合策略的融合模型充分利用多个经典机器学习模型的优点, 侧重考虑多项缺失值之间的相关性, 用已预测的缺失值作为已知特征, 对剩下缺失值进行增量预测, 研究面对多项缺失值相关性的增量填补方法, 并应用于药店销售的进行实验, 证明了该方法能有效地提升总体的填补缺失率.
1 基于模型混合的增量填补方法 1.1 增量填补算法思路本文研究在销售领域中, 销售数据和人员基本信息, 经过数据预处理、特征选择与构建得到最终数据集, 在此基础上提出的针对多项缺失值如何填补问题. 而本文提出的填补算法着重研究不同缺失特征之间关系, 缺失值之间存在的信息关系, 会对其自身特征的填补准确度造成一定的影响. 面向多项缺失值的增量填补算法整体架构如图1所示.
首先, 将会员基本信息数据和药店销售数据进行数据预处理, 特征统计和聚类等方法获得特征A1, A2, …, Am. 其中A1, A2, …, An特征是含有缺失值待填补的特征. 针对需要填补的特征A1, A2, …, An, 研究与An+1, An+2, …, Am的特征相关度, 并按照相关度从降序排序作为填补顺序. 假设排序后顺序是 A1, A2, …, An. 然后针对A1特征拆分数据集运用基于Stacking融合策略的多模型进行训练, 并用测试集来进行验证. 后面把已填补的A1的特征作为已知特征, 针对A2, …, An特征, 研究与A1, An+1, …, Am的特征相关度, 后面执行和A1特征一样的步骤, 依次对A2, …, An进行填补. 此算法为基于模型混合的增量填补方法.
1.2 增量填补关联度算法
文献[21]介绍了多种特征相关性分析方法, 着重提到Spearman相关性和Pearson相关性的对比. Spearman适用于非正态分布数据, 相关性基于秩矩阵, 能很好地反映数据的非线性相关性. 当数据中存在离群值时, Spearman相关性可以提供更稳健的关联度量. 在针对需进行缺失值填补的特征A1, A2, …, An情况下, 要根据其他已知特征与之相关性来决定填补顺序. 结合预处理后药店数据特征信息, 本文运用的特征相关度算法是Spearman相关系数, 其计算方法如下.
$ r = 1 - \frac{{6\displaystyle\sum\limits_{{{i}} = 1}^{{n}} {d_i^2} }}{{n({n^2} - 1)}} $ | (1) |
其中, r为Spearman相关系数, n为样本数量, di为数据序列中第i个数据对的位次之差.
按式(1)分别计算待填补A1, A2, …, An与已知特征An+1, An+2, …, Am的相关度. 例如A1的特征相关系数如下:
$ {p_v} = \sum\limits_{{\textit{z}} = n}^m {\left| {r_{\textit{z}}^v} \right|} $ | (2) |
其中, pv代表v与其他特征的总体相关度,
Stacking算法是一种分层集成的方法. 不同于Bagging, Boosting整合同类型模型, Stacking算法能够集成异质模型. 融合模型通过结合多个模型, 先完成个体学习器训练, 再按照一定的融合策略或投票策略等方式得出最后的结果. 基于Stacking的多模型利用融合了场景信息和单模型信息, 一定程度上结合了多个模型的优点, 提高了数据的泛化性和实验结果的准确性. 本文所研究的基于药店销售数据结合会员数据的缺失值填补问题, 选用Stacking策略进行融合. 在基于Stacking的模型设计上, 在选择基学习器时应当遵循好而不同的原则, 即考虑个体学习器性能好坏的同时, 也要考虑个体学习器的两两不相似性. 本研究先挑选KNN、SVM、Bagging、AdaBoost、XGBoost、随机森林、GBDT等模型作为基学习器的候选模型, 分别用来对单独的特征进行填补, 然后挑选出预测性能较好的模型作为基学习器. 经过初级筛选, 发现KNN、SVM、random forest、GBDT 这4个模型在这8个模型中表现突出, 本文选取这4个表现较优的模型作为基学习器. 结合预测的数据特征, 元学习器为朴素贝叶斯模型(NBM)时可以取得较好的填补效果, 故本文选用NB朴素贝叶斯模型作为元学习器. 图2为多模型Stacking融合框架.
图2中的混合模型由第1层的基模型: K近邻(K-nearest neighbor, KNN)、支持向量机(support vector machine, SVM)、梯度提升回归树算法(gradient boosting regression tree, GBRT)和第2层的元模型的朴素贝叶斯模型(naive Bayesian model, NBM), 具体算法步骤如算法1.
算法1. 面向多项缺失值的增量算法
1) 选择特征相关度最高的作为第1个填补的特征, 划分数据集为训练集T1与测试集T2;
2) 将训练集分别输入到基学习器中, 在每个基学习器中采用五折交叉验证, 分别进行5次实验, 每次将训练集T1分割成5等分, 用4份训练出模型并对一份训练集预测, 预测结果记为pi, 并且每次训练出的模型对测试集T2进行一次预测, 预测结尾记为zi. 把每次预测结果pi拼接作为最后的训练集P. 如果填补是数据是离散值, 对预测的z1, z2, z3, z4, z5进行投票作为最终的测试集预测结果, 否则, 对预测的z1, z2, z3, z4, z5进行结果平均作为最终测试集结果T;
3) 每个基学习器重复步骤2), 并把训练集P和测试集T, 作为第2层元学习器的数据来源, 得到最终预测结果.
2 实验与分析 2.1 数据来源和数据处理本文数据来源于某连锁药店近4个月的会员消费记录, 结合了会员自身信息、销售信息和药品信息. 去除退货和赠送等噪音数据, 最后有效数据共为150594条. 首先利用Elastic-net算法进行特征选择, 该算法是一种联合Lasso的L1正则化项和Ridge的L2正则化作为惩罚项的线性回归模型, 起到了平衡模型稀疏性和非稀疏性的作用, 减少了由于稀疏性所带来的模型泛化能力不足与信息丢失的情况, 同时缓解了非稀疏性模型的解释性差和信息冗余的情况.
$ W = \min \left\{ {\frac{1}{{2N}}\sum\limits_{i = 1}^N {\left\| {X \cdot w - \left. y \right\|\frac{2}{2} + \lambda {P_a}\left( w \right)} \right.} } \right\} $ | (3) |
其中, Pa(w)是Elastic-net惩罚项, 并且:
$ {P_a}(w) = \frac{{1 - a}}{2}\left\| w \right\|\tfrac{2}{2} + a{\left\| w \right\|_1} $ | (4) |
其中, a和λ均是非负正则化参数, 当a为0时, 式(3)是Ridge回归; 当a为1时, 式(3)是Lasso回归. 图3是特征相关分析系数热力图.
在数据样本存在一些数据特征缺失, 并且一些数据特征在后面进行数据分析, 人物画像是必不可少的. 于是针对样本数据中的会员基本信息包括会员的一些敏感信息如薪资水平和年龄期间和消费行为中的是否使用医保卡数据进行缺失预测填补. 特征选择后的部分特征如表1所示, 表2为待填补输出特征的缺失率.
2.2 评价标准因为本文针对的是对薪资水平(月薪是否大于4000)、年龄期间(18–34, 35–60, 60以上)、是否用医保卡支付进行缺失填补属于离散值分类问题, 并且数据分布较为均匀, 所以本文选用准确率作为薪资水平和是否用医保卡支付的评价指标和平均准确率增量作为年龄期间的评价指标. 准确率表示在预测数据中, 预测正确数据占预测总数的比例, 作为对比实验的评估标准, 公式如下:
$ accuracy(y, \hat y) = \frac{{\displaystyle\sum\limits_{i = 0}^{{n_{{\mathrm{test}}}}} {1({y_i} = {{\hat y}_i})} }}{{{n_{{\mathrm{test}}}}}} $ | (5) |
平均准确率增量表示在混合模型下, n个待需填补的特征个数, 分别计算排除第1次填补的特征的n–1个特征. 在后续实验中增量填补下的准确率记为accz, 在独立模型算法填补下的准确率记为accd, 然后求平均值. 用于衡量不同填补顺序情况下的总体提升的填补效果, 作为消融实验的评估标准, 公式如下:
$ avg\_ac{c} = \frac{{\displaystyle\sum\limits {(acc{\textit{z}} - accd)} }}{{n - 1}} $ | (6) |
2.3 实验对比及结果分析 2.3.1 对比实验
为了验证本文融合模型以及增量填补在面对多项缺失值填补的有效性, 本文进行如下对比实验.
采用经典模型和混合增量更新填补模型的对比实验来证明混合增量更新填补带来的效果提升.
主要采用的经典模型有通过构建多个决策树并取其输出的平均值来进行预测的算法随机森林、基于特征之间相互独立的前提假设的贝叶斯算法、通过将数据划分为K个簇来达到将数据分组的目标聚类的K-means算法、通过迭代地添加决策树来提高预测精度的GBRT算法、基于间隔最大化的算法, 通过找到一个最优超平面将数据分隔开, 以达到最小化误分类的目标的SVM和基于最近邻距离的KNN算法.
表3说明, 对同一缺失值进行预测时, 不同模型填补准确率都存在差异, 体现出不同模型的差异化特征, 同时说明不同缺失数据特征对一些经典算法运算产生一定的影响. 本文提出混合增量更新填补模型算法对各项缺失值的填补准确率均高于单模型的最高填补效率. 单模型考虑到单方面的特征信息, 如距离特征, 统计方差等特征, 而混合增量更新填补模型在一定程度上, 结合了多种模型的特性和特征之间的相关信息, 有效降低单一模型的泛化能力缺陷和特征有效信息缺漏. 此外, 在对单一模型进行训练优化时, 往往会陷入局部最小点, 而局部最小并不代表模型的泛化能力好. 通过多种基学习器进行结合, 可有效避免模型陷入局部最小点. 在全局上, 提高模型泛化能力和稳定性, 达到更好的整体性能.
2.3.2 消融实验
为了验证该混合增量填补算法的有效性, 分别进行对基模型和增量更新算法消融的3组对照实验.
1)对混合模型分别移除单个基模型, KNN, SVM, random forest, GBDT和原混合增量填补模型进行实验对比.
如图4–图6所示, 图4代表移除单个基模型对缺失特征payType的填补准确比较图. EX_KNN 代表移除了KNN基模型的混合增量填补算法. EX_SVM、EX_RF和EX_GB 分别代表移除了SVM、random forest和GBDT基模型的混合增量填补模型. 图5和图6代表分别对缺失特征ageLevel和salaryLevel的填补对比实验.
图4–图6体现出单个基模型对混合模型有一定程度的提升, 但影响程度较小. 结合表3整个混合模型对比与单独模型还是一定的提升的, 进一步证明了混合模型的优点, 结合了多个模型各自维度特点, 提高了多项缺失值的填补准确率, 侧面反映主要的填补提升来自于增量填补算法.
2)在混合模型基础下, 移除增量更新算法, 分别对多项缺失值进行独立填补和原混合增量填补进行实验对比.
图7代表各缺失特征独立预测和增量填补预测的实验对比. 由于一个缺失填补只用到了已知特征进行填补, 因此增量特征个数为0, 特征payType填补准确率和独立准确率相似, 而对于缺失特征ageLevel和salaryLevel, 结合之前已填补特征信息进行增量填补, 该实验表明增量填补算法的在一定程度上提升其他缺失特征的填补准确性.
3)在混合模型基础下, 随机次序多项缺失特征的增量填补和原混合增量填补进行实验对比.
在混合模型下, 随意排列组合特征的增量预测和根据相关性分析的增量预测实验对比. 随意排列组合方案如a_s_p 代表 先预测ageLevel (年龄分类)再增量预测 salaryLevel (薪资水平), 最后增量预测payType (是否为医保卡支付). 根据特征相关性分析得到第1次填补的顺序, 第1次填补payType, 第2次把payType作为已知特征再加入输入特征, 再进行特征相关性分析, 获取填补的特征是ageLevel, 后续再把ageLevel作为输入特征. 最后填补的特征是salaryLevel, 所以填补的特征顺序记为p_a_s. 此次实验都是在混合模型上的对比, 因此, 用上述第2个消融实验中的独立模型作为基准来校验随机组合的增量填补对多项缺失值的整体填补提升率.
图8是随意排列组合特征的增量预测和根据相关性分析的增量预测的实验对比结果. 其中p_a_s是根据Spearman相关性和增量填补过程中得到的填补顺序. 该实验有力地证明了本文提出增量填补算法的有效性, 能够在混合模型对多项缺失值特征预测的基础上再提升总体填补5%–6%的准确率.
3 结论与展望本文研究面向销售数据的多项缺失值关联性的增量填补方法并对国内某药店销售数据和会员基础信息数据中多项缺失值进行实际应用填补. 通过单一模型和融合模型对比发现, 融合模型能够结合多个模型的优势, 尤其在单一模型准确率较高的情况下, 能在一定程度提升填补准确率. 在融合模型的基础上, 通过依据特征相关增量填补和独立填补的实验对比, 证明了增量填补的可行性, 通过依据特征相关增量填补和其他顺序进行填补, 表明了特征相关增量填补的效果显著. 上述研究成果可以丰富对医药等各行业销售数据的多项缺失填补方法, 支撑行为分析和用户画像等工作. 今后的工作中将针对以下问题开展深入探讨. 对面不同缺失率的数据, 是否能结合缺失值可提供信息的重要性能对增量算法再进一步优化. 基于融合模型结构复杂, 对比单一模型, 即使数据集较少的情况下, 也存在训练时间过长问题, 后续研究可进一步对融合模型优化进行深入分析.
[1] |
陈娟, 王献雨, 罗玲玲, 等. 缺失值填补效果: 机器学习与统计学习的比较. 统计与决策, 2020, 36(17): 28-32. |
[2] |
Batra S, Khurana R, Khan MZ, et al. A pragmatic ensemble strategy for missing values imputation in health records. Entropy, 2022, 24(4): 533. DOI:10.3390/e24040533 |
[3] |
余嘉茵, 何玉林, 崔来中, 等. 针对大规模数据的分布一致缺失值插补算法. 清华大学学报(自然科学版), 2023, 63(5): 740-753. |
[4] |
王一棠, 庞勇, 张立勇, 等. 面向盾构机不完整数据的模糊聚类与非线性回归填补. 机械工程学报, 2023, 59(12): 28-37. |
[5] |
周敏. 多分类等级量表数据缺失填补方法的比较研究 [硕士学位论文]. 沈阳: 中国医科大学, 2022. [doi: 10.27652/d.cnki.gzyku.2022.000407]
|
[6] |
Ahmed M, Seraj R, Islam SMS. The K-means algorithm: A comprehensive survey and performance evaluation. Electronics, 2020, 9(8): 1295. DOI:10.3390/electronics9081295 |
[7] |
黄发明, 曹中山, 姚池, 等. 基于决策树和有效降雨强度的滑坡危险性预警. 浙江大学学报(工学版), 2021, 55(3): 472-482. DOI:10.3785/j.issn.1008-973X.2021.03.007 |
[8] |
Nti IK, Quarcoo JA, Aning J, et al. A mini-review of machine learning in big data analytics: Applications, challenges, and prospects. Big Data Mining and Analytics, 2022, 5(2): 81-97. DOI:10.26599/BDMA.2021.9020028 |
[9] |
Blazek K, Van Zwieten A, Saglimbene V, et al. A practical guide to multiple imputation of missing data in nephrology. Kidney International, 2021, 99(1): 68-74. DOI:10.1016/j.kint.2020.07.035 |
[10] |
Le TT. Practical hybrid machine learning approach for estimation of ultimate load of elliptical concrete-filled steel tubular columns under axial loading. Advances in Civil Engineering, 2020, 2020: 8832522. |
[11] |
Láruson ÁJ, Fitzpatrick MC, Keller SR, et al. Seeing the forest for the trees: Assessing genetic offset predictions from gradient forest. Evolutionary Applications, 2022, 15(3): 403-416. DOI:10.1111/eva.13354 |
[12] |
Buo I, Sagris V, Jaagus J. Gap-filling satellite land surface temperature over heatwave periods with machine learning. IEEE Geoscience and Remote Sensing Letters, 2022, 19: 7001105. |
[13] |
Ma J, Cheng JCP, Jiang FF, et al. A bi-directional missing data imputation scheme based on LSTM and transfer learning for building energy data. Energy and Buildings, 2020, 216: 109941. DOI:10.1016/j.enbuild.2020.109941 |
[14] |
卢冰洁, 李炜卓, 那崇宁, 等. 机器学习模型在车险欺诈检测的研究进展. 计算机工程与应用, 2022, 58(5): 34-49. DOI:10.3778/j.issn.1002-8331.2109-0312 |
[15] |
Leong WC, Kelani RO, Ahmad Z. Prediction of air pollution index (API) using support vector machine (SVM). Journal of Environmental Chemical Engineering, 2020, 8(3): 103208. DOI:10.1016/j.jece.2019.103208 |
[16] |
Razavi-Far R, Cheng BY, Saif M, et al. Similarity-learning information-fusion schemes for missing data imputation. Knowledge-based Systems, 2020, 187: 104805. DOI:10.1016/j.knosys.2019.06.013 |
[17] |
李美玉, 刘洋, 王艺璇, 等. 基于Stacking集成学习的用户付费转化意向预测方法研究——以免费增值游戏为例. 数据分析与知识发现. http://kns.cnki.net/kcms/detail/10.1478.g2.20230317.1235.004.html. (在线出版)(2023-03-20).
|
[18] |
Asraf H M, Dalila K A N, Tahir NM, et al. Missing data imputation of MAGDAS-9’s ground electromagnetism with supervised machine learning and conventional statistical analysis models. Alexandria Engineering Journal, 2022, 61(1): 937-947. DOI:10.1016/j.aej.2021.04.096 |
[19] |
Awawdeh S, Faris H, Hiary H. EvoImputer: An evolutionary approach for missing data imputation and feature selection in the context of supervised learning. Knowledge-based Systems, 2022, 236: 107734. DOI:10.1016/j.knosys.2021.107734 |
[20] |
Nikfalazar S, Yeh CH, Bedingfield S, et al. Missing data imputation using decision trees and fuzzy clustering with iterative learning. Knowledge and Information Systems, 2020, 62(6): 2419-2437. DOI:10.1007/s10115-019-01427-1 |
[21] |
Rovetta A. Raiders of the lost correlation: A guide on using Pearson and Spearman coefficients to detect hidden correlations in medical sciences. Cureus, 2020, 12(11): e11794. |