我们已经连续好几期在讲特征变量选择算法,这其中一个很重要的一个原因是:光谱数据的高维冗余性和目标值与少数解释变量之间的相关性,也就是特征解释问题。如何从实际测量的高维光谱数据中选择具有解释能力(特征变量)的变量是目前特征选择或者特征降维的主要研究内容,也是光谱分析建模的关键组成。

本期分享的随机蛙跳(Random Frog, RF)主要参考李宏东老师于2012年发表在ACA的论文(题目见文末),区别于由Kevin Lanes和Mustafa Eusuff于2003年提出的随机蛙跳算法(Shuffled Frog Leaping Algorithm, SFLA),RF迭代更新过程更加简单直观,而SFLA粒子群优化算法相似,本期就RF在光谱特征分析建模中的应用进行介绍,并以真实数据进行代码解析和结果展示,对于代码在光谱交流群内。

1. 随机蛙跳RF

作者原文以基因表达过程中的关键变量选择为背景提出了RF算法,结合光谱建模分析应用,我们首先介绍RF的基本原理。对于光谱变量X,其n行表示样本数,p列表示变量,对应的目标矩阵Y由nx1的变量组成,其迭代计算过程主要包括以下三步:

(1)随机生成包含Q个变量的子集V0;

(2)在V0的基础上提出一个包含Q*个变量的候选变量子集V*,以一定的概率接受V*作为V1,用V1代替V0,循环该过程;

(3)计算各个变量选择的概率值,以此作为变量重要性评价指标。

在RF算法计算过程中,主要涉及5个关键参数,分别是:

(1)N:迭代次数,一般根据数据规模设置;

(2)Q:初始数据子集所含变量数;

(3):控制正态分布方差的因子,用于控制抽取进入候选变量子集的变量数;

(4)w:用于重采样时调整变量个数;

(5):用于设定接受性能不优于 V0 的候选变量子集 V* 的概率的上限。

上述变量中,除了Q和N外,其余变量均设置为默认值,此外,变量的重要性不再是单纯的以回归系数的大小为依据,而是以N次迭代中变量出现的概率为依据。

2. 代码分析

RF的matlab调用如下所示:​​​​​​​

function F=randomfrog_pls(X,Y,A,method,N,Q,criterion)%+++ Random Frog for variable selection for high dimensional data.%+++ Input:  X: m x n  (Sample matrix)%            Y: m x 1  (measured property)%            A: The maximal number of latent variables for%               cross-validation%       method: data pretreat method,'center' or 'autoscaling'%            N: The number of Simulation.%            Q: Intial number of variables to sample%+++ Criterion: index for variable assessment:'RegCoef',or 'sr'%+++ Output: Structural data: F

输出的结构体F包含的主要变量有:​​​​​​​

F.N=N;                   %迭代次数F.Q=Q0;                  %子集变量数F.model=model;           %模型参数,此处选PLSF.minutes=toc/60;        %计算时间/SF.method=method;         %预处理方法F.Vrank=Vrank;           %变量序号F.Vtop10=Vtop10;         % top-10 变量F.probability=probability; % 各变量被选概率F.nVar=nVar;             %迭代建模过程中子集变量个数F.RMSEP=RMSEP;           %迭代模型RMSEP

3. 实例分析

本文以公开数据集Corn进行测试分析,对应下载链接已在前期中给出,原始光谱为:

基于RF算法,我们选择前60个变量,具体的分布如图所示,其中有部分点分布在起始点附近,而大部分分布在500左右,对于起始点附近的点,可能是我们子集变量个数设置过小,导致这些变量的选择概率较高。

各变量在100次迭代循环过程中的选择概率分布如下图所示,对应上图,我们可以看到选择概率大于0的个数较少,而且分布相对集中,对于上图所选前60变量过多,可能需要多次交叉验证才能确定最佳的特征变量个数。

基于所选变量所建模型的PLS预测结果如下所示,可知预测结果精度较高,能够实现目标指标的有效预测。

对比发现,RF算法能够有效选择光谱特征变量,其基本分析过程跟iPLS相似,区别在于区间的可变性和变量的随机选择性,也正是这种过程产生了变量的竞争选择机制,进而确保了变量的有效性。

至此,我们简要介绍了RF算法并应用实例数据进行了分析,下期会介绍区间随机蛙跳iRF算法,欢迎大家交流分析,有需要的可通过私信公众号加入光谱交流群。

光谱特征选择---随机蛙跳变量选择RF相关推荐

  1. 局部遮荫光伏matlab,一种基于随机蛙跳全局搜索算法的局部阴影光伏阵列MPPT控制的制作方法...

    本发明涉及一种局部阴影光伏阵列多峰MPPT控制方法,特别涉及一种基于随机蛙跳全局搜索算法的局部阴影光伏列阵多峰MPPT控制. 背景技术: 伴随太阳能发电的普及,光伏阵列的运行环境变的越来越复杂,局部遮 ...

  2. 【BP回归预测】基于matlab随机蛙跳算法SFLA优化神经网络数据回归预测【含Matlab源码 2272期】

    ⛄一.蛙跳算法 1 改进的免疫蛙跳算法 免疫蛙跳算法具有混合蛙跳算法的全局优化与局部细致搜索优点, 可以优化连续问题和离散问题, 具有较强的鲁棒性;同时, 群体具有的免疫机制对群体进行控制和调节, 把 ...

  3. 【BP回归预测】随机蛙跳算法SFLA优化神经网络数据回归预测【含Matlab源码 2272期】

    ⛄一.蛙跳算法 1 改进的免疫蛙跳算法 免疫蛙跳算法具有混合蛙跳算法的全局优化与局部细致搜索优点, 可以优化连续问题和离散问题, 具有较强的鲁棒性;同时, 群体具有的免疫机制对群体进行控制和调节, 把 ...

  4. 【源码】基于lévy飞行的随机蛙跳算法及其在连续优化问题中的应用

    本源代码基于以下论文: Deyu Tang et.al.,A lévy flight-based shuffled frog-leaping algorithm and itsapplications ...

  5. 咋筛选变量进入多因素回归 纳入变量 变量选择 类似机器学习的特征选择 cox回归分析cox多因素

    在前期推送的内容中,我们介绍了构建多因素回归模型,探讨对结局指标有独立作用的影响因素,就好比侦探破案找出真凶的过程.我们作为研究人员,就像是一名侦探,通过统计学方法及专业知识,在众多的嫌疑人中一一排查 ...

  6. python随机森林筛选变量_用随机森林分类器和GBDT进行特征筛选

    一.决策树(类型.节点特征选择的算法原理.优缺点.随机森林算法产生的背景) 1.分类树和回归树 由目标变量是离散的还是连续的来决定的:目标变量是离散的,选择分类树:反之(目标变量是连续的,但自变量可以 ...

  7. 无信息变量选择(UVE)波长筛选算法--基于OpenSA开源库实现

    系列文章目录 "光晰本质,谱见不同",光谱作为物质的指纹,被广泛应用于成分分析中.伴随微型光谱仪/光谱成像仪的发展与普及,基于光谱的分析技术将不只停留于工业和实验室,即将走入生活, ...

  8. 时间序列--重要变量选择

    之前我们说的ARIMA直接套用就可以,因为包里面自动把它化成t-1,t-2...的形式了, 但如果我们要变量选择的话,还是先转化成监督学习问题吧(shift...) 转换成监督学习问题参考:https ...

  9. 信用卡评分模型(数据获取+数据预处理+探索分析+变量选择+模型开发+模型评估+信用评分+建立评分系统)

    最近两次遇到关于信用卡评分的题目,遂了解一波. Reference: 基于python的信用卡评分模型(超详细!!!) https://www.jianshu.com/p/f931a4df202c h ...

最新文章

  1. javascript 通过键获取值
  2. ACL 2019最佳论文出炉:华人团队包揽最佳长短论文一作,中科院、华为等榜上有名...
  3. 数据库-数据类型介绍
  4. css优先级和权重问题
  5. Android之canvas详解
  6. 移动开发技术有哪些?
  7. iText简介(转)
  8. txt简谱制作器上线(个人java程序)
  9. 精确率、准确率、召回率、ROC、AUC的概念,计算方式和代码实现
  10. 基于AM5728 DSP+ARM平台的嵌入式车牌识别
  11. 向内看 —— 自恋者的局限
  12. 数学分析_Tom M.Apostol 定理7.6 用阿贝尔变换证明Riemann-Stieltjes积分的分部积分公式...
  13. 什么是大数据开发?看完我终于懂了......
  14. MySQL DBA的修炼与未来(参考篇)
  15. 腾讯微博的部分知名站长名单
  16. WiderFace数据集用于训练人脸检测模型
  17. jasig cas java示例_单点登录cas jasig学习笔记
  18. 如何解决Redis缓存雪崩、击穿与穿透
  19. android h264转yuv,Android使用MediaCodec将YUV硬编成H264
  20. 选择一个软件外包公司的入职须知

热门文章

  1. spring源码解读系列(八):观察者模式--spring监听器详解
  2. 最新版IAR9.32和注册工具
  3. 高中新课标教材:四省营销 端倪初露
  4. 对话李志飞:出门问问最早将于2019年底考虑上市
  5. 老程序员的10条中肯建议
  6. WAF与IPS的区别
  7. html网页添加到桌面,那个浏览器可以把网页添加到桌面
  8. CH552 CH554 51单片机标准串口使用教程及常见问题
  9. 汉仪尚巍手书有版权吗_汉仪尚巍手书字体下载 汉仪尚巍手书体W字体免费版下载...
  10. 拼多多成于“性价比”,困于“性价比”