以前web访问分析都交给google,百度代劳,一则他们干得不错,二则自己做日志分析得花精力,搭一个开源得容易,可是管理起来费力。不过,使用第三方的工具,自己有些想法,却没法落实,用别人的东西,总会这样。都在传大数据时代,是不是该做点什么,把web日志的分析先弄回来。
要处理web日志的分析,首先一个,得把robot的访问排除掉,robot访问数量少,睁只眼闭之眼,也就算了。可看看日志,这家伙跑得挺勤快的,干它。
想想SEO要求网页怎么对robot友好? 网页链接要符合robot的偏好,什么浅而宽等,泛泛而谈。 要区分出正常用户和robot,还是算法靠谱一点,分类器应该管用。
对访问进行分类,试试决策树分类,不但可以预测,还可以构造出一个描述来,勾画访问的特征,有特征,就容易理解,好和经验相互印证。
先看看web日志会记录些什么:session,来源IP, 时间戳,请求方法,请求页面,协议,请求结果状态,页面参考,用户代理。单条记录,一次http请求,看不出有啥属性好拿来分类。
有障碍了吧?正常得很,没关系,花点时间,转换一下数据。做数据挖掘,算法其实没啥好弄的,就那么几个,别人都写好了,现成的代码拿来用就是。 功夫都用在数据处理上。
一次访问不行,就试试一次session。可以知道访问页面的先后次序,访问链接构成了一个有向图,图的宽度和深度,正好对应上SEO优化里谈到的宽窄和深浅。再看看别的,汇总一次session的总页面数,停留时间长度,访问页面的内容类型等等, 差不多够了。
思路有了,提取些时间段的web日志,做下数据预处理,分成两个数据集,用做训练和检验。 套个算法就有了。
做下来, 训练集的错误率4%,检验集错误率5%,可以接受。
同时模型也构造了一个这样的描述:robot访问宽而浅,正常用户访问窄而深;robot每次session访问大量页面,会话长度较长;robot很少访问页面中的图片。