基于相关系数法的近红外光谱波长选择用于玉米数据集的含量检测

本文主要是介绍基于相关系数法的近红外光谱波长选择用于玉米数据集的含量检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 前言

        在近红外光谱数据分析建模过程中,特征选择是其中关键的一步。特征选择的原因是全部样本信息(全波长)中存在冗余信息,使得有些有效信息被抵消同时也无法突出有用的信息,这样建立的分析模型准确度和可靠性不高且计算量较大,特征选择就是最大限度的筛选出光谱数据中的有效信息,使得筛选出来的这些信息可以代表全部的样本信息,这样筛选出来的就是特征波长。本文主要介绍采用相关系数法筛选玉米数据集的特征波长,并与全波长建模结果进行对比。

相关系数法

      皮尔逊相关系数是描述 个定距变量间联系紧密程度, 衡量变量 之间的线性相关关系的 参数, 其值介于 -1 之间 一般用 表示 计 算公式见式 ( )。见参考文献【1】

数据来源

       对网上公开的玉米数据集进行分析,下载网址可参见博客玉米数据集

       数据集中包含有 3台不同的光谱仪测量得到的近红外光谱,每台仪器测量的光谱数据波长范围为1100~2498nm,波长间隔为 2nm,共 700 个波长点。

图1 玉米数据光谱 

基于PLS的的玉米数据集含量检测

clc
clearload('corn_m51.mat')
X;                      %光谱
y;                      %含量% figure
% plot(1101:2:2500, X(:, 1:length(X)));
% xlabel('Wavelength/nm','FontName','Times New Roman','FontSize',8);
% ylabel('Absorbance','FontName','Times New Roman','FontSize',8);
% set(gca,'FontName','Times New Roman','FontSize',8);% X =  nirSNV(X);ratio = 0.7;            % 训练集占70%  
[mx, nx] = size(X);
mtrain = ceil(mx * ratio);
mtest = mx - mtrain;
[Xtrain, Xtest, Ytrain, Ytest] = ks(X,y,ceil(mx*ratio));[Rc,RMSEC,beta,yc] = fitaaa(Xtrain, Ytrain);
[Rp,RMSEP,yp] = fitbbb(Xtest,Ytest,beta);

以上,Rc,Rp分别为校正相关系数和预测相关系数;RMSEC,RMSEP分别为校正均方根误差和校正均方根误差。

结果如下

基于相关系数法的近红外光谱含量检测模型

        运用相关系数法筛选光谱值和含量值之间相关性较大的样本,建立PLS含量检测模型。

代码如下:

load('corn_m51.mat')
X;                      %光谱
y;                      %含量% figure
% plot(1101:2:2500, X(:, 1:length(X)));
% xlabel('Wavelength/nm','FontName','Times New Roman','FontSize',8);
% ylabel('Absorbance','FontName','Times New Roman','FontSize',8);
% set(gca,'FontName','Times New Roman','FontSize',8);% X =  nirSNV(X);ratio = 0.7;            % 训练集占70%  
[mx, nx] = size(X);
mtrain = ceil(mx * ratio);
mtest = mx - mtrain;
[Xtrain, Xtest, Ytrain, Ytest] = ks(X,y,ceil(mx*ratio));%% 采用相关系数选择特征波长再建模
rt = CA(Xtrain, Ytrain);
max_rt = max(rt);
min_rt = min(rt);[Rc_,RMSEC_,Rp_,RMSEP_,selectedBands] = CA_get_i(Xtrain, Ytrain, Xtest, Ytest,min_rt, max_rt, 0.001);

以上,Rc_,Rp_分别为校正相关系数和预测相关系数;RMSEC_,RMSEP_分别为校正均方根误差和校正均方根误差。

结果如下:

 选用PLS建模和先进行相关系数法波长选择再PLS建模的结果对比

 

总结

        本文选用的模型评价指标为校正相关系数(Rc,Rc_)、预测相关性数(Rp、Rp_)、校正均方根误差(RMSCE,RMSEC_)和预测均方根误差(RMSEP,RMSEP_)。相关系数用于反映变量直接相关系数密切程度的统计指标。RMSEP用于衡量预测值与真实值之间的偏差。RMSEP值越小,相关系数越大,则模型的预测能力越好。

       相比于直接选用全波长进行建模,相关系数法选用波长后建模的Rp从0.9952上升到0.9969,RMSEP从0.0308下降到0.0246,选择的变量从全波长的700减少到587。说明相关系数法可有效选择光谱与含量之间相关性更好的样本,减少冗余变量,提高模型的精度。

完整代码可从GitHubhttps://github.com/cainnyk/CSDV_corPLS下载​​​​​​​

参考文献【1】倪超,李振业,张雄,赵岭,朱婷婷,蒋雪松.基于短波近红外高光谱和深度学习的籽棉地膜分选算法[J].农业机械学报,2019,50(12):170-179.

这篇关于基于相关系数法的近红外光谱波长选择用于玉米数据集的含量检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291160

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

如何选择适合孤独症兄妹的学校?

在探索适合孤独症儿童教育的道路上,每一位家长都面临着前所未有的挑战与抉择。当这份责任落在拥有孤独症兄妹的家庭肩上时,选择一所能够同时满足两个孩子特殊需求的学校,更显得尤为关键。本文将探讨如何为这样的家庭做出明智的选择,并介绍星贝育园自闭症儿童寄宿制学校作为一个值得考虑的选项。 理解孤独症儿童的独特性 孤独症,这一复杂的神经发育障碍,影响着儿童的社交互动、沟通能力以及行为模式。对于拥有孤独症兄

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount