许鸿森 陈松林 李红梅 刘张
摘要:该文利用机器学习算法对随机序列数据进行了实证研究。首先对比了常见机器学习算法模型在该数据上的预测性能,发现决策树算法效果较好。其次,对决策树算法模型进行了参数调优,提升了该模型的预测准确率。参数调优后的算法模型的预测效果较好。
关键词: 机器学习;随机序列;实证分析;参数调优
中图分类号:TP302 文献标识码:A 文章编号:1009-3044(2018)26-0166-03
Abstract: This paper makes use of machine learning algorithm to do empirical research on random sequences. First, the prediction performance of common machine learning algorithms on the data is compared, and it is found that the decision tree works well. Secondly, the parameter optimization of the decision tree algorithm model improves the prediction accuracy of the model. The parameter optimization algorithm model predicts better.
Key words: machine learning;random sequence;empirical analysis;parameter tuning
近年来,越来越多的人研究随机序列数据,因此随机序列的应用研究和预测未来随机序列具有一定的理论意义与实际应用价值。预测随机序列的方法比较多,如:概率与统计法模型1,理论成熟,但准确率低;BP算法模型2虽然能预测随机序列中的随机规律,但是网络的初始权值和阀值都是随机给出的没有考虑历史数据经验;遗传算法模型3虽然能较好的随机化搜索,但是它的搜索是随机的,带有一定的盲目性不能得到最优的随机序列预测。
本文基于真实的随机序列数据利用机器学习算法对随机序列数据进行分析,并对决策树算法模型进行了参数调优,提升了该模型的预测性能。参数调优后的算法模型的预测效果较好。
1 理论基础
1.1 机器学习
机器学习是研究如何利用经验来学习,能够较好的研究分析数据信息和从样本变量中做出高精度的预测。机器学习通过学习数据中潜在的信息和数据间的关系,根据数据的概率分布做出分类决策。机器学习通过某种模型训练历史数据,对任意给定输入尽量准确地进行输出预测4。
1.2 决策树
决策树是用来划分物体的类属,树中每一节点对应一个物体属性,而每一边对应于这些属性的可选值,树的叶节点则对应于物体的每个基本分类本文有7个类属。决策树:从根节点开始一步步走到叶子节点(决策)决策树,所有的数据最终都会落到叶子节点,既可以做分类也可以做回归。决策树分类原理:一棵决策树的生成过程主要分为以下3个部分:(1)特征选择:特征选择是指从训练数据中众多的特征中选择一个特征作为当前节点的分裂标准,如何选择特征有着很多不同量化评估标准,从而衍生出不同的决策树算法。(2)决策树生成:根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。树结构来说,递归结构是最容易理解的方式。(3)剪枝:决策树容易过拟合,一般来需要剪枝,缩小树结构规模、缓解过拟合决策树过拟合风险很大,理论上可以完全分得开数据5。如果不剪树枝足够庞大,每个叶子节点就只有一个数据。剪枝技术有预剪枝和后剪枝两种。决策树节点代表数据特征,每个节点下的分支代表对应特征值的分类,而决策树所有叶子节点则显示所有模型的决策结果6。常用的度量方式包括信息熵(InformationGain)和基尼不纯性(Gini Impurity)7。,熵是信息论中的概念,用来表示集合的无序程度,熵越大表示集合越混乱,反之则表示集合越有序。熵的计算公式为式(1)8。基尼不纯性表示的是数据总体类别越多,GINI指数越大。基尼指数的计算公式为式(2) 9:
[E =-P * log2P] (1)
[GiniP=1-k=1k|Ck||D|2] (2)
决策树分类又分为CART分类、ID3分类、C4.5分类,由于本文所用随机序列数据特征,在算法预测过程中,CART分类使用基尼指数来划分属性,在划分后选择最小属性用为优先划分属性,ID3分类在分支过程中喜欢偏向取值较多的属性,C4.5分类需要对数据进行多次排序和扫描,耗时较大,本文采用CART决策树分类算法模型对随机序列进行预测分析。
1.3 随机序列
一般的如果用X1,X2…Xn(表示n下标与X)代表随机标量,随机变量的出现就形成随机序列,随机序列的特征是序列和序列中的变量是随机的。统计学家证明:采样分析的准确性随着采样随机性的增加而大幅提高,但与样本数量的增加关系不大10。人们随机猜,每位概率是10%,每个序列概率不到万分之一。
1.4 Python
Python具有强大且丰富的库,是一种高级程序设计语言能较好的进行数据处理。Python语言具有简洁、易读以及可扩展性, Python里的numpy、pandas、scipy、matplotlib、sklearn庫为其提供了快速的数组处理、科学计算、可视化、机器学习。
2 实证分析
2.1 数据
论文利用爬虫技术爬取中某网站的历史数据,用Python中的Request函数从网站获取html格式的数据(json)格式,再将json格式的数据转换成DataFrame结构,最后把每个页面的数据进行合并。接着用Beautiful Soup进行数据转换和清洗接着进行本地存储。
2.2 常用机器学习算法实证分析
常用预测模型实证分析机器学习分为监督学习与非监督学习,而监督学习又分为分类学习、回归、聚类,分类学习中又分为二分类问题、多分类问题和多标签分类问题。随机序列预测属于多分类问题。本文首先利用机器学习中分类器中常见的7种算法模型对随机序列数据进行预测分析,所得结果如图1所示。
图1中,横坐标为常见7种机器学习算法模型,纵坐标为各算法模型的预测准确率。可以看出SVM(支持向量机)模型准确率最低,为8%;Decision Tree(决策树)模型准确率最高,为14%,明显高于每位数字的随机概率10%。下面将通过参数调优技术进一步提升预测的准确性。
2.3 决策树参数调优
2.3.1 固定参数设置
固定参数设置如表1所示,criterion为特征选择标准,本文由于采用数据类别较多,为降低误分类可能性的标准,因此选用基尼指数作为固定参数。splitter为特征划分选择标准,由于数据样本不大,故选择最优标准作为固定参数,目的找出所有特征划分时的最优划分点。random_state为随机种子,随机种子会随机拆分训练集和测试集,因此固定随机种子参数一致能够保证每次输出结果的一致性,固定随机种子为常用的默认值。min_weight_fraction_leaf为叶子节点最小样本权重,本文所用数据无缺失值,因此在使用叶子节点所有样本权重的最小值参数时不做变化,因这个值限制了叶子节点所有样本权重和的最小值,如果小于这个值,则会和兄弟节点一起被剪枝。因此固定为参数中的默认值零。
为了提高该模型的准确性能,引入了交叉验证评估,选用了10折交叉验证,在交叉验证中,不重复随机将训练数据集划分为10个,其中9个用于模型训练,1个用于测试,重复10迭代,每次迭代所得到一个性能评价指标,最终求出平均的一个值,以降低模型评估结果的方差。
2.3.2 变动参数设置
本文中模型使用的变动参数如表2所示。
Max_depth为最大深度,决策树最大深度决定了树的增长。Min_samples_leaf为叶子节点最少样本数,它限制了分支叶子上面的最小样本数量,如果在生成过程中某叶子节点数目小于样本数,则会和兄弟节点一起被剪枝。Min_samples_split为内部节点再划分所需最小样本数,它限制了子数继续划分的条件,如果某节点的样本数少于内部节点最小样本数,则不会继续选择最优特征来继续划分。
2.3.3 参数调优结果分析
如图2所示,横坐标为Max_depth最大深度,纵坐标Min_samples_leaf为叶子节点最少样本,竖坐标Accuracy为准确率。当Min_samples_split =4时,随着Max_depth的变化,准确率变化不大,但是随着Min_samples_leaf的增加,准确率逐渐增大。特别的,当Min_samples_leaf=11或者12时,准确率取得最大值0.2。
同理,如图3所示。当Min_samples_split =6时,随着参数的变化,准确率有一定的起伏波动,特别的,当Min_samples_leaf=1,Max_depth=6時,准确率取得最大值0.213。
当Min_samples_split=8时,结果如图4所示。当Min_samples_leaf=1时,Max_depth=7时获取局部最优准确率为0.2。在Min_samples_leaf=11或者12时时获取局部最优准确率为0.2。
综上所述,在Min_samples_split取不同值的情况下,通过调节参数Min_samples_leaf和Max_depth,将模型的预测准确率从14%提高到了21.3%,这说明调参优化对于提高模型预测准确率是有效的。
3 总结
本文运用机器学习算法模型对随机序列数据进行分析,对比了常见的机器学习算法在随机序列数据上的预测准确率,并对效果针对较好的算法模型进行了参数调优,进一步提高了模型的预测效果。结果表明模型预测效果大大高于随机猜想概率,并能够在一定的程度上提高正确率。
参考文献:
[1] 李德胜,张才仙.浅议概率统计学在彩票中奖技巧方面的应用[J].科技资讯,2006(32).
[2] 朱武亭,刘以建. BP网络应用中的问题及其解决[J].上海海事大学学报,2005(2).
[3] 薛愈洁.基于非随机初始种群遗传算法的学习分类器系统[J].计算机时代,2018(3)
[4] 曾华军,张银奎,等,译.机器学习[M].北京:机械工业出版社,2003.
[5] http://blog.csdn.net/suipingsp机器学习经典算法详解及Python实现—决策(Decision Tree).
[6] 范淼 李超. Python机器学习及实践[M].清华大学出版社,2016.
[7] Gavin hackeling.Mastering Machine Learning withscikit-learn. 2014 Packt Publishing.
[8] Peter Harrington. Machine Learning in Action机器学习实战[M].李锐,李鹏,曲亚东,王斌,译.人民邮电出版社,2013.
[9] [美] Sebastian Raschka. Python机器学习[M].高明,徐莹,陶虎成,译.机械工业出版社,2017.
[10] [英]维克托·迈而-舍恩伯格,肯尼思·库克耶.大数据时代[M].盛杨燕,周涛,译.浙江人民出版社,2012.
[通联编辑:代影]