机器学习在光谱分析中的应用:Python实现

机器学习在光谱分析中的应用:Python实现 一、前言光谱分析为何离不开机器学习光谱技术包含拉曼、紫外-可见、近红外、荧光等多个门类凭借快速、无损、样品无需复杂前处理等优势广泛应用于食品检测、制药化工、环境监测、材料分析等领域。但原始采集的光谱数据普遍存在三大难点维度高、数据冗余单条光谱包含数百至数千个波长点直接建模不仅效率低下还极易引发模型过拟合特征重叠严重以近红外光谱为例C-H、O-H、N-H 等官能团的振动吸收峰高度重叠人工无法区分有效特征噪声与基线干扰光源波动、仪器温漂、环境杂散光会造成基线漂移与高频噪声直接掩盖样品的有效光谱特征。机器学习依靠自动特征提取、非线性拟合、抗干扰建模能力针对性解决以上问题。其中无监督学习PCA/KMeans多用于数据降维、聚类定性有监督学习PLS/SVM/神经网络主打物质分类、成分定量如今已成为现代光谱分析的核心技术。在光谱硬件配套与一体化分析方案领域上海辰昶仪器设备有限公司拥有多年光谱仪器研发与行业落地经验。旗下常规光纤光谱仪、芯片制冷型高灵敏度光谱仪搭配自主研发的 ChSpecView 分析软件内置成熟的机器学习建模模块支持光谱预处理、模型训练、数据预测一站式操作覆盖拉曼、近红外、紫外可见等主流应用场景为科研实验与工业项目提供稳定可靠的整套解决方案。二、光谱分析机器学习核心流程标准处理流水线原始光谱数据 → 预处理平滑/基线校正 → 特征工程降维/特征筛选 → 数据集划分 → 模型训练 → 模型评估 → 预测应用2.1 数据来源本文结合两类数据完成代码演示实测数据基于辰昶系列光纤光谱仪采集的水果糖度近红外光谱、药品原料拉曼光谱、水质 COD 紫外光谱等工业实测样本仿真数据使用 Python 生成带有基线漂移、高斯噪声的模拟光谱方便大家复现代码、调试算法。2.2 核心算法选型任务类型常用算法适用场景无监督降维PCA主成分分析数据压缩、特征可视化、去除数据冗余无监督聚类KMeans、层次聚类未知样品归类、生产异常样品检测定性分类SVM、随机森林、CNN物质识别、产品真伪鉴别、品类区分定量回归PLS、SVR、LSTM物质成分含量、溶液浓度、理化指标预测三、实战一光谱数据预处理Python 实现预处理是机器学习建模的基础预处理效果直接决定模型最终精度。行业主流组合流程SG 平滑去噪 → AsLS 基线校正 → SNV 标准化。3.1 完整预处理代码importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromscipy.signalimportsavgol_filterfromscipy.sparseimportdiagsfromscipy.sparse.linalgimportspsolve# 1. 生成仿真光谱数据50 个样品波长范围 200-1000nm共 500 个波长点np.random.seed(42)wavelengthnp.linspace(200,1000,500)n_samples50# 构建真实光谱信号、基线、噪声true_signalnp.zeros((n_samples,len(wavelength)))foriinrange(n_samples):peak150*np.exp(-(wavelength-450)**2/(2*50**2))peak230*np.exp(-(wavelength-700)**2/(2*80**2))true_signal[i]peak1peak2 baseline0.002*(wavelength-200)10# 模拟基线漂移noisenp.random.normal(0,2,(n_samples,len(wavelength)))# 模拟高斯噪声raw_spectratrue_signalbaselinenoise# 2. SG 平滑去噪函数defsg_smooth(spectra,window17,polyorder3):returnsavgol_filter(spectra,window_lengthwindow,polyorderpolyorder,axis1)smoothed_spectrasg_smooth(raw_spectra)# 3. AsLS 不对称最小二乘基线校正函数defbaseline_als(y,lam1e5,p0.01,n_iter10):Llen(y)Ddiags([1,-2,1],[0,-1,-2],shape(L,L-2))Dlam*D.dot(D.T)wnp.ones(L)for_inrange(n_iter):Wdiags(w,0,shape(L,L))zspsolve(WD,w*y)wp*(yz)(1-p)*(yz)returnz# 逐个样品完成基线校正corrected_spectranp.zeros_like(smoothed_spectra)foriinrange(n_samples):basebaseline_als(smoothed_spectra[i])corrected_spectra[i]smoothed_spectra[i]-base# 4. SNV 标准化消除样品散射干扰defsnv(spectra):meannp.mean(spectra,axis1,keepdimsTrue)stdnp.std(spectra,axis1,keepdimsTrue)return(spectra-mean)/(std1e-8)# 加极小值避免除零错误snv_spectrasnv(corrected_spectra)# 可视化预处理全过程效果plt.figure(figsize(12,8))plt.subplot(2,2,1)plt.plot(wavelength,raw_spectra[0])plt.title(原始光谱含噪声基线漂移)plt.subplot(2,2,2)plt.plot(wavelength,smoothed_spectra[0])plt.title(SG 平滑后光谱)plt.subplot(2,2,3)plt.plot(wavelength,corrected_spectra[0])plt.title(基线校正后光谱)plt.subplot(2,2,4)plt.plot(wavelength,snv_spectra[0])plt.title(SNV 标准化后光谱)plt.tight_layout()plt.show()3.2 预处理关键说明SG 平滑选用窗口 17、3 阶多项式在滤除高频噪声的同时最大程度保留光谱特征峰轮廓AsLS 基线校正参数 lam1e5、p0.01可适配倾斜、弯曲等不规则基线SNV 标准化消除因样品颗粒度、测量角度带来的散射差异提升模型泛化能力。在实际项目落地中辰昶自主开发的 ChSpecView 软件已完整集成以上预处理算法支持可视化参数调节一键输出预处理完成的数据无需手动编写代码有效提升光谱分析工作效率。四、实战二无监督学习 —— PCA 降维 KMeans 聚类高维光谱数据直接建模计算量大、易过拟合一般先通过降维压缩数据再结合聚类算法完成未知样品分类。4.1 PCA 降维数据压缩 可视化fromsklearn.decompositionimportPCAfromsklearn.preprocessingimportStandardScaler# 数据标准化PCA 算法前置必要步骤scalerStandardScaler()scaled_spectrascaler.fit_transform(snv_spectra)# 降至 2 维用于可视化pcaPCA(n_components2)pca_resultpca.fit_transform(scaled_spectra)print(fPCA 累计方差贡献率{np.sum(pca.explained_variance_ratio_):.2f})# 绘制降维后数据分布plt.figure(figsize(8,6))plt.scatter(pca_result[:,0],pca_result[:,1],cblue,alpha0.7)plt.xlabel(f主成分 1方差占比{pca.explained_variance_ratio_[0]:.2f})plt.ylabel(f主成分 2方差占比{pca.explained_variance_ratio_[1]:.2f})plt.title(PCA 降维后光谱数据分布)plt.grid(True,alpha0.3)plt.show()4.2 KMeans 聚类未知样品定性分类fromsklearn.clusterimportKMeans# 设置聚类类别为 3 类kmeansKMeans(n_clusters3,random_state42)clusterskmeans.fit_predict(pca_result)# 可视化聚类结果plt.figure(figsize(8,6))foriinrange(3):maskclustersi plt.scatter(pca_result[mask,0],pca_result[mask,1],labelf类别{i1},alpha0.7)plt.xlabel(主成分 1)plt.ylabel(主成分 2)plt.title(KMeans 聚类结果)plt.legend()plt.grid(True,alpha0.3)plt.show()五、实战三有监督学习 —— SVM 定性分类 PLS 定量回归有监督学习是光谱智能分析的核心分为物质分类和成分定量两大应用方向。5.1 数据集划分fromsklearn.model_selectionimporttrain_test_split# 模拟分类标签3 类物质标签 0/1/2labelsnp.random.randint(0,3,n_samples)# 划分训练集 80%、测试集 20%X_train,X_test,y_train,y_testtrain_test_split(snv_spectra,labels,test_size0.2,random_state42)5.2 SVM 定性分类物质识别 / 真伪鉴别fromsklearn.svmimportSVCfromsklearn.metricsimportaccuracy_score,classification_report# 初始化并训练 SVM 分类模型svm_modelSVC(kernelrbf,C10,gamma0.1,random_state42)svm_model.fit(X_train,y_train)# 模型预测与评估y_predsvm_model.predict(X_test)print(fSVM 分类准确率{accuracy_score(y_test,y_pred):.2f})print(分类详细报告)print(classification_report(y_test,y_pred))5.3 PLS 定量回归成分 / 浓度预测偏最小二乘回归PLS是光谱定量分析的经典算法完美适配光谱数据共线性、高维度的特点。fromsklearn.cross_decompositionimportPLSRegressionfromsklearn.metricsimportr2_score,mean_squared_error# 模拟回归标签浓度/糖度值范围 0~20reg_labelsnp.random.uniform(0,20,n_samples)X_reg_train,X_reg_test,y_reg_train,y_reg_testtrain_test_split(snv_spectra,reg_labels,test_size0.2,random_state42)# 训练 PLS 回归模型pls_modelPLSRegression(n_components2)pls_model.fit(X_reg_train,y_reg_train)# 预测与模型评估y_reg_predpls_model.predict(X_reg_test)print(fPLS 回归决定系数 R²{r2_score(y_reg_test,y_reg_pred):.2f})print(fPLS 回归均方根误差 RMSE{np.sqrt(mean_squared_error(y_reg_test,y_reg_pred)):.2f})# 绘制真实值与预测值对比图plt.figure(figsize(8,6))plt.scatter(y_reg_test,y_reg_pred,alpha0.7)plt.plot([0,20],[0,20],r--)plt.xlabel(真实值)plt.ylabel(预测值)plt.title(PLS 回归真实值 VS 预测值)plt.grid(True,alpha0.3)plt.show()六、工业实战落地场景算法效果的上限始终由光谱原始数据质量决定。优质硬件能够从源头降低噪声、抑制基线漂移大幅降低算法调试难度。食品检测水果糖度无损预测采用常规系列光纤光谱仪采集近红外光谱搭配 SG 平滑 AsLS 基线校正 PLS 回归方案实现水果糖度实时预测检测速度快、精度高可对接自动化分选生产线。制药行业原料真伪鉴别选用制冷型高灵敏度光谱仪采集拉曼光谱设备暗噪声极低适合微弱信号检测。结合 PCA 降维 SVM 分类算法可精准区分结构相似的原料药替代传统化学检测方式。环境监测水质 COD 快速检测使用紫外波段光谱仪采集水样光谱通过 PLS 回归模型建立光谱与 COD 指标的关联检测过程无需化学试剂无二次污染适用于户外现场快速巡检。以上场景均采用硬件设备 机器学习算法的组合方案上海辰昶仪器设备有限公司可根据不同行业需求提供对应的光谱硬件、配套软件以及技术支持适配从实验室研发到工业化在线检测的全场景需求。七、模型优化与常见问题避坑7.1 高频问题及解决办法模型过拟合训练集精度高、测试集精度低 → 扩充样本数量、使用 PCA 降维、增加交叉验证预测精度偏低光谱噪声大、基线畸变严重 → 优化光谱采集参数优先选用高信噪比光谱设备微调预处理算法参数模型泛化能力差样本覆盖场景单一 → 补充不同环境、不同批次的样品数据。7.2 进阶优化方向数据层面选择专业光谱仪器采集样本从源头保证数据质量特征层面结合变量筛选算法剔除无效波长点精简模型输入算法层面复杂场景可尝试 CNN、LSTM 等深度学习模型挖掘光谱深层特征。八、总结本文完整演示了机器学习在光谱分析中的全流程应用涵盖光谱预处理、降维聚类、分类、回归四大核心模块所有代码均可直接运行调试。光谱智能分析讲究数据为本、算法为辅优质的原始光谱数据是模型精准预测的前提。上海辰昶仪器设备有限公司深耕光谱领域多年产品覆盖全波段光纤光谱仪、制冷型高灵敏度光谱仪等品类配套分析软件集成预处理、机器学习建模等功能一站式满足科研教学、产品研发、工业在线检测等各类使用需求助力用户快速实现光谱数据分析与智能化落地。