> 백엔드 개발 > PHP 튜토리얼 > 如何做一个算法估算出一个不定时抓取到一个APP每天的下载量

如何做一个算法估算出一个不定时抓取到一个APP每天的下载量

WBOY
풀어 주다: 2016-06-06 20:13:06
원래의
985명이 탐색했습니다.

假设每天我固定时间去某一个网站,比如豌豆荚抓取某一个APP的下载量,如果每次都是固定时间抓取,我肯定能够抓到每天的下载量。

但我无法做到每天固定时间抓取,我只能每天不固定时间抓取一次,如何用算法估算出某一天的下载量。

回复内容:

假设每天我固定时间去某一个网站,比如豌豆荚抓取某一个APP的下载量,如果每次都是固定时间抓取,我肯定能够抓到每天的下载量。

但我无法做到每天固定时间抓取,我只能每天不固定时间抓取一次,如何用算法估算出某一天的下载量。

数学题

数据不够的时候怎么估算结果?第一步,做假设,限定一下。

1) 最简单的一种假设,每两次抓取的时间之间,用户下载次数的平均的。

昨天、今天、明天抓取到的总量, S0,S1,S2;
昨天、今天、明天抓取的时间点, t0,t1,t2;

那么今天的总量 = (t1 - 今天0点)/(t1 - t0) (S1 - S0) + (今天24点 - t1)/(t2 - t1) (S2 - S1);

这个值,对于一般的估算每天下载总量是够了。
但是缺点是用户下载频次在采集点突变不合常理,如果APP是新品或者遇到宣传或者遇到爆发点,这个估算的单天偏差就会很大。

2) 较细致的假设:用户下载次数的变更是平滑的,不会突变。

多点连成平滑曲线的问题,可以参考贝塞尔曲线公式。我就不做推导了,只写几个特点。

在数据足够多时,模拟的曲线平滑,但是数据少时,细节数据也只是看起来真实,其实也不值得参考。
多点曲线,在增加新的点(又采集了一天的数据),整体的曲线都会变动,不稳定。

总结来讲,就用第一种吧,谁让数据不够多呢。

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿