数学建模笔记——评价类模型(三)
最近回到老家养生,逗逗鸡遛遛狗看看小说,就没怎么更新,当然也没怎么学习,不知不觉都一周了……嗯,这样确实不太好,接下来会恢复更新的频率,一周两三篇。由于就我一个人写,效率也不太高,还请谅解。
由于这几天没看消息,微信后台有个同学拜托我找书,但超过48小时就无法回复了,qwq向这位朋友说一声抱歉,如果看到的话可以直接加我好友~其他想找书的同学也可以直接加我微信……毕竟如果不是网上可以找到的免费电子书,全国图书馆联盟的书基本都是三元一本,自己付费hhh……淘宝一般收五元一本,想来这两元就是人工费了……所以不是我要收三块钱,是人家网站要收三块钱……
好的,废话不多说,今天再讲一个评价类模型——模糊综合评价模型。
事先声明,我也是第一次接触这方面知识,可能无法很好地去解释原理什么的,应用的过程我会好好写的。
(至于上一篇文章说的熵权法还有一个之前提到的灰色关联分析,回头我再补上)
首先来说明以下“模糊数学”,模糊数学是研究和处理模糊现象的一种数学理论和方法。在实际生活中,有许多概念难以用确定性的集合去描述。例如“年轻”这个概念,是15 30岁属于年轻呢,还是18 25属于年轻呢?对于这种问题,每个人可能会有不同的看法,也很难给出精确的范围,我们可以把它理解成一种模糊的概念。
生活中常提到的大与小,长与短,美与丑等概念,都是一种模糊的概念。其实还蛮好识别的,可以问问自己,多大算大?多小算小?多长算长?这种问题感觉有点儿抬杠似的,不过正是因为没有一个精确的范围,我们只能发出这样的疑问。与这种模糊概念相对应的,就是确定性概念了,例如性别,一般而言不是男就是女,且基本有了准确的划分依据;再比如身高,都是180,190这样的测量结果,也是十分精确,并不会有太大歧义的。注意,“身高”是一个确定性概念,而“高”就是一个模糊性概念,大家自己想一想hhh
模糊数学就是用来处理涉及模糊概念的问题,尝试使用某种方法将模糊的概念量化,方便进行处理计算。模糊综合评价,自然就是模糊数学在评价类问题的一大应用了,也就是处理涉及模糊概念的评价类问题。
其实也可以发现了,评价类问题的核心之一,就是把各种评价指标量化,再去加权啦求和啦等等,基本都差不太多,模糊综合评价模型也是如此,理解以及实践起来都不是太难。(此处仅指我接触到的评价类模型,太高深的就不晓得了)
为了更好地解释之后的模型,有必要介绍一些模糊数学里的相关概念。
首先回顾一下经典的集合。我们在高中的时候就接触了集合的概念:具有相同属性的事物的集体。这种经典集合有一些基本属性,例如确定性,给定一个集合,任给一个元素,这个元素要么属于,要么不属于这个集合,不存在第三种情况。
在模糊综合评价模型中,我们不用这种经典的集合,因为我们要处理的是模糊概念,所以需要使用模糊集合。模糊集合是用来描述模糊性概念的集合,它与经典集合的区别之一是,模糊集合不具备确定性。例如35岁,我们既可以认为它“年轻”,也可以认为它是“中年”,并没有一个精确的界定。
因此,我们不像传统集合那样,一个元素要么属于一个集合,要么不属于。我们使用“隶属度”来表示元素与模糊集合之间的关系,也就是元素隶属于模糊集合的程度。谈到隶属度,就有必要提到隶属函数,这是一个很重要的概念。简单而言,隶属函数就是隶属度对各个元素的函数,定义域是我们所研究的元素,函数值就是隶属度。隶属度的范围是 ,其值越大,就代表越属于这个集合。(隶属函数内实际上不是按定义域值域去描述的,这里只是方便理解qwq)
举一个简单的例子。我们要衡量“年轻”这个概念,不好直接在0-150岁之间画一条线,把年轻和不年轻区分开。因此对于0-150之间的每一个整数年龄,我们给定一个相应的值,也就是隶属度,来判断它与“年轻”这个集合的关系。为了更方便的给出这样的值,就设计了以我们想要研究的元素——这里是0-150之间的整数——为定义域的函数,隶属函数。该隶属函数 定义如下。
其中A代表模糊集合,在这里即是“年轻”这个集合,x代表集合中的元素,即0-150之间的年龄,我们可以画出函数图像。
可以发现,当年龄小于20时,相应的隶属度为1,即我们认为小于20岁一定属于年轻的范畴;当年龄在20到40之间时,隶属度随着年龄的增大而逐渐变小;当年龄大于40时,我们认为其基本脱离了年轻的范畴,隶属度也全部为0。如果一个人30岁,我们无法认定他是否年轻,但我们使用0.5这个隶属度,认为30岁有50%的程度,属于年轻的范畴,也有50%的程度不属于年轻的范畴。0.5衡量了30岁这个年龄属于年轻这个集合的程度,表达了30岁和“年轻”之间的关系。
我们也可以从概率的角度去理解隶属度,实际生活中隶属度的确定,也往往是通过调查来实现。例如问100个人,30岁是不是年轻,如果有40个人回答是,其隶属度就可以确定为 ,当调查的总数越大,这一值就越趋近于真正的隶属度。是不是很像“频率趋近于概率”呢?至于上面的隶属函数,只是为了方便理解随意构造出来的,并不等同于真实的调查结果,但是依然反映了构造者的主观想法。事实上,隶属函数也不是唯一的,不同的人,不同大小的样本,得出的隶属函数很可能是不同的。
嗯,基本的概念,也就是模糊集合,隶属函数,隶属度到此已普及完毕,由于我也接触没多久,可能讲得不太清楚准确。简单来说,我理解的隶属度,就是元素属于某个模糊集合的程度,而隶属函数就是用来确定隶属度的函数,就这样。倒也不必太多纠结,不影响后面的具体应用即可。
一般来说,模糊集合主要有三类,分别为偏小型,中间型和偏大型。其实也就类似于TOPSIS方法中的极大型、极小型、中间型、区间型指标,并没有什么特别的。举个例子,“年轻”就是一个偏小型的模糊集合,因为岁数越小,隶属度越大,就越“年轻”;“年老”则是一个偏大型的模糊集合,岁数越大,隶属度越大,越“年老”;而“中年”则是一个中间型集合,岁数只有处在某个中间的范围,隶属度才越大。总结来说,就是考虑“元素”与“隶属度”的关系,再类比一下,就是考虑隶属函数的单调性。下图可以代表“年轻”、“中年”、“年老”这三个模糊集合的隶属函数图像,看一下就懂我的意思啦。
为什么要知道模糊集合的分类呢?因为在模糊综合评价模型中,需要确定相应的模糊概念属于偏大型还是偏小型还是中间型,之后再采用相应的隶属函数,才能求出合适的隶属度。再次注意,不管模糊集合是哪一种类型,隶属度越大,属于这个集合的程度也越大,记住了吗?
以上只是常见的三种,其实想一想就知道,应该有蛮多形状的,只要一个元素对应一个隶属度,且范围在 之间即可。上述三种只是比较常见的三种,也是评价类问题常涉及的模糊集合类型。
当然啦,可能还有一些疑问,例如对于“年轻”,“年老”这种集合,我们把岁数当成了我们研究的元素,岁数是可以量化为数字的。类似的,快与慢这种模糊概念可以使用速度量化,深与浅可以使用深度量化等等。那,美与丑,使用啥子来量化呢?这个我也不晓得……想来没有一个常见的变量可以用来量化美与丑,一般的评价类模型中,应该也不会涉及到这种比较坑的问题吧(不会吧不会吧)。感兴趣的还是自行查阅吧……
确定隶属函数,其实也就是给定一个模糊集合,之后再通过某些方法,给出我们需要研究的元素相对于该模糊集合的隶属度。例如对于“年轻”这个模糊集合,我们就要想办法去确定0岁-150岁之间每个岁数相对于“年轻”集合的隶属度,画出图像,便是隶属函数的图像了。
具体有三种方法来确定隶属函数。
1.模糊统计法
模糊统计法的原理是,找多个人对同一个模糊概念进行描述,用隶属频率去定义隶属度。类似于求概率时,我们可以用频率趋近于概率。例子我们上文提到过,我们想知道30岁相对于“年轻”的隶属度,那就找来 个人问一问,如果其中有 个人认为30岁属于“年轻”的范畴,那 就可以用来作为30岁相对于“年轻”的隶属度。 越大时,这一估计越符合实际情况,也就越准确。其他的岁数也照这个方法去问,就能画出一个函数图像啦。
嗯,这个方法比较符合实际情况,但是往往通过发放问卷或者其他手段进行调查,数学建模比赛时,时间可能不太够吧,所以仅做介绍,基本不予采用。(不过现在淘宝填问卷还蛮快的,有钱真好)
2.借助已有的客观尺度
对于某些模糊集合,我们可以用已经有的指标去作为元素的隶属度。例如对于“小康家庭”这个模糊集合,我们想确定100户家庭的隶属度,那就可以用“恩格尔系数”衡量相应的隶属度。恩格尔系数=食品支出总额/家庭总支出,显而易见,家庭越接近小康水平,其恩格尔系数应该越低,那“1-恩格尔系数”就越大,我们便可以把“1-恩格尔系数”看作家庭相对于“小康家庭”的隶属度。不过这只是打个比方,毕竟对于富豪家庭,恩格尔系数很小,隶属度很大,但是富豪家庭是不是“小康家庭”,还是有待商榷的。
类似的,对于“设备完好”这一模糊集合,我们可以使用设备完好率来衡量隶属度,对于“质量稳定”这一模糊集合,我们可以使用正品率衡量隶属度。遇到问题的时候可以先百度一下,指不定就找到了一个好的指标。
不过要注意,隶属度是在 之间的,因此寻找指标的时候,也要注意在 之间。不在的话,可以进行归一化处理,之前提到过的。
这种方法建模中可以使用,看具体题目而定啦
3.指派法
这是一个主观性比较强的方法,即凭主观意愿,在确定模糊集合的所属分类后,给它指派一个隶属函数,得到元素的隶属度。听上去就很主观,但也是比赛中最常用的方法之一,只需进行选择,便可轻轻松松得到隶属函数。
我把常用的函数形式贴在下面。
图片可能不是很清楚,但基本可以看出,对于偏小型模糊集合,隶属函数总体上递减,也就是元素的某个特征越大,隶属度越小;对于偏大型集合,隶属函数总体上递增,也就是元素的某个特征越大,隶属度越大;对于中间型集合,隶属函数总体上先递增后递减,中间一部分或是某个点取到最大值。
实际建模比赛中,为了计算方便,最常使用的是梯形分布式隶属函数(我听的课是这么说的)。当然啦,具体问题还是要具体分析,隶属函数平滑一点,陡峭一点,中间一部分还是一个点取极值,都要根据具体的情况去抉择,但总体上就是这么回事了。
再看一眼梯形分布式的隶属函数图像。
以上就是确定隶属函数的几种方法了。还有一些其他的方法,比如德尔菲法,二元对比排序法,综合加权法等等,有兴趣可以自己查阅。
铺垫了这么久,总算可以用这个方法进行解题啦。
首先我们还是要引入几个概念。
举个例子说明,如果我们要评价一名学生的表现,按照之前提到的层次分析法或者TOPSIS法,都是找到指标后进行一个综合的打分,往往是用来比较多名同学的表现,给出排名。上述的评价指标,其实就对应着这里的因素集。我们可以令 ,使用因素集类的四个指标来评价一名学生的综合表现。
评语集,即是相应对象的评价结果,类似于上面提到的“打分结果”。不同之处在于,评语集并非是分数的集合,而是由模糊概念组成的评语。例如评定学生的表现,我们就可以把评语集设定为 。评语集中的这三个评语,都是模糊的概念,不过在处理具体问题时,我们也可以把方案放在评语集中,以选择最佳的方案。
权重集,就是你想的那个权重,给每个指标进行赋权,用来进行综合评价,就不多说了。在这里,我们可以取权重集 ,作为因素集中四个指标的权重。
那模糊综合评价模型解决的是什么问题呢?嗯,其实就是给定对象,用因素集的指标一番评价之后,从评语集中找到一个最适合它的评语。如果评语集中是方案的话,就是选出一个最恰当的方案。那这种“合适”用什么来衡量呢?显而易见嘛,就是隶属度,隶属于某个模糊集合的程度。
ok,举例概括一下,我们现在有一个学生,有一个因素集 ,有一个权重集 ,有一个评语集 。我们的目的就是一番操作之后,给学生一个合适的评语。明白了吧~
一级模糊综合评价模型,也就是因素集中的评价指标只有一层,不存在一层又嵌套一层的情况,也是最基本的情况。
解决这种问题,主要分为这么几步。
嗯,到此为止,我们已经学会了一级模糊综合评价的解题步骤。那应该也意识到了,最重要的就是明确判断矩阵和权重向量,两个一乘,综合隶属度向量就出来了,选择最大的就是。权重向量之前已经说过,那判断矩阵,或者说判断矩阵中的 个隶属度,怎么求呢?上面也提到了确定隶属函数的方法。有了隶属函数,隶属度也就可以求出来了。实际建模中,我们常常使用“指派法”,指定一个符合实际问题的隶属函数,使用其他方法也是可以滴。只要知道判断矩阵和权重向量,评价问题就基本解决了。
其实解题步骤还蛮简单的吧,只不过前面铺垫的太多,所以我写的也比较多,真做起来倒也不是很复杂。下面我就找一个中国大学MOOC上的例子,展示一下解题过程。嗯,全部手打太浪费时间,我就贴图啦。
这个是题目,也就是给出了污染物的浓度以及每个污染物在空气质量等级评定时的权重,让我们确定这一天的空气质量等级。
下图是评价标准。
污染物的浓度就是本题的因素集,空气质量的四个等级就是评语集,也是一种模糊概念。例如当TSP的浓度为0.20时,我们无法确定单从TSP的角度,空气质量等级是一级还是二级,但我们可以确定相对于每个等级的隶属度。
隶属度如何确认呢?这里我们可以使用指派法,指定四个模糊集合的隶属函数,采用最常用也比较符合题意得梯形分布式隶属函数。可以发现,“一级”应该是一个偏小型的模糊概念,即污染物浓度越低,隶属于“一级”的程度越大;“二级”和“三级”应该是中间型的概念,污染物浓度处于中间的某个范围时,相应的隶属度越大;“四级”是个偏大型概念,污染物浓度越大,隶属于“四级”的程度也越大。我们确定了评语集中模糊概念的类型后,就可以给出相应的梯形分布隶属函数了。如下图。
这里 对应的就是上表中每个污染物浓度恰好在一二三四这四个等级时的数值。从隶属函数的角度来看,当污染物浓度等于这表中的数值时,相对于相应空气质量等级的隶属度刚好为1。应该不是很难理解,想一想就大概明白了。
确定了隶属函数,直接把这一天的每个污染物的浓度带进隶属函数,就可以求出隶属度,得到判断矩阵了。
有了判断矩阵,也有了权重向量,就可以直接计算综合隶属度向量 啦。
显而易见,这一天的空气质量隶属于二级的程度最大,所以我们认为这一天空气质量等级为二级。
嗯,例题也讲好了。大家可以去中国大学MOOC上搜华中农业大学的数学建模课,里面有模糊综合评价更加详细的讲解。这个例题也来自该课程。嗯,还有其他的建模方法。
多级模糊综合评价,其实就相当于多了几层因素集。例如我们同时要处理20个评价指标,确定权重会比较麻烦,那我们就可以把20个指标分为四类,在每个类之内确定一次指标的权重,之后再确定四个大类的权重。这样子就会比较方便。如果有很多指标,就可以多嵌几层,也就是多级模糊综合评价了。
看上图这个学生评价模型,就是一个二级的综合评价模型,指标后面的数字代表在相应那一层的权重。这个时候我们如何确定判断矩阵呢?肯定是不能一上来就确定第一层的判断矩阵,需要从最后一层,一步一步推上来。
例如我们考察学习成绩这一指标对应的隶属度向量时,就需要先考察它的下一层指标,也就是专业课成绩和非专业课成绩这两个指标。例如Z同学专业课成绩是90,那从这一指标来看,Z同学的隶属度向量是 ,评语集还是“优秀、良好、差”。之后再看看非专业课成绩,得到一个隶属度向量 。我们用这两个向量,就可以构造出一个矩阵 ,这是一个 矩阵,代表着学习成绩这一指标下两个二级指标组成的判断矩阵。那如何得到学习成绩这个一级指标相对于评语集的隶属度向量呢?很简单呀,不是有权重向量 了吗。我们用 ,就可以得到一个 的向量,自然就是从学习成绩这一指标来看,Z同学相对于评语集的隶属度向量了。嗯,拆开了看,就是把两个二级指标的隶属度加权求和罢了,应该不难理解。
类似的,求出其他一级指标的隶属度向量,组成一级指标的判断矩阵,再加权一次,就可以得到综合隶属度向量了。
嗯,其实就是先得到 级指标的判断矩阵,得到 级指标的隶属度向量,再用 级指标的隶属度向量组成判断矩阵,得到 级指标的隶属度向量……以此类推,得到一级指标的隶属度向量,也就是用来综合评价的隶属度向量了。
嗯,讲完啦~
至于局限性就不说了,知道使用的条件也就行了,我也不知道说些什么,那就这样,下次再见~
对了对了,最后提醒一下,如果想要代找pdf,就是类似于淘宝上的业务,直接在公众号推文里的留言小程序留言即可,也可以加我微信。后台回复的话,如果没能及时看到,48小时后就无法回复了。嗯,不收人工费,网站那三块钱得自己付。
以上。