22017校数学建模竞赛承诺书我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。我们知道,抄袭别人的成果是违反竞赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。参赛队员:1互联网时代的相亲配对模型摘要目前市场上的婚介机构运作模式落后,一般由机构的专业人员将注册会员的信息进行逐项比对,将匹配度较高的单身男女进行配对后,通知双方相亲。但由于注册会员的数量庞大,仅靠人工进行配对,不仅会存在很多的人为局限性,错过许多良缘,而且工作效率低下。合理地建立数学模型提高工作效率和配对准确度有着重要的意义,求解的具体流程如下:针对问题一,对数据中明显的错误进行修改,明显的错误包括单位看错,数值过大,脱离实际等。将数据中定性的量全部量化,用R实现多重插补的方法,得到完整数据集。针对问题二,将求男女满意度问题转化为图论问题。所给数据中年龄、身高等数据的单位不完全相同,变量之间数值相差很大,可以运用变量标准化处理方法解决此问题,对于无法确定使用方法的数据如“单位类型”等不予考虑。结合男女双方自身条件与对配偶的要求,使用欧几里得距离作为判断男女双方满意度大小的标准,得出男女双方满意度矩阵,最后利用Kuhn-Munkres算法进行匹配实现数量较小的一方达到整体满意度最大。针对问题三,运用层次分析法确定“年龄”,“身高”,“婚姻情况”,“文化程度”,“住房情况”和“收入”在决定男女优质程度中的权重,用Matlab编写程序进行排序,选择出男女排名前二十名的会员。最后,对所建立的模型与求解方法的优缺点给出客观评价,指出改进方法。关键字多重插补法二分图欧几里得距离标准化Kuhn-Munkres算法层次分析法2一、问题重述1.1引言所谓相亲,就是通过红娘将素不相识的两个男女约到一起。相亲比网恋更为真实,毕竟红娘对对方的家境以及人品有所了解;相亲又比邂逅来得稳妥,一见钟情的感情往往不会长久。所谓配对,是指根据一群男女自身的基本条件及择偶条件,为达到整体满意度最大进行组合。21世纪人类进入互联网时代,物质条件相比过去有了长足的发展。但是现代社会的剩男剩女却越来越多,现在电视上各种相亲节目层出不穷,各种商业性的婚介机构也相继出现。目前市场上的婚介机构运作模式大都是单身男女交纳一定数量的费用成为会员,然后由机构的专业人员将注册会员的信息进行逐项比对,将匹配度较高的单身男女进行配对后,通知双方相亲。但由于注册会员的人数往往数量庞大,仅靠人工进行配对,不仅会存在很多的人为局限性,错过许多良缘,而且工作效率低下。1.2问题的提出某婚介机构网站要求加入的会员在上网注册时,填写自身基本条件与择偶条件,如会员相亲成功,则抹去相应的信息。眼下网站共有1053位会员,其中男会员496位,女会员557位。详细的数据资料见附件。为提高运作效率,网站希望能够通过建立数学模型,解决下面问题。问题1:由于种种原因,数据资料中存在一些缺失、错误或不按常规要求填写的数据。请进行合理的补充或修正;要求写明补充或修正的依据。问题2:建立一个可以进行实时配对的数学模型,使得通过该模型运算结果进行配对时,能够使当前会员对配对对象的满意度整体上达到最大。请列出对当前会员运算结果中显示的部分配对情况(比如20对左右)。问题3:分别按照男会员与女会员的自身基本条件进行排序,要求分别列出前20名优质的男女会员的序号。二、问题分析2.1问题一分析原始数据错误很多是由于会员填写时没有看清选项内容的单位,或者会员因不愿填写此项内容而乱填数据,这些数据可以直接用Excel的“筛选”功能来修改。对于数据不规范的问题,若直接将数据导入R中,由此形成的数据框,每一列的数据类型并不相同,对数据的处理产生影响;而使用统计和概率的方法来插补缺失数据,需将所有数据统一数值类型,即需完成以下内容从而使数据类型统一,将定性数据定量化与将字符型数据转化为其对应的数值意义的数值数据。针对缺失数据的插补,运用基3于多重插补的方法对数据进行插补,R中的mice包中的mice()函数可以做到这一点。2.2问题二分析由表格中的数据得出,会员的“地区”填写混乱,单位不统一,“地区”处理非常麻烦;并且数据中并未给出任何“单位类型”的要求,无法具体量化,故忽略“地区”和“单位类型”对男女双方的配对影响。因此,可对部分数据进行量化,考虑到年龄、身高等数据单位不同,并且变量之间数值相差很大,可以进行变量标准化处理,从而达到把实际问题转化为图论的问题进行处理的目的。结合男女双方自身条件和对配偶的要求,使用欧几里得距离判断男女双方互相满意的程度,最后利用Kuhn-Munkre算法(下文用KM算法代替)进行匹配男女双方的满意度从而使整体满意度最大。因为只有当男女双方自身条件相差不是很大时,两者配对成功的概率才会更大,所以我们定义:满意度是指男性配偶要求和女性自身条件,女性配偶要求和男性自身条件的相似程度,两者相似程度越大,满意度越高,此时两者成功配对成功的概率越大。2.3问题三分析为了找出优质会员,可用“年龄”,“身高”,“婚姻情况”,“文化程度”,“住房情况”和“收入”加权之后来表示男女的优秀程度。但在数据处理过程中不能直接主观赋权,所以采取层次分析法确定权值,思路是定性确定每一项影响评价男女优质程度的因素之间的重要性比值,这些值形成一个矩阵,对此矩阵运用层次分析法,得到权值。其次,对“年龄”,“身高”,“婚姻情况”,“文化程度”,“住房情况”和“收入”加权之后求和,选取和值中最大的前二十个,对应的会员即为所求排名前二十的会员。三、模型假设1.其余完整数据均是真实数据2.缺失数据为完全随机缺失或者随机缺失3.不考虑地区和工作单位的影响;3.假设男女双方的各项自身数据都是如实填写;5.假设双方都是结合自身条件来决定各自的配偶要求。6.用“年龄”,“身高”,“婚姻情况”,“文化程度”,“住房情况”和“收入”加权之后来表示男女的优秀程度。四、模型的建立与解决4.1问题一模型44.1.1符号说明表中数据量化:表4.1男性女性自身条件数据量化表性别男性1女性2婚姻状况丧偶1离婚2未婚3文化程度小学1初中2高中3中专4大专5本科6研究生7硕士8博士9单位类型国有企业1上市公司2世界500强3事业单位4私营企业5外企企业6政府机关7自有公司8私营个体9住房情况其他1与父母同住2单位房3准备购房4已购房5多套房6地区本市区1地区不限2表4.2男性女性配偶要求数据量化表婚姻状况不限1丧偶2离婚3未婚4文化程度小学1初中2高中3中专4大专5本科6硕士7博士8住房情况不限1一起购房2单位房3已购房4与父母同住另有婚房5多套住房64.1.2模型建立Step1.Excel数据修改分析数据错误,使用Excel更改错误明显的数据,例如单位错误,错误理解选项的意思,具体操作如下:(i)身高1.77,把单位当作米,应改为177;身高为0,此空未填,应改为缺失值;(ii)文化程度为“请选择”,应改为缺失值;(iii)年龄差下限,若数值大于20,不符合实际情况,应是会员理解错误,改为“此时的年龄差下限-会员的年龄”,如果这个差值过大,则将年龄差下限改为缺失值;同理可将其应用到年龄差上限,身高上下限,及收入的处理上。Step2.用R语言更改“收入”等数据详细代码见附录一更改“收入”程序。4.1.3模型求解Step1.探究缺失数据的缺失模式此步骤由代码运行结果得出,详细代码见附录一探究缺失值的缺失模式程序。5图4.1缺失值分布图图4.2缺失值的精确分布图4.1右图和图4.2都描述了缺失值所在的位置,图4.1的右图红色代表缺失,蓝色代表正常,图4.2中颜色越深代表值越大,红色代表值缺失。从图形可以直观地看出,数据表格中每一项缺失的比例,其中图4.1左图中直方图形象地描述了缺失值所占比例,其中身高上限缺失最多,“收入2”其次;图4.2说明除了身高上限有明显缺失外,其余数据均无明显缺失。下面是数值表示的精确缺失比例:表4.3Variablessortedbynumberofmissings(变量按缺失值比例大小排序)Variable(变量)Count(比例)身高上限0.196581197收入20.051282051婚姻状况20.035137702年龄差上限0.032288699收入0.031339031文化程度20.027540361地区0.024691358住房情况20.020892688年龄差下限0.012345679住房情况0.010446344身高下限0.010446344身高cm0.002849003文化程度0.002849003单位类型0.002849003性别0.000000000年龄0.000000000婚姻状况0.0000000006Step2.用R语言补充缺失数据——mice包插补数据的数学原理:多重插补法多重插补(MI)是一种基于重复模拟的处理缺失值的方法。此方法,它将从一个包含缺失值的数据集中生成一组完整的数据集(通常是3到10个)。每一个模拟数据集中,缺失数据将用蒙特卡洛方法来填补。多重插补方法的R实现:mice包是基于多重插补来处理缺失的一个R语言函数。缺失值的插补通过Gibbs抽样完成的。每一个包含缺失值的变量都默认可通过数据集中的其他变量预测得来,于是这些预测方程便可用来预测缺失值的有效值。该过程不断迭代直到所有的缺失值收敛为止。对于每一个变量,都可以选择预测模型的形式(称为基本插补法)和待选入的变量。详细代码见附件一插补数据得到完整数据原始数据和补插之后的数据的对比:图4.3收入与其他条件的散点图其中蓝色代表原始数据,红色代表插补后的数据。7图4.4成员自身条件与配偶要求密度图其中蓝色代表原始数据,红色代表插补后的数据。图4.5插补值在原始数据中的位置其中蓝色代表原始数据,红色代表插补后的数据。4.2问题二模型建立与解决4.2.1符号说明分别从年龄,身高,婚姻状况,文化程度,住房情况,收入六个维度来记录处理数据,8为了方便数据处理与表示,进行以下符号说明:表4.4符号说明男性自身条件BS=(x1(1),x2(1),x3(1),x4(1),x5(1),x6(1))男性配偶要求BD=(x1(2),x2(2),x3(2),x4(2),x5(2),x6(2))女性自身条件GS=(y1(1),y2(1),y3(1),y4(1),y5(1),y6(1))女性配偶要求GD=(y1(2),y2(2),y3(2),y4(2),y5(2),y6(2))xj(1)分别代表男性自身条件中的年龄,身高,婚姻状况,文化程度,住房情况,收入;xj(2)分别代表男性配偶要求中的年龄,身高,婚姻状况,文化程度,住房情况,收入;yj(1)分别代表女性自身条件中的年龄,身高,婚姻状况,文化程度,住房情况,收入;yj(2)分别代表女性配偶要求中的年龄,身高,婚姻状况,文化程度,住房情况,收入;j可以取1,2,3,4,5,6。4.2.2模型建立Step1:显然BS,BD,GS,GD均为6维向量,两个6维向量的欧几里得距离为:D=√(𝑥1−𝑦1)2+(𝑥2−𝑦2)2+(𝑥3−𝑦3)2+(𝑥4−𝑦4)2+(𝑥5−𝑦5)2+(𝑥6−𝑦6)2配偶要求BD自身条件BS配偶要求GD自身条件GSE2E1图4.6男性女性之间欧几里得距离示意图如图4.6所示:BD和GS的欧几里得距离:E1=√(x1(2)−y1(1))2+(x2(2)−y2(1))2+(x3(2)−y3(1))2+(x4(2)−y4(1))2+(x5(2)−y5(1))2+(x6(2)−y6(1))2GD和BS的欧几里得距离:E2=√(x1(1)−y1(2))2+(x2(1)−y2(2))2+(x3(1)−y3(