前言:本科毕设收集了数百枚山楂果实的近红外光谱图,并且测定了多酚、可溶性固形物的含量,构建了一个数据集。我使用了很多传统的数据建模方法,但这些已经过于老套了。于是使用了机器学习以及深度学习的方法实现了分类(产地鉴别)。其实我还可以继续往下做很多新的东西,可惜硕士的研究方向换了,这部分的心得为了避免浪费我将在此处分享,欢迎交流与合作。
1.近红外光谱数据建模的基本原理
原理简单,主要有三条:
(1)不同种类有机物对近红外光谱不同波段有着不同程度的吸光度/透过率,这意味着不同化合物光谱图形状是不一样的
(2)浓度高低也会影响吸光度/透过率(呈正相关,符合朗伯比尔定律),这意味着不同浓度,同一种化合物,峰的强度是不一样的
(3)对于农产品这种混合物的光谱图是由不同化合物的光谱图叠加形成,因此光靠观察解析是困难的,所以需要采用数据建模的方法——————收集大量光谱图(每种水果大约30~60条),并测定对应的指标,利用数据建模的方法,从数据中挖掘信息,从而实现两种目的——分类任务(鉴别农产品的产地、品种),回归任务——通过向模型输入光谱图即可预测出农产品某种成分的含量。
2.核心流程
下述是我当时所做的部分流程。核心点是,光谱图作为自变量的输入,多酚含量/或者其他的一些含量,作为自变量Y的输入,输入到模型中进行拟合,评估优化后完成建模。有了这个模型,之后输入未测定具体指标的光谱图,就可以预测出该成分的含量。
当然,若将自变量Y的输入改为农产品的种类、产地,建立的模型则为分类模型,之后输入光谱图可以预测农产品的产地、种类。
3、建模的具体方式
实际上,近红外光谱数据建模所用的知识均为机器学习的知识,是机器学习研究范畴的子集。当然如果只想简单做,并不需要系统学习机器学习的知识,只要把数据建模当成是做一个标准曲线一类的东西就可以。
具体实现方式如下:1.零代码实现,使用数据分析软件,例如SPSS,unscrambler。缺点是,自由度低,不能使用最新的模型;优点是,简单,快速,适合未学过编程的人。强烈推荐unscrambler,这个是专门用于数据建模的软件,教程在b站中可以轻易找到(例如用 The Unscrambler 对中红外光谱数据进行PLS建模_哔哩哔哩_bilibili。)2.代码实现,可使用R语言,python,matlab等,强烈推荐R语言或者python。缺点是,上手慢;优点是,上限高,可以使用很创新的模型。我在下一篇文章中将具体介绍——使用python实现近红外光谱数据建模