评价食品风味的好坏,历来是食品研发领域技术性很强的一项工作。该项评价既需要借助现代科学技术,也需要经验的积累,还需要生理学、心理学和数理统计学等方面的知识,才能保证评价结果的科学性和可靠性。食物中各种挥发性成分的鉴定开始于 20 世纪,研究人员使用色谱——质谱联用仪对数千种风味化合物进行了结构分析及在食品香气成分中的高灵敏度定量分析。食品中的风味物质具有浓度极低、组分多、结构复杂、挥发性高、稳定性差以及与食品中其他组分间存在动态平衡等特点。因此,食品风味成分的分析、分离、提取、合成、模拟以及控制释放都具有很大难度。
我们对市售的若干种牛乳制品进行了常见呈味物质的测量,并组织了人员对其风味进行了品评。具体的物质按照分子量和大致结构被分为若干类,以 A、B、C 等代号标注。参与品评的是 8 位经过短期培训的人员,对每种风味的打分为 0(极弱/无法感知)——9(极强),最终结果为分数的平均值。最后,我们对消费者的喜好程度进行了问卷调查,参与问卷的有 60 位随机选择的消费者,对喜好程度的打分为 0(非常不喜欢)——9(非常喜欢),最终结果为分数的平均值。我们希望通过对这些数据的研究以及相关专业知识,解决如下问题。
第一阶段问题:
1. 请研究不同的风味分别与哪些物质有关。
2. 请研究不同的风味对消费者喜好程度的定量影响。
牛奶、酸奶、奶酪等各种乳制品,应该是世界上最受欢迎的牛乳制品种类之一。乳制品的吸引力,在于其独特的风味口感:柔和、醇厚、带有奶香。当然,不同人群对于不同风味的乳制品喜好程序不同,而乳制品的成分物质是如何影响乳制品风味的,我们有必要利用相关数学算法针对乳制品风味与成分物质、人群对乳制品不同风味的喜好程度进行分析,并给出强关联规则。
针对问题一,我们选取 6 种评价指标,并得出不同风味下不超过 4 种影响乳制品风味的成分物质。首先,我们将数据分为两类,对牛乳制品风味变量数据、牛乳制品成分变量数据进行标准化处理,接着采用皮尔逊相关系数对不同风味下的不同成分物质进行相关性分析。最后,根据主成分分析对得到的影响风味的成分物质进行综合评价,使求得的结果更加准确。
针对问题二,首先以河流图的形式可视化所有风味的数据分布情况,得出 12个牛乳制品风味变量之间,牛奶味、奶油味、甜味数据波动性一致,咸味,蒸煮味,膻味数据波动性一致,这一结论为后续探究不同的风味对消费者喜好程度提供依据。然后通过 Apriori 算法,数据挖掘出基于风味与是否喜好的频繁项集(频繁 3 项集),建立基于 Apriori 算法的牛乳制品风味的喜好数学模型,进而得到了乳制品风味与喜好度之间的强关联规则。
1.假设附件中的数据真实
2.假设样本数据符合正态分布
3.假设产品保持环境等保证基本的控制变量
4.假设样品都属于正常风味状态未变质或过期
5.假设主观喜欢程度评价即主观味道强度打分不受除样品外的其他客观条件影响
import pandas as pd
import numpy as np
df = pd.read_excel("D 题数据.xlsx")
sf = df.iloc[:,1:-1]
sf.corr(method ='pearson').to_excel("相关性系数.xlsx")
sf = pd.read_excel("相关性系数.xlsx")
df1 = df.iloc[:,1:2]
pf = df.iloc[:,11:-1]
#数据标准化
df1 = pd.merge(df1,pf,left_index=True,right_index=True)
df1.corr(method ='pearson')
from scipy.stats import zscore
#df1=zscore(df1)
df_A = df.sort_index(by = '烯 A')
from pyecharts import Bar
bar = Bar("12 个样本中烯 A 物质数据分布直方图")
datax = df_A['产品']
datay = df_A['烯 A'].round(1)
bar.add("12 个样本种烯 A 物质数据分布情况
", datax, datay,is_random=True,is_label_show=True)
bar.render("12 个样本中烯 A 物质数据分布直方图.html")
from scipy.stats import zscore
#a=np.loadtxt("Pdata11_8.txt")
print("相关系数阵为:\n",np.corrcoef(af.T))
#b=np.delete(,0,axis=1) #删除第 1 列数据
c=zscore(af); r=np.corrcoef(c.T) #数据标准化并计算相关系数阵
d,e=np.linalg.eig(r) #求特征值和特征向量
rate=d/d.sum() #计算各主成分的贡献率
print("特征值为:",d)
print("特征向量为:\n",e)
print("各主成分的贡献率为:",rate)
k=1; #提出主成分的个数
F=e[:,:k]; score_mat=c.dot(F) #计算主成分得分矩阵
score1=score_mat.dot(rate[0:k]) #计算各评价对象的得分
score2=-score1 #通过观测,调整得分的正负号
print("各评价对象的得分为:",score2)
index=score1.argsort()+1 #排序后的每个元素在原数组中的位置
print("各个风味的编号排序为:",index)
from pyecharts import Line
line = Line("Change of XI-A")
line.add("",dft_a['烯 A'],dft_a['塑料味
'],mark_line=["average"],is_smooth=True ,is_label_show=True,is_
random=True)
line.render('烯 A 影响塑料味折线图.html')