◆李 科
(安徽理工大学测绘学院 安徽 232001)
近年来,随着大数据时代的来临和机器学习技术的不断发展,使用特征挖掘方法和机器学习模型相结合解决实际问题成为了较为热门的议题[1]。随着因变量数量的增加,会影响模型的预测精度,即出现维度灾难问题[2]。所以在使用机器学习模型时,特征挖掘是一个十分重要的数据预处理过程。
本研究基于加州大学欧文分校机器学习数据库中提供的红葡萄酒数据,使用Boruta 算法,结合四种机器学习模型,探讨Boruta 算法对于模型解释的应用,对比不同机器学习模型在回归问题中的应用,研究旨在为将特征挖掘和机器学习应用于其他实际问题提供经验。
Boruta 算法[3]是一个基于RF 算法的特征筛选算方法,该算法可以获得数据集中有关目标变量所有特征的重要性,获取重要特征并删除多余的特征变量。其特点是不仅仅局限于建立一个具有良好的预测精度的黑盒预测模型,还可以获得与目标变量相关的特征的价值。
(1)随机森林
随机森林(Random Forest,RF)[4]是由Breinman 提出的一种基于分类树的集成算法,是一种树型分类器的集合,采用bootstrap 重复抽样的方法从样本中抽取样本进行建模,最终输出为简单多数投票法(分类)或单棵树输出结果的平均(回归)。
(2)支持向量机
支持向量的概念最早在二十世纪六十年代。1995 年Cortes 和Vapnik 正式提出支持向量机(Support Vector Machine,SVM)的概念。支持向量机[5]的求解通常是借助于凸优化技术,如何提高效率并且使SVM 模型适用于大规模数据一直是研究的重点。
(3)梯度提升模型
提升方法是一种常用的统计学方法,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高模型的性能,可以看成一种集成方法。Boosting 方法主要采用基函数的线性组合与前向分布算法,以决策树为基函数的提升方法称为提升树(Booting Tree,BT)。
(4)k 邻近
k 近邻(k-Nearest Neighbor,kNN)学习[6]是一种常用的监督学习方法,其工作机制为:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k 个训练样本,然后基于这k 个“邻居”的信息来进行预测。
模型精度评定选用均方根误差(RMSE)、平均绝对误差(MAE)以及决定系数(R²)三个标准。
本文采用样本数据包含1599 个红葡萄酒案例以及与其相关的化学特征信息。特征信息包括挥发酸度、酒精、游离二氧化硫、残糖、氯化物、密度、柠檬酸、pH 值、总二氧化硫、固定酸度和硫酸盐。以质量尺度 0 到 10 为评级指标,其中质量指数越高代表葡萄酒的品级越高。为保证建模集、验证集具有相同分布,本文采用分层抽样。结果表明总样本和建模集、验证集的统计特征基本一致,故可以用建模。
基于Boruta 算法对于影响葡萄酒品质的相关因素的重要性排序,其中shadowMin、shadowMean 和shadowMax 表示特征变量的最小、平均和最大重要性分数。结果表明所有的变量的重要性评价均高于shadowMax,即所有特征均可被认为是重要特征。其中挥发酸度对于葡萄酒品质影响最大,硫酸盐对于葡萄酒酒品质影响最小,通过使用该方法可以对于影响萄酒品质的因素进行探讨。
基于不同机器学习模型的葡萄酒品质预测精度的结果,建模集中,SVM 模型解释度最高,可以解释葡萄酒质量的65%,其余模型精度由高至低分别为RF(RMSE = 0.49,MAE = 0.43,R2= 0.50)、GBM(RMSE = 0.54,MAE = 0.50,R2= 0.42)和k-NN(RMSE = 61,MAE = 0.54,R2= 0.38),除k-NN 模型精度较低之外,其余几种模型精度相近。
综上所述,说明RF 更适合用于葡萄酒质量的预测建模。
基于不同机器学习模型的葡萄酒品质预测精度的结果,建模集中,SVM 模型解释度最高,可以解释葡萄酒品质,本文基于Boruta 特征筛选算法研究探讨了Boruta 算法在解释模型中的应用,对比了四种机器学习模型的在回归问题中的精度。主要结论如下:
(1)Boruta 算法可以对于影响红葡萄酒的特征因素进行重要性排序,使用该方法可以有效地进行模型解释,对研究因变量对自变量的影响具有一定意义;
(2)除k-NN 模型外,RF、SVM 和GBM 均有较高的预测精度,其中RF 模型预测精度最高,且最为稳定,故在红葡萄酒之类评级模型中,使用RF 模型可被认为是最优模型;
综合而言,本文进行特征挖掘和机器学习的研究具有一定意义,并为将两者结合应用于其他问题的研究提供了一定的经验。