2014年亚太杯APMCM数学建模大赛B题如何评价微信公众号求解全过程文档及程序

本文主要是介绍2014年亚太杯APMCM数学建模大赛B题如何评价微信公众号求解全过程文档及程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2014年亚太杯APMCM数学建模大赛

B题 如何评价微信公众号

原题再现

  微信是腾讯公司推出的是一款跨平台的通讯工具。微信公众平台,是用户利用公众账号进行自媒体活动,简单来说就是进行一对多的媒体性的行为活动,如商家通过申请公众微信服务号通过二次开发,如对接微信会员云营销系统展示商家微官网、微会员、微推送、微支付、微活动,微报名、微分享、微名片等,已经形成了一种主流的线上线下微信互动营销方式。
  值得注意的是, 微信每天允许公号向受众群发 1 条消息, 而只有极少数公号会每天都把这一次群发用掉。大多数公号都是基于自身话题领域,根据自己的内容定位,或推送他们认为值得受众关注的重要新闻, 或推送受众可能更容易感兴趣的趣味性内容。
  微信公众平台包括不同领域的各种账号,分析这些平台运营是否有效,是否能够在微时代更好地运用自己成为了各大企业思考的问题。请建立数学模型完成以下问题:
  1、查找相关资料分析微信公众帐号的领域,建立模型,预测不同领域的公众帐号数量的增长趋势。
  2、请建立数学模型分析不同领域的微信帐号运营是否有效,说明你的数学模型的优缺点。
  3、假如给你一个“数学建模”的微信帐号,你该如何运营,给出方案并预测关注量增长趋势。

整体求解过程概述(摘要)

  本文的主要目的是建立数学模型来预测不同领域的公众账户的增长趋势,并评估网络聊天平台是否有效运行。
  任务1。为了预测网络聊天在不同领域的上升趋势。首先,我们选择了在公共网络聊天账户中具有代表性的四个公共账户信息领域,即教育、政府、媒体和网络。其次,我们使用了这些字段的编号信息并对其进行了处理。最后,在GM(1,1)模型的基础上进行了改进,建立了DGM(2,1)模型。此外,我们还计算了四个不同领域的误差合理性C 0.43、0.42、0.53、0.61和误差概率P 0.89、0.86、0.75、0.88。我们发现DGM(2,1)模型在预测网络聊天在不同领域的增长趋势方面优于GM(1,1)。
  任务2。为了评估网络聊天用户是否有效地操作他们的平台,我们建立了将结构方程与综合评估方法相结合的模型来解决这个问题。我们选取了政府、教育、媒体、网站和名人五个不同的领域来测试该模型。该模型的结果表明,教育和名人领域的用户非常有效地管理他们的公共网络聊天账户,而公共账户在其他三个领域的效果并不好。
  任务3。将任务1和任务2的结果与任务3的第一部分联系起来,我们列出了一些数学模型的公共网络聊天账户的运营策略,发现关心网络聊天问题的人数符合创新的扩散理论。为了给出运营账户的策略并预测用户的增长趋势,我们首先将其定位为订阅,然后参考网络聊天公共教育部门号码计划的理想运营结果来制定我们的策略:每天发送一条消息;发送方式有单图和多图以及链接到其他网站的视频;推送内容分别来自互动活动、联盟、广告等。;自定义菜单由多级菜单组成;通过对网络聊天用户增长模式的研究,得出网络聊天用户的增长趋势可以用创新扩散曲线来描述。因此,我们设计了一个计划,以创新的扩散理论为基础,预测有多少人会关注数学模型论坛。

模型假设:

  (1) 我们收集的所有数据都是完全正确的,能够反映事实。

  (2) 不同领域的内部圈子存在公平竞争

  (3) 所有公共网络聊天帐户的用户都不会将消息发布到他们不属于的字段。

  (4) 每个用户在自己的字段中只应用一个帐户,而不会在其他字段中注册另一个帐户。

  (5) 并非所有用户都取消了他们的帐户。

问题分析:

  任务1:
  我们需要建立一个数学模型来预测不同领域对应的公众账户的增长趋势。因为这个预测是短期预测,我们收集的数据是有限的。众所周知,灰色系统预测的结果是相对稳定的,该预测不仅适用于大量数据,也适用于少数数据。我们对GM(1,1)进行了一些改进,并建立了DGM(2,1)模型来预测公共账户的数量。我们选择了四个不同的域来测试我们的模型,即,在建模过程中,我们需要计算误差合理性C和误差概率来测试模型,我们在四个域中分别计算误差合理化C 0.43、0.42、0.53、0.61,误差概率P 0.89、0.86、0.75、0.88。我们发现DGM(2,1)模型在预测网络聊天在不同领域的增长趋势方面优于GM(1,1)。

  任务2:
  为了深入评估用户在特定领域的运营策略的有效性,我们需要从账户用户和普通人的角度来考虑这个问题。我们认为粉丝数量、被观看次数、被收集次数和传播次数是普通人的因素(外部因素),并将用户的运营策略视为用户的因素(内部因素)。我们采用结构方程和综合评价方法构造组合来解决问题。我们建立的模型求解的结果符合物理事实。教育和名人是吸引大多数手机用户(年轻人)网络聊天的两个领域。

  任务3:
  这一部分需要制定一个管理公共网络聊天账户的计划,用于数学建模,以及预测关心它的人数的方法。很明显,我们需要根据任务1和任务2的结果给出可行的计划。同时,这个问题属于开放的范畴。为了给出账号的运营策略,我们做了大量的研究,并借鉴了最有效的网络聊天公共频道的运营策略,首先给出了“数学建模”公共频道的定位,然后从时间和频率、发送方式、内容和自定义菜单等方面分别设计了运行策略。为了预测“数学建模“公共频道用户的增长趋势,我们对网络聊天用户的增长态势进行了大量的研究。

模型的建立与求解整体论文缩略图

在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

部分程序如下:
import math
import random
random.seed(0)
def rand(a,b): #随机函数return (b-a)*random.random()+adef make_matrix(m,n,fill=0.0):#创建一个指定大小的矩阵mat = []for i in range(m):mat.append([fill]*n)return mat#定义sigmoid函数和它的导数def sigmoid(x):return 1.0/(1.0+math.exp(-x))
def sigmoid_derivate(x):return x*(1-x) #sigmoid函数的导数class BPNeuralNetwork:def __init__(self):#初始化变量self.input_n = 0self.hidden_n = 0self.output_n = 0self.input_cells = []self.hidden_cells = []self.output_cells = []self.input_weights = []self.output_weights = []self.input_correction = []self.output_correction = []#三个列表维护:输入层,隐含层,输出层神经元def setup(self,ni,nh,no):self.input_n = ni+1 #输入层+偏置项self.hidden_n = nh  #隐含层self.output_n = no  #输出层#初始化神经元self.input_cells = [1.0]*self.input_nself.hidden_cells= [1.0]*self.hidden_nself.output_cells= [1.0]*self.output_n#初始化连接边的边权self.input_weights = make_matrix(self.input_n,self.hidden_n) #邻接矩阵存边权:输入层->隐藏层self.output_weights = make_matrix(self.hidden_n,self.output_n) #邻接矩阵存边权:隐藏层->输出层#随机初始化边权:为了反向传导做准备--->随机初始化的目的是使对称失效for i in range(self.input_n):for h in range(self.hidden_n):self.input_weights[i][h] = rand(-0.2 , 0.2) #由输入层第i个元素到隐藏层第j个元素的边权为随机值for h in range(self.hidden_n):for o in range(self.output_n):self.output_weights[h][o] = rand(-2.0, 2.0) #由隐藏层第i个元素到输出层第j个元素的边权为随机值#保存校正矩阵,为了以后误差做调整self.input_correction = make_matrix(self.input_n , self.hidden_n)self.output_correction = make_matrix(self.hidden_n,self.output_n)#输出预测值def predict(self,inputs):#对输入层进行操作转化样本for i in range(self.input_n-1):self.input_cells[i] = inputs[i] #n个样本从0~n-1#计算隐藏层的输出,每个节点最终的输出值就是权值*节点值的加权和for j in range(self.hidden_n):total = 0.0for i in range(self.input_n):total+=self.input_cells[i]*self.input_weights[i][j]# 此处为何是先i再j,以隐含层节点做大循环,输入样本为小循环,是为了每一个隐藏节点计算一个输出值,传输到下一层self.hidden_cells[j] = sigmoid(total) #此节点的输出是前一层所有输入点和到该点之间的权值加权和for k in range(self.output_n):total = 0.0for j in range(self.hidden_n):total+=self.hidden_cells[j]*self.output_weights[j][k]self.output_cells[k] = sigmoid(total) #获取输出层每个元素的值return self.output_cells[:]  #最后输出层的结果返回#反向传播算法:调用预测函数,根据反向传播获取权重后前向预测,将结果与实际结果返回比较误差def back_propagate(self,case,label,learn,correct):#对输入样本做预测self.predict(case) #对实例进行预测output_deltas = [0.0]*self.output_n #初始化矩阵for o in range(self.output_n):error = label[o] - self.output_cells[o] #正确结果和预测结果的误差:0,1,-1output_deltas[o]= sigmoid_derivate(self.output_cells[o])*error#误差稳定在0~1内#隐含层误差hidden_deltas = [0.0]*self.hidden_nfor h in range(self.hidden_n):error = 0.0for o in range(self.output_n):error+=output_deltas[o]*self.output_weights[h][o]hidden_deltas[h] = sigmoid_derivate(self.hidden_cells[h])*error#反向传播算法求W#更新隐藏层->输出权重for h in range(self.hidden_n):for o in range(self.output_n):change = output_deltas[o]*self.hidden_cells[h]#调整权重:上一层每个节点的权重学习*变化+矫正率self.output_weights[h][o] += learn*change + correct*self.output_correction[h][o]#更新输入->隐藏层的权重for i in range(self.input_n):for h in range(self.hidden_n):change = hidden_deltas[h]*self.input_cells[i]self.input_weights[i][h] += learn*change + correct*self.input_correction[i][h]self.input_correction[i][h] =  change#获取全局误差error = 0.0for o in range(len(label)):error = 0.5*(label[o]-self.output_cells[o])**2 #平方误差函数return errordef train(self,cases,labels,limit=10000,learn=0.05,correct=0.1):for i in range(limit): #设置迭代次数error = 0.0for j in range(len(cases)):#对输入层进行访问label = labels[j]case = cases[j]error+=self.back_propagate(case,label,learn,correct) #样例,标签,学习率,正确阈值def test(self): #学习异或cases = [[0, 0],[0, 1],[1, 0],[1, 1],] #测试样例labels = [[0], [1], [1], [0]] #标签self.setup(2,5,1) #初始化神经网络:输入层,隐藏层,输出层元素个数self.train(cases,labels,10000,0.05,0.1) #可以更改for case in  cases:print(self.predict(case))if __name__ == '__main__':nn = BPNeuralNetwork()
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

这篇关于2014年亚太杯APMCM数学建模大赛B题如何评价微信公众号求解全过程文档及程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/350131

相关文章

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当