首页 > 代码库 > python构建模拟模型——网站独立访问用户数量
python构建模拟模型——网站独立访问用户数量
背景:发现一个有趣的现象,即一些用户在每一月都仅仅访问网站一次,我们想要了解这些人数量的变化趋势。
建立数学模型:简化问题,根据瓮模型推导出公式(具体推导见《数据之魅》,有时间再补充。。。):n(t)=N(1-e^((-k/N)*t)),其中,t代表一个月中的第t天,N代表潜在的总的访问人数,k为根据网站日志计算的每日平均访问量,n(t)代表第t天为止,访问此网站的用户总人数。
python模拟,并和分析的模型作比较:
import mathimport random as rndimport numpy as npimport matplotlib.pyplot as pltn =1000 # 总的潜在用户数量k = 100 # 平均每天的访问量s = 50 # 每日可能访问量的浮动范围def trial(): visitors_for_day = [0] # No visitors in day one has_visited = [0]*n # A flag for each visitor for day in range(31): visitors_today = max(0,int(rnd.gauss(k,s))) # Pick the individuals who visited today and mark them for i in rnd.sample(range(n),visitors_today): has_visited[i] = 1 # Find the total number if unique visitors so far visitors_for_day.append(sum(has_visited)) return visitors_for_dayfor t in range(25): r = trial() xi = [] yi = [] for i in range(len(r)): xi.append(i) yi.append(r[i]) print(i,r[i]) plt.plot(xi,yi,‘o‘,alpha=0.3)x0 = np.linspace(0.0,31.0,num=1000)y0 = 1000*(1-(math.e)**(-0.1*x0))y_up = 1000*(1-(math.e)**(-0.075*x0))y_dn = 1000*(1-(math.e)**(-0.125*x0))plt.plot(x0,y0,‘r-‘)plt.plot(x0,y_up,‘b--‘,x0,y_dn,‘b--‘)plt.show()
输出图形如下:
好像开始喜欢matplotlib了呢。。。
python构建模拟模型——网站独立访问用户数量
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。