本文主要是介绍堆叠式神经网络模型stackingKeras【Stacking+Keras】+GUI可视化应用,原理讲解+代码详细实现说明【超强的模型神器,支持自定义】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
声明:
本博客中的VIP系列博客内容严禁转载,未经允许不得以任何形式进行传播,违者追究侵权责任!
堆叠式神经网络模型【Stacking+Keras】+GUI可视化应用
——沂水寒城
由于工作和学习的缘故,陆陆续续接触到机器学习、深度学习相关的知识已经有好几年的时间了,从单一的元模型到复杂的模型再到集成学习模型,不同的学习任务类型所需要的模型也是不尽相同的。今天主要是介绍一种集成学习思想和深度学习相结合的应用实例,也是我在实际项目中实际搭建使用到的一种模型——堆叠式神经网络模型。
本文主要包括:集成学习简介、堆叠式神经网络模型实现、GUI可视化应用几个部分。
一、集成学习简介
集成学习的主要思想是利用一定的手段学习出多个分类器,而且这多个分类器要求是弱分类器,然后将多个分类器进行组合共同预测。核心思想就是如何训练处多个弱分类器以及如何将这些弱分类器进行组合。一般采用弱分类器的原因在于将误差进行均衡,因为一旦某个分类器太强了就会造成后面的结果受其影响太大,严重的会导致后面的分类器无法进行分类。常用的弱分类器可以采用误差率小于0.5的,比如说逻辑回归、SVM、神经网络。可以采用随机选取数据进行分类器的训练,也可以采用不断的调整错误分类的训练数据的权重生成新的分类器。集成学习原理示意图如下图所示:
集成学习是机器学习中一个非常重要且热门的分支,是用多个弱分类器构成一个强分类器,其哲学思想是“三个臭皮匠赛过诸葛亮”。一般的弱分类器可以由决策树,神经网络,贝叶斯分类器,K-近邻等构成。常见的集成学习策略主要包括:Bagging、Boosting、Stacking和Blending,对于初学者来说前两种思想或者是框架可能是会比较耳熟能详的,而后两种如果没有接触到的话可能会觉得比较陌生,我也是读了研究生以后才接触到Stacking和Blending的,思想还是比较好理解的,效果也是蛮不错的,这里简单温习一下这三种集成学习策略。
1、Bagging
Bagging的个体弱学习器的训练集是通过随机采样得到的。通过T次有放回的随机采样,我们就可以得到T个采样集,对于这T个采样集,我们可以分别独立的训练出T个弱学习器,再对这T个弱学习器通过集合策略来得到最终的强学习器。随机森林是Bagging的一个特化进阶版,所谓的特化是因为随机森林的弱学习器都是决策树。所谓的进阶是随机森林在Bagging的样本随机采样基础上,又加上了特征的随机选择,其基本思想没有脱离Bagging的范畴。Bagging原理示意图如下所示:
2、Boosting
Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的样本在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。Boosting系列算法里最著名算法主要有AdaBoost算法和GBDT提升树(boosting tree)系列算法。原理示意图如下所示:
这篇关于堆叠式神经网络模型stackingKeras【Stacking+Keras】+GUI可视化应用,原理讲解+代码详细实现说明【超强的模型神器,支持自定义】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!