Python-WeChat-Predict
用现有的数据对微信公众号的一些数据做一个预测,主要采用多项式拟合来构建模型。
概述
项目主要内容是对32个微信公众号在30天的数据进行处理,初始数据全部保存在dataWx.xlsx的表格里,包含有各个微信号、是否头条、阅读量、点赞量和日期,其中阅读量10万+代表阅读量已经超过十万,不具体显示出来。第一项处理的数据:根据文章的点赞量大致估算出那一篇超过十万阅读量的大致数据,这里我采用的是线性拟合,如果某一天里,有部分的推文阅读量达到10万+,我们就根据当天为超过10万+阅读的数据来进行线性拟合,用拟合出来的线性模型估计大致的阅读人次。当然,阅读量与点赞量应当会呈现出指数关系,而非线性关系,但这里我所采取的数据只有当天剩余为超过10万阅读人次的数据,数据量比较少,也能达到近似估计的目的,感兴趣的读者可以使用指数拟合试一下。第二项处理的数据:对微信公众号的影响力做一个等级评估,这里我只简要的根据阅读量的数据进行了一个粗略的评估,简单的想法是通过等级能大致的知道这一个微信公众号每个月的总阅读人次在哪一个范围内。更好的算法是考虑点赞量,点赞量也能作为一个微信公众号影响力的评估标准,一个赞比很多阅读量更值钱,所以把点赞量加进来一起评估会更好一些。第三项处理的数据:根据当前的数据对未来几天微信公众号的排名做一个预测,这里,笔者提供了两种代码,第一种是根据这个微信公众号在这30天的排名来预测接下来几天的排名,第二种是根据各个微信公众号这30天的阅读量,对接下来几天的阅读量进行一个预测,通过预测出来的阅读量来确定微信公众号接下来几天的排名,这里都用的都是六次多项式拟合。具体内容是这一些,对部分的数据做了可视化处理。
部分文件说明
每天公众号阅读量柱状图:根据每天各个微信公众号总阅读量来绘制
预测未来三天:保存了根据预测未来三天阅读量来预测排名的三幅预测图
sqlite_CW.py:将表格里的数据写入到数据库中去
test_model_rank.py:测试几次多项式模型精确度较好,且不易发生过拟合现象
model.py:构建多项式拟合模型
Predict_data.py:根据名次来预测名次,并根据每天各个微信号的阅读量绘制图表
1_Predict_data.py:根据模型预测未来几天各个微信公众号的阅读量来预测排名,并绘制预测的排名图表
运行代码时,一定要先把数据导入到数据库中,后面所有数据处理都是基于数据来处理的
安装一些包
* pip3 install xlrd
* pip3 install numpy
* pip3 install matplotlib
* pip3 install pygal
安装这些包时可能还需要安装一些其它的依赖,一并安装上就可以了