近红外光谱模型构建流程与评估

模型构建流程

    在样本的光谱数据和样本目标值数据之间建立预测模型,通过获取未知样本的光谱数据,根据建立的预测模型,可以准确预测出物质含量。优秀的预测模型不仅依赖于严格的数据处理和表达能力强的模型算法,还依赖于获取的样本本身的特性,比如样本数据的精准性、数据特征能否反映样本本身的属性等。通常,开发稳健和高精度的物质含量预测模型主要包括:1.实验数据获取;2.异常样本识别和剔除;3.样本集划分为训练集和测试集;4.光谱数据预处理;5.特征波长提取;6.借助于机器学习算法建立物质目标含量的预测模型。预测模型的构建及评估流程图如下图所示。
在这里插入图片描述

模型评估指标

    对预测模型性能和稳定性的评价指标主要有以下四个:决定系数(R2)、交叉验证均方根误差(RMSECV)、预测均方根误差(RMSEP)和相对分析误差(RPD)。R2用于评估样本预测值与真实值之间的相关程度,R2越接近于1,则预测值与真实值之间的相关程度越好;RMSECV用于测试模型对训练集样本的预测能力,RMSECV值越小,表明模型的预测能力越强;RMSEP用于评价模型对测试集的预测能力,RMSEP越小,表明模型的泛化能力越高;RPD用于评价所建模型的稳定性能,RPD越大,模型稳定性能越好,通常RPD>3时,可用于实际运用。具体计算分别由以下公式给出。
在这里插入图片描述
式中,c_i和(c_i ) ̂分别表示第i个样本目标的真实值和预测值,(c_i ) ̅表示样本集中所有样本目标真值的平均值,n表示样本数量,SD表示预测集样本含量值标准差。

代码如下

import numpy as np
from sklearn.metrics import *

def evaluating(y_true, y_pre, samplesets="验证集"):
    """
    :param y_true: (n_samples, )
    :param y_pre: (n_samples, )
    :samplesets: string
    :return: None
    """
    evs_ = explained_variance_score(y_true, y_pre)
    mae_ = mean_absolute_error(y_true, y_pre)
    mse_ = mean_squared_error(y_true, y_pre)
    r2_ = r2_score(y_true, y_pre)
    rmse_ = np.sqrt(mse_)
    rpd_ = np.std(y_true)/rmse_

    print("*"*100)
    print(samplesets + ' 解释方差得分  平均绝对误差  决定系数  均方误差  均方根误差  相对分析误差')
    print('结果     %6.4f       %6.4f    %6.4f   %6.4f   %6.4f        %6.4f' % (evs_, mae_, r2_, mse_, rmse_, rpd_))
    print("*"*100)

np.random.seed(666)
y_true = np.random.randint(10, 100, 50)
noise = np.random.normal(size=(50,))
y_pre = [elem+n for elem, n in zip(list(y_true), list(noise))]
evaluating(y_true, y_pre)

结果展示

在这里插入图片描述

  • 15
    点赞
  • 214
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值