跟我一起数据挖掘(20)——网站日志挖掘

跟我一起数据挖掘(20)——网站日志挖掘收集web日志的目的Web日志挖掘是指采用数据挖掘技术,对站点用户访问Web服务器过程中产生的日志数据进行分析处理,从而发现Web用户的访问模式和兴趣爱好等,这些信息对站点建设潜在有用的可理解的未知信息和知识,用于分析站点的被访问情况,辅助站点管理和决策支持等。1、以改进web站点设计为目标,通过挖掘用户聚类和用户的频繁访问路径,修改站点的页面之间的链接关系,以适应用户的访问习惯…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

收集web日志的目的

Web日志挖掘是指采用数据挖掘技术,对站点用户访问Web服务器过程中产生的日志数据进行分析处理,从而发现Web用户的访问模式和兴趣爱好等,这些信息对站点建设潜在有用的可理解的未知信息和知识,用于分析站点的被访问情况,辅助站点管理和决策支持等。

1、以改进web站点设计为目标,通过挖掘用户聚类和用户的频繁访问路径,修改站点的页面之间的链接关系,以适应用户的访问习惯,并且同时为用户提供有针对性的电子商务活动和个性化的信息服务,应用信息推拉技术构建智能化Web站点。

2、以分析Web站点性能为目标,主要从统计学的角度,对日志数据项进行粗略的统计分析,得到用户频繁访问页、单位时间的访问数、访问数量随时间分布图等。现有的绝大多数的Web日志分析工具都属于此类。

3、以理解用户意图为目标,主要是通过与用户交互的过程收集用户的信息,Web服务器根据这些信息对用户请求的页面进行裁剪,为用户返回定制的页面,其目的就是提高用户的满意度和提供个性化的服务。

收集方式

网站分析数据主要有三种收集方式:Web日志、JavaScript标记和包嗅探器。

1. Web日志

web日志处理流程:

image

从上图可以看出网站分析数据的收集从网站访问者输入URL向网站服务器发出http请求就开始了。网站服务器接收到请求后会在自己的Log文件中追加一条记录,记录内容包括:远程主机名(或者是IP地址)、登录名、登录全名、发请求的日期、发请求的时间、请求的详细(包括请求的方法、地址、协议)、请求返回的状态、请求文档的大小。随后网站服务器将页面返回到访问者的浏览器内得以展现。

2. JavaScript标记

JavaScript标记处理流程:

image

上图所示JavaScript标记同Web日志收集数据一样,从网站访问者发出http请求开始。不同的是,JavaScript标记返回给访问者的网页代码中会包含一段特殊的JavaScript代码,当页面展示的同时这段代码也得以执行。这段代码会从访问者的Cookie中取得详细信息(访问时间、浏览器信息、工具厂商赋予当前访问者的userID等)并发送到工具商的数据收集服务器。数据收集服务器对收集到的数据处理后存入数据库中。网站经营人员通过访问分析报表系统查看这些数据。

3. 包嗅探器

通过包嗅探器收集分析的流程:

image

上图可以看出网站访问者发出的请求到达网站服务器之前,会先经过包嗅探器,然后包嗅探器才会将请求发送到网站服务器。包嗅探器收集到的数据经过工具厂商的处理服务器后存入数据库。随后网站经营人员就可以通过分析报表系统看到这些数据。

web日志挖掘过程

整体流程参考下图:

image

1、数据预处理阶段
    根据挖掘的目的,对原始Web日志文件中的数据进行提取、分解、合并、最后转换为用户会话文件。该阶段是Web访问信息挖掘最关键的阶段,数据预处理包括:关于用户访问信息的预处理、关于内容和结构的预处理。

2、会话识别阶段
    该阶段本是属于数据预处理阶段中的一部分,这里将其划分成单独的一个阶段,是因为把用户会话文件划分成的一组组用户会话序列将直接用于挖掘算法,它的精准度直接决定了挖掘结果的好坏,是挖掘过程中最重要的阶段。

3、模式发现阶段
    模式发现是运用各种方法和技术从Web同志数据中挖掘和发现用户使用Web的各种潜在的规律和模式。模式发现使用的算法和方法不仅仅来自数据挖掘领域,还包括机器学习、统计学和模式识别等其他专业领域。

模式发现的主要技术有:统计分析(statistical analysis)、关联规则(association rules)、聚类(clustering)、归类(classification)、序列模式(sequential patterns)、依赖关系(dependency)。

(1)统计分析(statistical analysis):常用的统计技术有:贝叶斯定理、预测回归、对数回归、对数-线性回归等。可用来分析网页的访问频率,网页的访问时间、访问路径。可用于系统性能分析、发现安全漏洞、为网站修改、市场决策提供支持。

(2)关联规则(association rules):关联规则是最基本的挖掘技术,同时也是WUM最常用的方法。在WUM中常常用在被访问的网页中,这有利于优化网站组织、网站设计者、网站内容管理者和市场分析,通过市场分析可以知道哪些商品被频繁购买,哪些顾客是潜在顾客。

(3)聚类(clustering):聚类技术是在海量数据中寻找彼此相似对象组,这些数据基于距离函数求出对象组之间的相似度。在WUM中可以把具有相似模式的用户分成组,可以用于电子商务中市场分片和为用户提供个性化服务。

(4)归类(classification):归类技术主要用途是将用户资料归入某一特定类中,它与机器学习关系很紧密。可以用的技术有:决策树(decision tree)、K-最近邻居、Naïve Bayesian classifiers、支持向量机(support vector machines)。

(5)序列模式(sequential patterns):给定一个由不同序列组成的集合,其中,每个序列由不同的元素按顺序有序排列,每个元素由不同项目组成,同时给定一个用户指定的最小支持度阈值,序列模式挖掘就是找出所有的频繁子序列,即子序列在序列集中的出现频率不低于用户指定的最小支持度阈值。

(6)依赖关系(dependency):一个依赖关系存在于两个元素之间,如果一个元素A的值可以推出另一个元素B的值,则B依赖于A。

4、模式分析阶段
    模式分析是Web使用挖掘最后一步,主要目的是过滤模式发现阶段产生的规则和模式,去除那些无用的模式,并把发现的模式通过一定的方法直观的表现出来。由于Web使用挖掘在大多数情况下属于无偏向学习,有可能挖掘出所有的模式和规则,所以不能排除其中有些模式是常识性的,普通的或最终用户不感兴趣的,故必须采用模式分析的方法使得挖掘出来的规则和知识具有可读性和最终可理解性。常见的模式分析方法有图形和可视化技术、数据库查询机制、数理统计和可用性分析等。

收集数据包括

收集的数据主要包括:

全局UUID、访问日期、访问时间、生成日志项的服务器的IP地址、客户端试图执行的操作、客户端访问的服务器资源、客户端尝试执行的查询、客户端连接到的端口号、访问服务器的已验证用户名称、发送服务器资源请求的客户端IP地址、客户端使用的操作系统、浏览器等信息、操作的状态码(200等)、子状态、用Windows@使用的术语表示的操作的状态、点击次数。

用户识别

对于网站的运营者来说,如何能够高效精确的识别用户非常关键,这会对网站运营带来极大的帮助,如定向推荐等。

用户识别方法如下:

image

使用HDFS存储

数据收集到服务器之后,根据数据量可以考虑将数据存储在hadoop的HDFS中。

如果不熟悉HDFS,可以参考:

http://www.niubua.com/?p=1107

在现在的企业中,一般情况下都是多台服务器生成日志,日志包括nginx生成的,也包括在程序中使用log4j生成的自定义格式的。

通常的架构如下图:

image

使用mapreduce分析nginx日志

nginx默认的日志格式如下:

222.68.172.190 - - [18/Sep/2013:06:49:57 +0000] "GET /images/my.jpg HTTP/1.1" 200 19939
 "http://www.angularjs.cn/A00n" "Mozilla/5.0 (Windows NT 6.1)
 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36"

变量的解释如下:

  • remote_addr: 记录客户端的ip地址, 222.68.172.190
  • remote_user: 记录客户端用户名称, –
  • time_local: 记录访问时间与时区, [18/Sep/2013:06:49:57 +0000]
  • request: 记录请求的url与http协议, “GET /images/my.jpg HTTP/1.1″
  • status: 记录请求状态,成功是200, 200
  • body_bytes_sent: 记录发送给客户端文件主体内容大小, 19939
  • http_referer: 用来记录从那个页面链接访问过来的, “http://www.angularjs.cn/A00n”
  • http_user_agent: 记录客户浏览器的相关信息, “Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36″

可以直接使用mapreduce来进行日志分析:

image

在hadoop中计算后定时导入到关系型数据库中进行展现。

要明细的分析可以参考这篇:

http://www.tuicool.com/articles/2ANJZz

也可以使用hive来代替mapreduce进行分析。

总结

web日志收集是每个互联网企业必须要处理的过程,当收集上来数据,并且通过适当的数据挖掘之后,会对整体网站的运营能力及网站的优化带来质的提升,真正的做到数据化分析和数据化运营。

转载于:https://www.cnblogs.com/skyme/p/4316057.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189524.html原文链接:https://javaforall.net

(0)
上一篇 2026年4月13日 下午1:46
下一篇 2026年4月13日 下午1:46


相关推荐

  • Intellij IDEA过期怎么激活(最新激活码)(JetBrains全家桶)2022.02.17

    (Intellij IDEA过期怎么激活(最新激活码))JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年4月1日
    383
  • ztree折叠简单用法

    ztree折叠简单用法html 方法一 使用 tree 方法控制 js 设置只展开父节点 varsetting nbsp nbsp nbsp nbsp nbsp nbsp view nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp showIcon false nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp data nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp simpleData nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp enable true nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp

    2026年3月18日
    2
  • 个人嵌入式学习总结

    个人嵌入式学习总结个人认为,嵌入式学习主要经过以下几个阶段,1. 嵌入式linux的移植;主要包括u-boot源码的修改,kernel针对特定硬件平台的修改,系统硬体驱动的移植,根文件系统的制作;2. 系统电路设计;包括根据系统功能选择硬件资源,接口电路的设计;PCB电路图的设计与布线优化。3. linux驱

    2022年5月15日
    44
  • 2022年最新版大数据面试题全面总结-持续更新

    2022年最新版大数据面试题全面总结-持续更新2021 2022 大数据面试题全面总结

    2026年3月17日
    2
  • Python安装时0x80072efd问题解决

    Python安装时0x80072efd问题解决这两次安装 python 时总是提示失败 并出现 0x 错误解决方法 就是在安装的时候注意千万不要勾选 installforal 这个选项 其他功能任选就可以了

    2026年3月18日
    1
  • 流程图绘制心得

    流程图绘制心得http www webjx com css divcss 9009 html 网页制作 Webjx 文章简介 一个哥们在 MSN 上告诉我 他们公司的交互设计师只产出流程图 并问我用什么标准评价流程图的好坏 他的说法把我彻底震了 这分工也太细了吧 也不知道该说他们那里这样是好还是不好 一个哥们在 MSN 上告诉我 他们公司的交互设计师只产出流程图 并

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号