您的当前位置:首页正文

2017数学建模论文

2024-10-18 来源:威能网
“拍照赚钱”的任务定价

摘要

小四宋体

关键词:支持向量机 主成分分析

1.问题重述

“拍照赚钱”是用户下载APP,注册成为APP的会员,然后从APP上领取需要拍照的任务,赚取APP对任务所标定的酬金的过程。APP成为该平台运行的核心,而APP中的任务定价又是其核心因素。如果定价不合理,有的任务就会无人问津,而导致商品检查的失败。本题给出附件一:已结束项目的任务数据;附件二:会员信息数据:附件三:新项目任务数据(只有任务的位置信息)。

1. 研究附件1中的项目,任务定价规律,分析任务的未完成原因。 2. 为附件1中的项目设计新的任务定价方案,和原方案进行比较。

3. 实际情况时,多个任务可能因为位置较为集中,导致用户会争相选择,一种考虑是将这些任务联合在一起打包发布。在这种考虑下,如何修改前面的定价模型,对最终任务完成的情况有什么影响?

4. 对附件三中的新项目给出自己的任务定价方案,并评价该方案的实施效果。

1

2. 基本假设

1) 2) 3) 4) 5)

3. 符号说明

序号 1 2 3 4 5 6 7 8 9 10

符号 X1 X2 X3 X4 Q1 Q2

维度 经度 任务标价 任务完成情况 原方案成本 新方案成本

4.问题(1)的模型建立、求解

2

符号说明

4.1 问题分析

对于问题一,我们主要研究了附件一中的四项数据(任务gps维度、任务gps经度、

任务标价、任务执行情况)。通过初步观察任务的gps经纬度都和任务标价、任务执行情况相关,为了进行详细分析,我们采用了主成分回归分析法。

4.2 模型准备

主成分分析的目的主要是用较少的变量转化成彼此相互独立或不相关的变量,通常是选出比原始变量个数少,能解释大部分资料中的变异的几个新变量,即所谓主成分,并用以解释资料的综合性指标。由此可见,主成分分析实际上是一种降维方法。

主成分分析的结果受量纲的影响,如果改变量纲,则会由于各变量的单位可能不同而导致结果不一样,而回归分析是不存在这样的情况的,所以可以先把各变量的数据标准化,使用相关系数矩阵进行分析。我们使用主成分回归分析,是为了克服最小二乘(LS)估计在数据矩阵中存在多重共线性时表现出的不稳定性。 我们选择其中一部分重要的主成分作为新的自变量,丢弃了一部分影想不大的自变量,实际上达到了降维的目的,然后用最小二乘法对选取主成分后的模型参数进行估计,最后再变成原来的模型求出参数的估计。

4.3 模型建立与求解

4.3.1:数据的初步处理

由于附件一所给数据量纲不同,且数值差过大,我们对该数据进行了统一处理,处理如下(下表只显示部分处理数据,详细请看支撑材料):

表1 附件一部分数据

任务号码 A0001 A0002 A0003 A0004 A0005 任务gps 纬度 任务gps经度 22.56614 22.68621 22.57651 22.56484 22.55889 113.9808 113.9405 113.9572 114.2446 113.9507 3

任务标价 66 65.5 65.5 75 65.5 任务执行情况 0 0 1 0 0 A0006 22.559 114.2413 75 0

使用Excel求得任务经纬度和任务标价平均值后,分别除以所有该项目数据,得到如下(部分)结果:

表二 附件一处理后数据

任务号码 A0001 A0002 A0003 A0004 A0005 A0006 平均值 任务gps 纬度 任务gps经度 0.981881996 0.987106093 0.98233319 0.981825369 0.981566343 0.981571187 22.98254238 任务标价 任务执行情况 1.003904761 0.954989604 0 1.00354971 0.947754834 0 1 0 0 0 1.003696558 0.947754834 1.006227644 1.085215459 1.003639526 0.947754834 1.006198986 1.085215459 119.5375385

69.110778

4.3.2主成分分析回归模型 4.3.2.1 完成情况(X4)分析

首先我们利用Matlab软件求出任务gps维度X1,任务gps经度X2,任务标价X3的相关系数矩阵r和矩阵的特征值那么大,特征向量n,特征值贡献率

表3 X1,X2,X3相关系数矩阵

X1 X2 X3 X1 1.0000 -0.5206 0.0855 X2 -0.5206 1.0000 -0.0597 X3 0.0855 -0.0597 1.0000 相关系数矩阵的三个特征值依次为nameda1.5401 0.9811 0.4787 特征向量[0.6969,-0.6924,0.1868] [-0.1069,0.1573,0.9817] [0.7091,0.7042,-0.0357] 各个特征值的贡献率51.3376

32.7044

15.9581

前两个特征值的和所占比例(累积贡献率)达到:51.3376+32.7044,由此略去

4

第三个成分。

保留前两个成分(特征值)对应的两个特征方程为: Z1=x1+x2+x3 Z2=x1+x2+x3

对附件1处理后的数据直接做线性回归得经验回归方程得: y=-20.056232+10.673738*x1+8.624116*x2+1.383294*x3 作主成分回归分析,得到回归方程 Y=【0.1580,0.1672】【z1,z2】 化成标准化变量的回归方程为 Y=0.0922

-0.0831

0.1936 x1 x2 x3

恢复到原始的自变量,得到主成分回归方程: y=7.246556+4.192986*x1-12.250940*x2+1.436457*x3

由上可得,任务完成情况的好坏与维度和任务标价成正比关系,与经度成反比关系,且经纬度x1,x2 前的系数明显大于定价x3前的系数,由此,经度越高,维度越低的任务完成情况越好,定价将略微影响任务的完成情况,定价越高完成情况越好

4.3.2.2任务标价(X3)分析 与完成情况分析相仿

求出相关系数矩阵r与矩阵的特征值那么大

表4 X1,X2,X4相关系数矩阵r

X1 X2 X4 X1 1.0000 -0.5206 0.2202 X2 -0.5206 1.0000 -0.0749 X4 0.2202 -0.0749 1.0000 特征值1.5950 0.9467 0.4583 特征向量[0.6876 [-0.0935 0.3798

-0.6439 0.9203]

0.3356 ]

[0.7200 0.6642 -0.2009] 各个特征值的贡献率53.1660

31.5577

5

15.2763

前两个特征值的和所占比例(累积贡献率)达到:53.1660+31.5577,由此略去第三个成分。

保留前两个成分(特征值)对应的两个特征方程为: Z1=x1+x2+x3 Z2=x1+x2+x3

对附件1处理后的数据直接做线性回归得经验回归方程 y=1.449027+0.160356*x1-0.625815*x2+0.026279*x3 作主成分回归分析,得到回归方程 Y=0.1037 0.1650 z1 z2 化成标准化变量的回归方程为

Y=0.0559 -0.0041 0.1867 x1 x2 x3 恢复到原始的自变量,得到主成分回归方程

y=0.723047+0.342375*x1-0.081159*x2+0.025162*x3

由上可得,任务的定价与维度和任务标价成正比关系,与经度成反比关系,且经纬度x1,x2 前的系数明显大于任务的完成情况x4前的系数,由此,经度越高,维度越低的任务定价越高,任务的完成情况略微影响任务定价。 4.3.2.3模型的初步检验

由以上两个主成分回归分析方程可得 ,高定价的情况下,任务的完成情况较好。 我们做出任务完成和任务未完成的标价与地理位置(任务gps经纬度)散点图:

6

图3 标价与地理位置散点图(任务完成)

图4 标价与地理位置散点图(任务未完成)

其中在高标价段,任务完成的个数明显较未完成的个数多,由此可见主成分回归方程可信度较高。

由上可得任务定价规律:在经度高,的地区,定价较高;在经度低,维度高的地区,

7

定价较低。

未完成的原因:与定价规律相似,在经度高,维度低的地区,完成度较高;在经度低,维度高的地区,完成度较低。结合定价规律可得,未完成的原因是由于在该地区的定价稍微偏低引起的。

5. 问题(2)的模型建立、求解

5.1 问题分析与求解

为附件一中的项目设计新的任务定价方案,并和原方案进行比较。

由第一问可得任务定价与任务完成情况之间关系不大,但两者都与任务的经纬度有关(也就是与任务的地理位置有关),当任务地理位置的纬度高经度低时,任务的完成度和任务的定价都较高,这种安排很不合理。

由此我们得出新的任务定价方案,在纬度高经度低时(任务完成度情况好),降低定价;在纬度底经度高时(任务完情况不好),提高定价。该方案的与原方案比较 (1) 完成情况不好的地方通过提高定价,刺激该地区人群尽力完成任务

(2) 完成情况好的地方通过降低定价,舒缓该地区的竞争。

(3) 通过降低完成情况较好的地方的任务定价,可同时降低公司总的支出金额(需要

付给用户的总金额)

如下计算原方案和新方案公司的支出金额:

方案的总支出金额=任务定价*任务完成情况(详细计算可见支撑材料fujian1.xls) 原方案Q1=seigemax3*x4=36446 新方案:

我们将维度大于平均值,经度小于平均值的地区任务提高5元,把维度小于平均值,经度大于平均值的地区任务定价降低5元,而后计算支出总金额 Q2= (11)7298.5+(10)5943+(00)5173.5+(01)10631=29046

Q2由此可见通过这种不同地区升降价的方案,可以在提高任务完成率的情况下,又降低了公司的成本

8

6. 问题(3)的模型建立、求解

6.1 问题分析

在实际中多个任务可能会因为位置集中而使用户争相选择,给出一种考虑将任务打包发布。在这种考虑下修改前面的定价模型,并分析出其对任务完成情况的影响

对此类实际性的问题,通常的数据分析不能够很好的解释其中的影响,为此我们对这一问题进行了Matlab任务发布模拟,由此先计算出任务的完成度。

6.2任务发布模拟模型 6.2.1模型准备

首先我们对一些实际情况进行假设 不打包的情况下:

(1) 任务发布的时间随机(6:30-8:30随机发布)

(2) 预定时间早于任务发布时间的,那些会员都有机会抢得任务,其

他会员不得选择任务

(3) 会员抢得的任务几率与配额数相关 (4) 会员完成情况(成功概率)与信誉度有关 打包的情况下:

(1) 任务发布的时间随机(6:30-8.30随机发布)

(2) 预定时间早于任务发布时间的,那些会员都有机会抢得任务,其

他会员不得选择任务

9

(3) 打包任务仅发给预定限额(或信誉)较高的会员一人 (4) 会员完成情况(成功概率)与信誉度有关 6.2.2模拟模型的建立与求解

为了精确模拟中的参数我们将经纬度等分化为100000个区域每个区域的经纬度范围在【.0.0.0.0】之内。

通过Matlab求出任务密度分布和会员密度分布如下图

图5 任务密度分布

10

图6 会员密度分布

由上两图可得,会员密度分布和任务密度分布类似,在模拟中可直接考虑任务多的情况打包K为打包界限(当任务大于K值时,进行打包)。

基于以上模型我们可以得出任务完成的概率,由于模拟中的随机因素,我们需要取多次值求取平均,来确定两种情况下(不打包或打包)任务完成的平均概率。模拟数据如下:

由上两表可得在以原先定价的情况下,如果进行打包,将会导致任务

11

平均完成情况的升高。

在此继续分析K值(打包界限)变化时的情况:

由上可得,当K值增大时完成概率显著降低,而K值过小不符合实际情况,在此取值K=3。

基于问题一的模型方程 Y1 Y2

同时通过问题二的分析我们可以得出:当任务完成率上升时,任务定价也随之上升,考虑到问题一二中地域和成本的影响,应当适当的调低任务定价,又由Y1,Y2可得,调低定价将降低完成率,由此该拍照app可以在收入提高的前提下,使得任务完成率保持在与之前相同的水平。

问题四:

我们需要先分析任务的密度分布,分布如下图:

12

图6 任务密度分布

由第三问分析可得,该密度分布与会员分布十分相似,可以使用第三问的模拟,分析 6.3 模型建立与求解

6.3.1 模型建立 6.3.2 模型求解

7. 模型的科学性分析

7.1 问题(1)的科学性分析 7.2 问题(2)的科学性分析 7.3 问题(3)的科学性分析

8. 模型评价、推广

8.1 模型优点

(1) (2) (3)

13

8.2 模型缺点

(1)

8.3 模型推广

(1)

9.参考文献

[1] 司守奎,孙兆亮,《数学建模算法与应用》,北京:国防工业出版社,2015年。 [2] 姜启源,谢金星,叶俊,《数学模型》,北京:高等教育出版社,2016年。 [3] 陈素根,吴小俊,《基于特征值分解的中心支持向量机算法》,电子信息学报,2016,38(3):558-564。

[4] 作者,论文名,杂志名,卷期号:起止页码,出版年。(网络资源)

············以下为论文附录············

10.附 录

附录1 问题(1)回归方程

clc,clear

load sn.txt [m,n]=size(sn);

x0=sn(:,[1:n-1]);y0=sn(:,n); hg1=[ones(m,1),x0]\\y0; hg1=hg1'

fprintf('y=%f',hg1(1)); for i=2:n

if hg1(i)>0

fprintf('+%f*x%d',hg1(i),i-1); else

fprintf('%f*x%d',hg1(i),i-1) end end

fprintf('\\n') r=corrcoef(x0) xd=zscore(x0); yd=zscore(y0)

[vecl,lamda,rate]=pcacov(r)

f=repmat(sign(sum(vecl)),size(vecl,1),1); vec2=vecl.*f

14

contr=cumsum(rate) df=xd*vec2;

num=input('请选项主成分的个数:') hg21=df(:,[1:num])\\yd hg22=vec2(:,1:num)*hg21

hg23=[mean(y0)-std(y0)*mean(x0)./std(x0)*hg22,std(y0)*hg22'./std(x0)] fprintf('y=%f',hg23(1)); for i=2:n

if hg23(i)>0

fprintf('+%f*x%d',hg23(i),i-1) else

fprintf('%f*x%d',hg23(i),i-1); end end

fprintf('\\n')

rmse1=sqrt(sum((hg1(1)+x0*hg1(2:end)'-y0).^2)/(m-n)) rmse2=sqrt(sum((hg23(1)+x0*hg23(2:end)'-y0).^2)/(m-num)) 附录2 问题(3)任务分类打包 a0=load('fenlei,txt');

a=a0';b0=a(:,[1:27]);dd0=a(:,[28:end]); [b,ps]=mapstd(b0);

dd=mapstd('apply',dd0,ps); group=[ones(20,1);2*one(7,1)]; s=svmtrain(b',group)

sv_index=s.SupportVectorIndices beta=s.Alpha bb=s.Bias

mean_and_std_trans=s.ScaleData check=svmclassify(s,b')

err_rate=1-sum(group==check)/length(group) solution=svmclassify(s,dd') 附录3 附录4

15

因篇幅问题不能全部显示,请点此查看更多更全内容