Web数据挖掘 第十二章 Web使用挖掘的读书笔记
Web数据挖掘的一个重要挖掘对象是服务器日志。每一次访问都会被服务器记录在日志中作为一行。
要分析日志,首先要识别出用户和会话。
用户识别可以是基于 cookie 的,也可以是基于 IP+主机名称
会话识别有两种方式:
1)设定所有会话都不会超过一个限定的时间 T ,从用户的第一个会话时间开始计算如果当前的时间长度超过了T,则当作一个新的会话了。
2)设定两个请求间的时间差不会超过界限T,如果某个请求与前一个请求之间间隔超过T,则当作另一个会话。
在识别出会话后进行路径完善:页面的跳转要考虑到用户使用浏览器后退功能的情况,计算出一个完整路径。具体可以用递归找出需要“后退” 操作最少的路径。
下面给出一个我用python实现的找出最短完整路径的代码:
#coding:utf-8 #py2.7 pathdict = {'A': ['B', 'C'], 'B': ['C', 'D'], 'C': ['B', 'E', 'F'], 'D': ['E']} def guesspath(obs, pathdict): path = [] for i in range(0, len(obs)): if i == 0: path += [obs[0]] else: path = guessnext(len(path) - 1, obs[i], path, pathdict) return path def guessnext(i, next, path, pathdict): if path[i] in pathdict.keys() and next in pathdict[path[i]]: path += [next] return path else: i -= 1 if i < 0: raise Exception('no avaiable path found') else: path += [path[i]] return guessnext(i, next, path, pathdict) print guesspath('ABDEC', pathdict)
根据每个用户在会话中的浏览路径和每个页面的停留时间生成的浏览序列,就可以建立模型统计用户的兴趣了。每个页面可以表示成若干兴趣的权重序列。将这个序列与浏览序列做笛卡尔积就能得到用户的兴趣序列。
基于浏览序列还可以建立 马尔科夫模型 或者 树状模型,来判断用户浏览的路径走向。
后面的内容主要是讲解了协同过滤、查询日志挖掘和计算广告学。其中对于大数据用到了主成分分析和SVD,都是数据挖掘中比较重要的方法。