数学建模札记——评估模型(三)
因为这几天没看新闻,微信后台一个同学让我找一本书,超过48小时后无法回复。QQQ对这位朋友说了声抱歉,看到的话可以直接加我好友~其他想找书的同学也可以直接加我微信...毕竟如果不是网上能找到的免费电子书,国家图书馆协会的书基本都是三元,自己掏钱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岁时,我们认为基本脱离了年轻范畴,隶属度全部为零。如果一个人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法,我们会找到指标,进行综合评分,常用来比较几个学生的成绩,给出一个排名。以上评价指标实际上对应的是这里设置的因子。我们可以用因子聚类的四个指标来评价一个学生的综合表现。
评论集是对应对象的评价结果,类似于上面说的“打分结果”。不同的是,评论集不是分数的集合,而是由模糊概念组成的评论。例如,要评估学生的表现,我们可以将注释集设置为。评论集中的这三条评论都是比较模糊的概念,但是在处理具体问题的时候,我们也可以把方案放到评论集中来选择最佳方案。
重量设置就是你想要的重量。给每个指标一个权重,用来综合评价,我就不多说了。这里,我们可以把权重集作为因素集中四个指标的权重。
模糊综合评价模型解决什么问题?嗯,其实就是给定一个对象,用因子集的指标对它进行评价后,从评论集中找到一个最适合它的评论。如果评论的重点是方案,那就是选择最合适的方案。那么这个“适合”的衡量标准是什么呢?很明显,是隶属度,一个模糊集的隶属度。
好了,总结一下,比如我们现在有一个学生,一个因素集,一个权重集,一个评论集。我们的目的是在一些操作之后给学生一个适当的评论。你懂吗~
一级模糊综合评价模型,即因素集中度只有一层评价指标,没有一层的嵌套,这也是最基本的情况。
解决这个问题,主要有几个步骤。
好了,到目前为止,我们已经学会了一级模糊综合评判的解题步骤。这一点也应该认识到。最重要的是明确判断矩阵和权向量。乘以二,综合隶属向量就出来了。选择最大的一个。就像权重向量之前说的,如何求判断矩阵的隶属度,或者说判断矩阵?上面也提到了确定隶属函数的方法。利用隶属函数,可以得到隶属度。在实际建模中,我们经常使用“赋值法”来指定一个符合实际问题的隶属函数,也可以使用其他方法。只要知道判断矩阵和权重向量,评价问题就基本解决了。
其实解题步骤挺简单的,只是前面准备的太多了,所以写的比较多,做起来也不是很复杂。我会找一个中国大学大型开放式网络课程的例子来展示解题过程。好吧,全用手打太浪费时间了,我就地图了。
这是题目,即给出了污染物的浓度和空气质量等级中各污染物的权重。让我们来确定这一天的空气质量等级。
下图显示了评估标准。
污染物浓度是本题的因子集,空气质量四个等级是评论集,也是一个模糊概念。比如,当TSP的浓度为0.20时,我们不能单纯从TSP的角度来确定空气质量等级是一级还是二级,但是我们可以确定相对于各个等级的隶属度。
如何确认会员资格?这里可以用赋值法指定四个模糊集的隶属函数,采用最常用的更符合题意的梯形分布隶属函数。可以发现,“一级”应该是一个很小的模糊概念,即污染物浓度越低,属于“一级”的程度越大;“二级”和“三级”应该是中间概念。当污染物浓度处于中间某一范围时,对应的隶属度较大;“四级”是一个很大的概念,污染物浓度越大,属于“四级”的程度就越大。在我们确定了评论集中模糊概念的类型后,我们可以给出相应的梯形分布隶属函数。如下图。
这与上表中各污染物浓度恰好处于1234四个等级时的数值相对应。从隶属函数的角度来看,当污染物浓度等于本表中的数值时,相对于相应空气质量等级的隶属度正好为1。应该不难理解,想想就知道了。
确定隶属度函数,将各污染物在这一天的浓度直接带入隶属度函数,从而得出隶属度,得到判断矩阵。
利用判断矩阵和权重向量,可以直接计算出综合隶属度向量。
显然,这一天的空气质量最大程度上属于二级,所以我们认为这一天的空气质量等级为二级。
嗯,例题也准备好了。可以去中国大学大型开放式网络课程搜索华中农业大学的数学建模课程,对模糊综合评价有更详细的讲解。这个例子也来自这门课。嗯,还有其他建模方法。
多级模糊综合评价实际上相当于将几层因素集相加。比如我们要同时处理20个评价指标,确定权重会比较麻烦。然后我们可以把这20个指标分成四大类,在每一类内确定一次指标的权重,再确定四大类的权重。这样会更方便。如果指标多,可以嵌入几层,即多级模糊综合评价。
上图所示的学生评价模型是两级综合评价模型,指标后面的数字代表相应级别的权重。此时我们如何确定判断矩阵?第一层的判断矩阵肯定不可能一上来就确定,需要从最后一层一步步往上推。
比如我们在考察学习成绩对应的隶属向量时,需要考察它的下一级指标,即专业课程成绩和非专业课程成绩。比如Z同学的专业课成绩是90分,那么从这个指标来看,Z同学的隶属向量是,评论集依然是“优、良、差”。然后看非专业课程的分数,得到一个隶属向量。利用这两个向量,我们可以构造一个矩阵,表示学习成绩指标下由两个二级指标组成的判断矩阵。那么学习成绩一级指标相对于评论集的隶属度向量是怎么得到的?很简单。我以为有一个重量向量。如果我们使用,就可以得到一个新的向量,这个向量自然就是Z学生相对于来自学习成绩指标的评论集的隶属度向量。嗯,除此之外,就是两个二级指标隶属度的加权和,应该不难理解。
同样,得到其他一级指标的隶属度向量,形成一级指标的判断矩阵,再进行加权,得到综合隶属度向量。
嗯,其实就是得到一级指标的判断矩阵,得到一级指标的隶属度向量,然后和一级指标的隶属度向量形成判断矩阵,得到一级指标的隶属度向量,这就是用于综合评价的隶属度向量。
嗯,就这样吧~
至于局限性就不说了,只知道使用条件,不知道说什么,就这样吧,下期见~
对了,最后提醒一下,如果想找pdf代发,和淘宝上的业务差不多。可以直接在微信官方账号Twitter里的消息小程序里留言,也可以加我微信。后台回复的话,如果没有及时看到,48小时后就不能回复了。嗯,没有劳务费。网站的三块钱你得自己出。
以上。