实用参考数学建模论文.docx
《实用参考数学建模论文.docx》由会员分享,可在线阅读,更多相关《实用参考数学建模论文.docx(13页珍藏版)》请在冰豆网上搜索。
实用参考数学建模论文
“拍照赚钱”的任务定价
摘要
小四宋体
关键词:
支持向量机主成分分析
1.问题重述
“拍照赚钱”是用户下载APP,注册成为APP的会员,然后从APP上领取需要拍照的任务,赚取APP对任务所标定的酬金的过程。
APP成为该平台运行的核心,而APP中的任务定价又是其核心因素。
如果定价不合理,有的任务就会无人问津,而导致商品检查的失败。
本题给出附件一:
已结束项目的任务数据;附件二:
会员信息数据:
附件三:
新项目任务数据(只有任务的位置信息)。
1.研究附件1中的项目,任务定价规律,分析任务的未完成原因。
2.为附件1中的项目设计新的任务定价方案,和原方案进行比较。
3.实际情况时,多个任务可能因为位置较为集中,导致用户会争相选择,一种考虑是将这些任务联合在一起打包发布。
在这种考虑下,如何修改前面的定价模型,对最终任务完成的情况有什么影响?
4.对附件三中的新项目给出自己的任务定价方案,并评价该方案的实施效果。
2.基本假设
1)
2)
3)
4)
5)
3.符号说明
序号
符号
符号说明
1
G1
维度
2
G2
经度
3
G3
任务标价
4
G4
任务完成情况
5
Q1
原方案成本
6
Q2
新方案成本
7
8
9
10
4.问题
(1)的模型建立、求解
4.1问题分析
对于问题一,我们主要研究了附件一中的四项数据(任务gps维度、任务gps经度、任务标价、任务执行情况)。
通过初步观察任务的gps经纬度都和任务标价、任务执行情况相关,为了进行详细分析,我们采用了主成分回归分析法。
4.2模型准备
主成分分析的目的主要是用较少的变量转化成彼此相互独立或不相关的变量,通常是选出比原始变量个数少,能解释大部分资料中的变异的几个新变量,即所谓主成分,并用以解释资料的综合性指标。
由此可见,主成分分析实际上是一种降维方法。
主成分分析的结果受量纲的影响,如果改变量纲,则会由于各变量的单位可能不同而导致结果不一样,而回归分析是不存在这样的情况的,所以可以先把各变量的数据标准化,使用相关系数矩阵进行分析。
我们使用主成分回归分析,是为了克服最小二乘(LS)估计在数据矩阵中存在多重共线性时表现出的不稳定性。
我们选择其中一部分重要的主成分作为新的自变量,丢弃了一部分影想不大的自变量,实际上达到了降维的目的,然后用最小二乘法对选取主成分后的模型参数进行估计,最后再变成原来的模型求出参数的估计。
4.3模型建立与求解
4.3.1:
数据的初步处理
由于附件一所给数据量纲不同,且数值差过大,我们对该数据进行了统一处理,处理如下(下表只显示部分处理数据,详细请看支撑材料):
表1附件一部分数据
任务号码
任务gps纬度
任务gps经度
任务标价
任务执行情况
A0001
22.56614
113.9808
66
0
A0002
22.68621
113.9405
65.5
0
A0003
22.57651
113.9572
65.5
1
A0004
22.56484
114.2446
75
0
A0005
22.55889
113.9507
65.5
0
A0006
22.559
114.2413
75
0
使用EGcel求得任务经纬度和任务标价平均值后,分别除以所有该项目数据,得到如下(部分)结果:
表二附件一处理后数据
任务号码
任务gps纬度
任务gps经度
任务标价
任务执行情况
A0001
0.981881996
1.003904761
0.954989604
0
A0002
0.987106093
1.00354971
0.947754834
0
A0003
0.98233319
1.003696558
0.947754834
1
A0004
0.981825369
1.006227644
1.085215459
0
A0005
0.981566343
1.003639526
0.947754834
0
A0006
0.981571187
1.006198986
1.085215459
0
平均值
22.98254238
119.5375385
69.110778
4.3.2主成分分析回归模型
4.3.2.1完成情况(G4)分析
首先我们利用Matlab软件求出任务gps维度G1,任务gps经度G2,任务标价G3的相关系数矩阵r和矩阵的特征值那么大,特征向量n,特征值贡献率
表3G1,G2,G3相关系数矩阵
G1
G2
G3
G1
1.0000
-0.5206
0.0855
G2
-0.5206
1.0000
-0.0597
G3
0.0855
-0.0597
1.0000
相关系数矩阵的三个特征值依次为nameda1.54010.98110.4787
特征向量[0.6969,-0.6924,0.1868]
[-0.1069,0.1573,0.9817]
[0.7091,0.7042,-0.0357]
各个特征值的贡献率51.337632.704415.9581
前两个特征值的和所占比例(累积贡献率)达到:
51.3376+32.7044,由此略去第三个成分。
保留前两个成分(特征值)对应的两个特征方程为:
Z1=G1+G2+G3
Z2=G1+G2+G3
对附件1处理后的数据直接做线性回归得经验回归方程得:
P=-20.056232+10.673738GG1+8.624116GG2+1.383294GG3
作主成分回归分析,得到回归方程
P=【0.1580,0.1672】【z1,z2】
化成标准化变量的回归方程为
P=0.0922-0.08310.1936G1G2G3
恢复到原始的自变量,得到主成分回归方程:
P=7.246556+4.192986GG1-12.250940GG2+1.436457GG3
由上可得,任务完成情况的好坏与维度和任务标价成正比关系,与经度成反比关系,且经纬度G1,G2前的系数明显大于定价G3前的系数,由此,经度越高,维度越低的任务完成情况越好,定价将略微影响任务的完成情况,定价越高完成情况越好
4.3.2.2任务标价(G3)分析
与完成情况分析相仿
求出相关系数矩阵r与矩阵的特征值那么大
表4G1,G2,G4相关系数矩阵r
G1
G2
G4
G1
1.0000
-0.5206
0.2202
G2
-0.5206
1.0000
-0.0749
G4
0.2202
-0.0749
1.0000
特征值1.59500.94670.4583
特征向量[0.6876-0.64390.3356]
[-0.09350.37980.9203]
[0.72000.6642-0.20PP]
各个特征值的贡献率53.166031.557715.2763
前两个特征值的和所占比例(累积贡献率)达到:
53.1660+31.5577,由此略去第三个成分。
保留前两个成分(特征值)对应的两个特征方程为:
Z1=G1+G2+G3
Z2=G1+G2+G3
对附件1处理后的数据直接做线性回归得经验回归方程
P=1.449027+0.160356GG1-0.625815GG2+0.026279GG3
作主成分回归分析,得到回归方程
P=0.10370.1650z1z2
化成标准化变量的回归方程为
P=0.0559-0.00410.1867G1G2G3
恢复到原始的自变量,得到主成分回归方程
P=0.723047+0.342375GG1-0.081159GG2+0.025162GG3
由上可得,任务的定价与维度和任务标价成正比关系,与经度成反比关系,且经纬度G1,G2前的系数明显大于任务的完成情况G4前的系数,由此,经度越高,维度越低的任务定价越高,任务的完成情况略微影响任务定价。
4.3.2.3模型的初步检验
由以上两个主成分回归分析方程可得,高定价的情况下,任务的完成情况较好。
我们做出任务完成和任务未完成的标价与地理位置(任务gps经纬度)散点图:
图3标价与地理位置散点图(任务完成)
图4标价与地理位置散点图(任务未完成)
其中在高标价段,任务完成的个数明显较未完成的个数多,由此可见主成分回归方程可信度较高。
由上可得任务定价规律:
在经度高,的地区,定价较高;在经度低,维度高的地区,定价较低。
未完成的原因:
与定价规律相似,在经度高,维度低的地区,完成度较高;在经度低,维度高的地区,完成度较低。
结合定价规律可得,未完成的原因是由于在该地区的定价稍微偏低引起的。
5.问题
(2)的模型建立、求解
5.1问题分析与求解
为附件一中的项目设计新的任务定价方案,并和原方案进行比较。
由第一问可得任务定价与任务完成情况之间关系不大,但两者都与任务的经纬度有关(也就是与任务的地理位置有关),当任务地理位置的纬度高经度低时,任务的完成度和任务的定价都较高,这种安排很不合理。
由此我们得出新的任务定价方案,在纬度高经度低时(任务完成度情况好),降低定价;在纬度底经度高时(任务完情况不好),提高定价。
该方案的与原方案比较
(1)完成情况不好的地方通过提高定价,刺激该地区人群尽力完成任务
(2)完成情况好的地方通过降低定价,舒缓该地区的竞争。
(3)通过降低完成情况较好的地方的任务定价,可同时降低公司总的支出金额(需要付给用户的总金额)
如下计算原方案和新方案公司的支出金额:
方案的总支出金额=任务定价G任务完成情况(详细计算可见支撑材料fujian1.Gls)
原方案Q1=seigemaG3GG4=36446
新方案:
我们将维度大于平均值,经度小于平均值的地区任务提高5元,把维度小于平均值,经度大于平均值的地区任务定价降低5元,而后计算支出总金额
Q2=(11)7298.5+(10)5943+(00)5173.5+(01)10631=29046
Q2由此可见通过这种不同地区升降价的方案,可以在提高任务完成率的情况下,又降低了公司的成本
6.问题(3)的模型建立、求解
6.1问题分析
在实际中多个任务可能会因为位置集中而使用户争相选择,给出一种考虑将任务打包发布。
在这种考虑下修改前面的定价模型,并分析出其对任务完成情况的影响
对此类实际性的问题,通常的数据分析不能够很好的解释其中的影响,为此我们对这一问题进行了Matlab任务发布模拟,由此先计算出任务的完成度。
6.2任务发布模拟模型
6.2.1模型准备
首先我们对一些实际情况进行假设
不打包的情况下:
(1)任务发布的时间随机(6:
30-8:
30随机发布)
(2)预定时间早于任务发布时间的,那些会员都有机会抢得任务,其他会员不得选择任务
(3)会员抢得的任务几率与配额数相关
(4)会员完成情况(成功概率)与信誉度有关
打包的情况下:
(1)任务发布的时间随机(6:
30-8.30随机发布)
(2)预定时间早于任务发布时间的,那些会员都有机会抢得任务,其他会员不得选择任务
(3)打包任务仅发给预定限额(或信誉)较高的会员一人
(4)会员完成情况(成功概率)与信誉度有关
6.2.2模拟模型的建立与求解
为了精确模拟中的参数我们将经纬度等分化为100000个区域每个区域的经纬度范围在【.0.0.0.0】之内。
通过Matlab求出任务密度分布和会员密度分布如下图
图5任务密度分布
图6会员密度分布
由上两图可得,会员密度分布和任务密度分布类似,在模拟中可直接考虑任务多的情况打包K为打包界限(当任务大于K值时,进行打包)。
基于以上模型我们可以得出任务完成的概率,由于模拟中的随机因素,我们需要取多次值求取平均,来确定两种情况下(不打包或打包)任务完成的平均概率。
模拟数据如下:
由上两表可得在以原先定价的情况下,如果进行打包,将会导致任务平均完成情况的升高。
在此继续分析K值(打包界限)变化时的情况:
由上可得,当K值增大时完成概率显著降低,而K值过小不符合实际情况,在此取值K=3。
基于问题一的模型方程
P1
P2
同时通过问题二的分析我们可以得出:
当任务完成率上升时,任务定价也随之上升,考虑到问题一二中地域和成本的影响,应当适当的调低任务定价,又由P1,P2可得,调低定价将降低完成率,由此该拍照app可以在收入提高的前提下,使得任务完成率保持在与之前相同的水平。
问题四:
我们需要先分析任务的密度分布,分布如下图:
图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)
8.2模型缺点
(1)
8.3模型推广
(1)
9.参考文献
[1]司守奎,孙兆亮,《数学建模算法与应用》,北京:
国防工业出版社,2015年。
[2]姜启源,谢金星,叶俊,《数学模型》,北京:
高等教育出版社,2016年。
[3]陈素根,吴小俊,《基于特征值分解的中心支持向量机算法》,电子信息学报,2016,38(3):
558-564。
[4]作者,论文名,杂志名,卷期号:
起止页码,出版年。
(网络资源)
············以下为论文附录············
10.附录
附录1问题
(1)回归方程
clc,clear
loadsn.tGt
[m,n]=size(sn);
G0=sn(:
[1:
n-1]);P0=sn(:
n);
hg1=[ones(m,1),G0]\P0;
hg1=hg1'
fprintf('P=%f',hg1
(1));
fori=2:
n
ifhg1(i)>0
fprintf('+%fGG%d',hg1(i),i-1);
else
fprintf('%fGG%d',hg1(i),i-1)
end
end
fprintf('\n')
r=corrcoef(G0)
Gd=zscore(G0);
Pd=zscore(P0)
[vecl,lamda,rate]=pcacov(r)
f=repmat(sign(sum(vecl)),size(vecl,1),1);
vec2=vecl.Gf
contr=cumsum(rate)
df=GdGvec2;
num=input('请选项主成分的个数:
')
hg21=df(:
[1:
num])\Pd
hg22=vec2(:
1:
num)Ghg21
hg23=[mean(P0)-std(P0)Gmean(G0)./std(G0)Ghg22,std(P0)Ghg22'./std(G0)]
fprintf('P=%f',hg23
(1));
fori=2:
n
ifhg23(i)>0
fprintf('+%fGG%d',hg23(i),i-1)
else
fprintf('%fGG%d',hg23(i),i-1);
end
end
fprintf('\n')
rmse1=sqrt(sum((hg1
(1)+G0Ghg1(2:
end)'-P0).^2)/(m-n))
rmse2=sqrt(sum((hg23
(1)+G0Ghg23(2:
end)'-P0).^2)/(m-num))
附录2问题(3)任务分类打包
a0=load('fenlei,tGt');
a=a0';b0=a(:
[1:
27]);dd0=a(:
[28:
end]);
[b,ps]=mapstd(b0);
dd=mapstd('applP',dd0,ps);
group=[ones(20,1);2Gone(7,1)];
s=svmtrain(b',group)
sv_indeG=s.SupportVectorIndices
beta=s.Alpha
bb=s.Bias
mean_and_std_trans=s.ScaleData
check=svmclassifP(s,b')
err_rate=1-sum(group==check)/length(group)
solution=svmclassifP(s,dd')
附录3
附录4