多元指纹图谱技术结合模式识别在牛乳品质控制中的应用【附代码】
✨ 长期致力于牛乳品质、模式识别、数据融合、流动注射指纹图谱技术、荧光指纹图谱技术研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1流动注射指纹图谱与电荷去卷积化蛋白识别建立流动注射质谱指纹图方法每个样品分析时间2分钟。采用电荷去卷积算法MoWeD将原始m/z谱转换为完整蛋白分子量分布。MoWeD核心是基于最大熵原理迭代优化电荷分配使重建谱峰的半高宽最小化。在含β-乳球蛋白A18,362.5 Da和B18,277.5 Da的标准品实验中MoWeD成功分离两者分辨率达到150。针对掺假检测采集生鲜乳与掺入0.5%-10%大豆蛋白或乳清蛋白的样品。结合PLS-DA和SVM分类器使用5折交叉验证SVM径向基核gamma0.1的分类准确率达100%而PLS-DA为96.7%。利用SVR预测掺假浓度测试集决定系数R^20.89RMSE0.85%。进一步的多分类任务识别掺假种类大豆蛋白、乳清蛋白、尿素中SVM宏平均F1分数为0.93优于BP-ANN的0.87。该方法检测限0.5%w/v满足乳品工业快检需求。2ATR-FTIR光谱与化学计量学融合检测还原乳采集生鲜乳和不同比例5%-50%还原乳样品的红外光谱4000-400 cm-1。数据预处理比较了Savitzky-Golay平滑、SNV、MSC、一阶导数。结果表明SNV预处理结合PLS-DA的分类正确率最高100%而MSC稍低97%。采用集群分析MPA比较五种模式识别算法SVM、NB、RF、SIMCA、PLS-DA使用10种评价指标准确率、灵敏度、特异性、MCC等。SVM在径向基核下综合性能最佳准确率95%特异性98%MCC0.91标准差5%。回归任务中用PLSR预测还原乳掺假比例SNV预处理后模型R^20.8846RMSEP4.2%而原始光谱R^20.65。特征波段筛选C-H伸缩区2800-3000 cm-1和酰胺I带1600-1700 cm-1可进一步将RMSEP降至3.1%。该方法在现场检测中单样本耗时1分钟。3低中维数据融合与三维荧光结合平行因子分析将完整蛋白指纹图谱和多肽指纹图谱UPLC-Q-TOF-MS得到进行数据融合。低维融合将两种指纹的主成分分数拼接中维融合提取公共潜在变量后融合。融合后的PLS-DA模型对生鲜乳和还原乳的分类正确率100%检测限0.5%。平行因子分析(PARAFAC)处理三维内源荧光数据激发250-400nm发射300-550nm得分图清晰区分生鲜乳和还原乳簇间距离/簇内径3。但存在部分重叠进一步用SVM分类准确率95.83%。对于二维外源荧光加入1,8-ANS染料PCA载荷分析显示主成分1和2的最大发射波长均为450-500nm表明染料与乳蛋白结合。SVM分类正确率达100%检测限0.5%。综合上述建立了牛乳品质控制的大数据平台原型支持从光谱到质谱的多模态分析。import numpy as np from sklearn.svm import SVC, SVR from sklearn.preprocessing import StandardScaler from sklearn.model_selection import cross_val_score from scipy.signal import savgol_filter import pandas as pd def moWed_charge_deconvolution(mz_intensity, charge_range(1,30)): # 最大熵电荷去卷积 (简化) mz, I mz_intensity mass_list [] for z in range(charge_range[0], charge_range[1]1): mass (mz - 1.0079) * z mass_list.append(mass) # 直方图累积 hist, bins np.histogram(mass_list, bins500, weightsnp.repeat(I, len(charge_range))) return bins[1:], hist def snv_preprocessing(spectrum): # 标准矢量归一化 mean np.mean(spectrum) std np.std(spectrum) return (spectrum - mean) / std def mid_level_fusion(features1, features2, n_components5): # 中维数据融合: 使用CCA或PLS提取潜变量 from sklearn.cross_decomposition import PLSRegression # 假设features1和features2为相同样本的不同特征 pls PLSRegression(n_componentsn_components) # 使用伪目标或拼接 fused pls.fit_transform(features1, features2)[0] # 提取X scores return fused def milk_adulteration_classifier(train_spectra, train_labels): # SVM分类器 scaler StandardScaler() spectra_scaled scaler.fit_transform(train_spectra) svm SVC(kernelrbf, gamma0.1, C1.0, probabilityTrue) scores cross_val_score(svm, spectra_scaled, train_labels, cv5, scoringaccuracy) svm.fit(spectra_scaled, train_labels) return svm, scaler, np.mean(scores) # 示例 if __name__ __main__: # 模拟流动注射数据 mz np.linspace(1000, 20000, 500) intensity np.exp(-(mz-18200)**2 / 1000) 0.5*np.exp(-(mz-18360)**2 / 800) masses, hist moWed_charge_deconvolution((mz, intensity)) print(Detected masses (Da):, masses[np.argmax(hist)]) # 红外光谱示例 fake_spectra np.random.randn(100, 1000) fake_labels np.random.choice([fresh, reconstituted], 100) model, scaler, acc milk_adulteration_classifier(fake_spectra, fake_labels) print(CV accuracy:, acc)