R语言与数据分析练习:使用Apriori算法实现网站的关联分析

news/2024/5/11 20:43:57/文章来源:https://zhuang666.blog.csdn.net/article/details/118225925

R语言与数据分析练习:使用Apriori算法实现网站的关联分析


使用ARIMA模型预测网站访问量

一、实验背景:

基于某网站的访问数据,使用Apriori算法对网站进行关联分析

二、实验目的:

预测网站访问量

三、实验设计方案和流程图:

实验设计方案:

  1. 由于实验1已对数据进行处理,这里我们只需要根据题目要求取出需要的数据。
  2. 建立一个列表,每个列表代表一个用户访问的网站,将列表转为数据框,保存到本地。
  3. 创建网站的二元矩阵,将每一个用户访问的ip改为1,导出二元矩阵。
  4. 构建关联规则模型,把数据转换成关联规则需要的数据类型,然后生成关联规则,导出规则数据。
  5. 处理规则数据,使数据更加规整的保存到本地。
  6. 统计每个网站对应的访问总数量、地区数量和用户数量。
  7. 计算每个网站所推荐的网站的综合评分。

实验设计流程图:
在这里插入图片描述

四、实验过程:

1、连接数据库

jc_content_viewlog.sql 数据文件下载:

文件下载链接:https://pan.baidu.com/s/165XwNDj1YQ1JYQdj90p8RQ
提取码:omop

jc_content_viewlog表的字段说明.xlsx 文件下载:

文件下载链接:https://pan.baidu.com/s/139bB8teH-CrwrDax8envlQ
提取码:es72

# 设置工作目录并导入需要的包
setwd("D:/bigdata/R语言与数据分析/project/test3")
library(RMySQL)
library(tidyr)
library(sqldf)
library(arules)
# 连接数据库 读取数据
mysqlconnection = dbConnect(MySQL(), user = 'root', password = '123456', dbname = 'rdata',host = 'localhost')
dbSendQuery(mysqlconnection,'SET NAMES gbk') data <- dbReadTable(mysqlconnection,'data')
data <- data[which(data$page_path != "/"),]
detach("package:RMySQL", unload=T);

2、根据需要处理网站数据

# 建立aliment_ulr列表,每个列表代表一个用户访问的网站
userIP <- unique(data$ip)  # 对id去重
aliment_ulr <- list()
for(i in 1:length(userIP)){aliment_ulr[[i]] <- data[which(data$ip == userIP[i]), 3]aliment_ulr[[i]] <- unique(aliment_ulr[[i]])  # 去掉出现重复的网站
}
# 导出网站数据
require(plyr)
aliment_ulr1 <- ldply(aliment_ulr, rbind)  # 将列表转为数据框
row.names(aliment_ulr1) <- as.character(userIP)  # 修改数据框列名
write.csv(aliment_ulr1, "./aliment_ulr.csv")

在这里插入图片描述

3、构建二元矩阵

# 创建网站的二元矩阵
col <- levels(as.factor(unlist(aliment_ulr)))  # 提取aliment_ulr列表中每个ip的地址
ruleData <- matrix(FALSE, length(aliment_ulr), length(col))  # 创建一个空的矩阵
colnames(ruleData) <- col  # 修改ruleData的列名
row.names(ruleData) <- as.character(userIP)  # 修改ruleData的行名
# 每一个用户访问的ip改为1
for(i in 1:length(aliment_ulr)){ruleData[i, match(aliment_ulr[[i]], col)] <- TRUE
}
write.csv(ruleData, "./ruleData.csv", row.names = FALSE)  # 导出二元矩阵

在这里插入图片描述

4、构建关联规则模型,并生成关联规则

# 构建关联规则模型
# 把数据转换成关联规则需要的数据类型
trans <- as(aliment_ulr, "transactions")
# 或直接使用ruleData数据进行建模
# trans <- read.csv("./ruleData.csv", stringsAsFactors = FALSE)# 生成关联规则
rules <- apriori(trans, parameter = list(support = 0.01, confidence = 0.3))
summary(rules)
inspect(sort(rules, by = list('support'))[1:10])  # 查看前10个支持度较高的规则
# 绝对数量显示
itemFrequencyPlot(trans, type = 'absolute', topN = 10, horiz = T)
# 导出规则数据
write(rules, "./rules.csv", sep = ",", row.names = FALSE)# 处理规则数据
result <- read.csv("./rules.csv", stringsAsFactors = FALSE)
# 将规则拆开
meal.recom <- strsplit(result$rules, "=>")
# 去除中括号
lhs <- 0
rhs <- 0
for (i in 1:length(meal.recom)) {lhs[i] <- gsub("[{|}+\n]|\\s", "", meal.recom[[i]][1])rhs[i] <- gsub("[{|}+\n]|\\s", "", meal.recom[[i]][2])
}
rules.new <- data.frame(lhs = lhs, rhs = rhs, support = result$support,confidence = result$confidence, lift = result$lift)
write.csv(rules.new, "./rules_new.csv", row.names = FALSE)  # 写出数据

在这里插入图片描述

5、根据关联规则模型的因素,计算推荐的综合评分

# 计算综合评分# 统计某个网站的访问总数量
viemNum_data <- sqldf("select page_path,count(id) as viemSum from data group by page_path")
# 统计某个网站的地区数量
countryCount_data <- sqldf("select page_path,count(distinct country) as countryNum from data group by page_path")
# 统计某个网站的用户数量
userCount_data <- sqldf("select page_path,count(distinct ip) as userNumfrom from data group by page_path")# 读取数据
rules.new <- read.csv("./rules_new.csv", stringsAsFactors = FALSE)# 计算每个网站所推荐的网站的综合评分
# 设A的权重a1 = 1.5, a2 = 2.5, a3 = 3, a4 = 4
A <- matrix(c(0, 2.5, 3, 4, 1.5, 0, 3, 4,1.5, 2.5, 0, 4,1.5, 2.5, 3, 0), 4, 4, byrow = T)
E <- c(1, 1, 1, 1)# 初始化
rules.new$viemNum <- 0  # 某个网站的点击总数量
rules.new$countryCount <- 0  # 某个网站访问的地区数量
rules.new$userCount <- 0  # 某个网站的用户数量
rules.new$mark <- 0  # 综合评分for (i in 1:nrow(rules.new)) {# 找到对应的网站的点击总数量viemNum.num <- which(viemNum_data$page_path == rules.new$rhs[i])rules.new$viemNum[i] <- viemNum_data$viemSum[viemNum.num]# 找到某个网站对应访问的地区数量和用户数量userCount.num <- which(countryCount_data$page_path == rules.new$rhs[i])rules.new$userCount[i] <- countryCount_data$countryNum[userCount.num]rules.new$countryCount[i] <- userCount_data$userNumfrom[userCount.num]# 将数据缩小到小于1,计算综合评分Y <- c(rules.new$viemNum[i]/10000, rules.new$countryCount[i]/1000, rules.new$userCount[i]/1000, rules.new$confidence[i])rules.new$mark[i] <- round((E - Y) %*% A %*% t(t(Y)), 3)
}# 对综合评分进行排序
rules.new <- rules.new[order(rules.new$mark, decreasing = TRUE), ]# 写出数据
write.csv(rules.new, "./recommend.csv", row.names = FALSE)

在这里插入图片描述

在这里插入图片描述

五、实验结论:

综合评分分析:
实验中,我求出每个网站对应的访问总数量、地区数量和用户数量,根据综合评分公式对算法进行评分,最后可以根据每个网站对应的访问总数量、地区数量、用户数量以及评分对数据进行业务分析。

预测分析:
从绝对数量中可以看出“/index.jhtml”的访问量最高,对于输出的recommend.csv文件,可以通过设置前项网站或者后项网站,然后根据对应的访问总数量、地区数量、用户数量以及评分对数据进行业务分析,得出给观看前项的用户推荐更符合用户胃口的网站,从而更加高效地提高网站的访问量以及各网站之间的联系!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_732492.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站技术架构(四)网站的高性能架构

2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标&#xff0c;可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间&#xff0c;指从发出请求到最后收到响应数据所需要的时…

官网分析(英雄传奇)(如何设计网站前端)

官网分析&#xff08;英雄传奇&#xff09;&#xff08;如何设计网站前端&#xff09; 一、总结 一句话总结&#xff1a;最开始以仿为主&#xff0c;仿的多了&#xff0c;自己就会了。分块&#xff0c;留白&#xff0c;简洁&#xff0c;图片找好&#xff0c;字体找好&#xff0…

eyoucms 怎么使用网站地图?

网站无论大小&#xff0c;单独的网站地图页面都是必需的&#xff0c;通过网站地图&#xff0c;不仅用户可以对网站的所有内容一幕了然&#xff0c;搜索引擎也可以跟踪链接爬行到网站的主要部分。一般来说&#xff0c;网站地图有两种形式&#xff1a; 一种是HTML&#xff0c;称为…

大型网站背后的高性能系统架构设计

1. 性能测试1.1. 性能指标网站性能测试的主要指标有&#xff1a;响应时间 - 响应时间(RT)是指从客户端发一个请求开始计时&#xff0c;到客户端接收到从服务器端返回的响应结果结束所经历的时间&#xff0c;响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。并…

细数国内几个比较牛的网站UED博客

发现国内一些有创新精神的网站的UED部门很活跃&#xff0c;也很有共享精神。他们有的在网站建立了自己的团队博客&#xff0c;在里面分享他们的设计经验&#xff0c;很值得一看。其实&#xff0c;团队开博客不仅仅有利于促进团队之间的良好氛围&#xff0c;更有利于宣传网站的文…

HTTPS通信中的身份认证机制_网站劫持检测

当你访问一个网站时&#xff0c;有没有想过这个问题&#xff1a;如何保证我的访问能直达目标网站&#xff0c;而没有被中间人攻击和劫持。想要解决这个问题&#xff0c;就得依靠HTTPS中的身份认证机制。 网站劫持检测 1、检测网站是否被劫持2、域名是否被墙3、DNS污染检测4、网…

5 个在线的网站测试和验证工具

网站上线前的测试和验证是非常重要的一个环节&#xff0c;验证的意思是检查网站的页面和其他数据是否符合标准规范&#xff0c;设计规范的网站在各种浏览器上表现会一致而且良好。 为了帮助你执行这些测试和验证&#xff0c;今天我们列表了 5 个在线的工具。 Pingdom Tools Pin…

mai模板html,纯PC网站模板改为自适应模板方法

随着互联网WEB前端技术的发展&#xff0c;各项技术诞生&#xff0c;BS架构、HTML5、CSS3、JQ各种新的技术出现在我们的面前&#xff0c;今天我们就分享下只有PC站情况下&#xff0c;如何快速做成自适应结构&#xff0c;满足移动端用户体验。网站自适应结构很多人认为很麻烦&…

svn同步到网站服务器,svn hook同步更新svn到web服务器

转到SVN项目的hooks目录下面新建post-commit文件.内容如下export LANGzh_CN.UTF-8WEB/www/vhostsvn update $WEB --username user --password passwd --no-auth-cache需要注意就是必须指定字符集还有运行 svn update 需要提供用户名密码且不要缓存用户认证令牌export LANGzh_CN…

学成在线网站首页_呕心整理!最全无版权图片网站都在这了,赶紧收藏!

在亚马逊上&#xff0c;买家大多数需要靠图片和文字来了解商品&#xff0c;而买家在搜索产品时&#xff0c;最先看到的是产品图片。可以说商品的主图是决定点击率的重要因素之一&#xff0c;而listing的图片是否具有吸引力是卖家能够为自己的Listing带来更高的转化率的另一个重…

用R语言进行网站评论文本挖掘聚类

对于非结构化的网站中文评论信息&#xff0c;r的中文词频包可能是用来挖掘其潜在信息的好工具&#xff0c;要分析文本内容&#xff0c;最常见的分析方法是提取文本中的词语&#xff0c;并统计频率。频率能反映词语在文本中的重要性&#xff0c;一般越重要的词语&#xff0c;在文…

oa办公系统含手机版源码_贵阳投资控股集团召开OA协同办公系统(含网站)建设项目启动大会...

为提高集团公司办公信息资源的利用效率&#xff0c;2020年1月7日&#xff0c;贵阳投资控股集团召开OA协同办公系统(含网站)建设项目启动大会。集团党委委员、副总经理付洪伟出席会议并讲话&#xff0c;信息科技部部长周康主持会议&#xff0c;上海泛微网络科技股份有限公司贵州…

scrapy爬虫框架和selenium的使用:对优惠券推荐网站数据LDA文本挖掘

介绍 最近我们被客户要求撰写关于爬虫的研究报告&#xff0c;包括一些图形和统计输出。 每个人都喜欢省钱。我们都试图充分利用我们的资金&#xff0c;有时候这是最简单的事情&#xff0c;可以造成最大的不同。长期以来&#xff0c;优惠券一直被带到超市拿到折扣&#xff0c;…

7个设计师必备的国际顶尖设计网站

成为dA&#xff08;deviantart&#xff09;的忠实用户有很多理由——dA是最大的艺术社区&#xff1b;成为dA用户简直是设计新手的必经之路。但是&#xff0c;这些都不妨碍你加入其他专业的网站来展现你的才华。 创立于12年前的dA现在拥有最多的艺术爱好者受众。然而&#xff0c…

追踪服务器的网站,网站Tracert路由追踪|在线Tracert工具—卡卡网 www.webkaka.com

Tracert是一个dos下的网络命令&#xff0c;主要作用是对路由进行跟踪。它是一个简单的网络诊断工具&#xff0c;可以列出分组经过的路由节点&#xff0c;以及它在IP 网络中每一跳的延迟。(这里的延迟是指&#xff1a;分组从信息源发送到目的地所需的时间&#xff0c;延迟也分为…

大型分布式网站架构技术总结

出处&#xff1a;ITFLY8 网址&#xff1a;http://www.cnblogs.com/itfly8/p/4967966.html 本文是学习大型分布式网站架构的技术总结。对架构一个高性能&#xff0c;高可用&#xff0c;可伸缩&#xff0c;可扩展的分布式网站进行了概要性描述&#xff0c;并给出一个架构参考。一…

Apache+php+mysq配置本地多个虚拟网站

首先我下载的是wampserver 64位&#xff0c; 按照自己的电脑系统下载 一般就分两种 &#xff0c;1 32为操作系统&#xff0c; 2 64为操作系统。 下面是软件图 文件64位&#xff1b; 安装教程就不写了。 下一步下一步就行 下面改到了配置了 首先第一步、 这里的 gao.com 就…

一个程序员单枪匹马,靠一个网站一年赚1个亿

是什么 网站叫BuiltWith.com&#xff0c;通过它可以查看其他网站使用了什么技术&#xff0c;什么编程语言、服务器及广告系统 可以客户生成、销售情报和市场分析提供的许多服务的用户使用&#xff0c;潜在客户列表的客户等&#xff0c;帮助企业赚钱、发现潜在客户。 这个网站仅…

Caddy实战(一)| 托管你的网站,只需一行命令

点击上方蓝色“飞雪无情”关注我&#xff0c;设个星标&#xff0c;第一时间看文章继续在Github猎奇&#xff0c;又看到了caddy这个Web服务器&#xff0c;发现star已经33K了&#xff0c;而且最近上升的也比较快&#xff0c;所以打算研究下它。周末抽了点时间&#xff0c;看了下c…

django实战仿慕课网在线视频网站(完成了85%以上的功能已上传github:https://github.com/huwei86/mxonline):...

1. 前台功能模块 基本模块&#xff1a;登录 注册 找回密码 / 全局搜索 / 个人中心&#xff0c; 课程功能&#xff1a;课程管理 / 讲师管理 / 授课机构管理 热门推荐 相关课程推荐 用户操作管理&#xff1a;用户收藏 / 课程评论2.后台管理系统课程管理模块&#xff1a;课程管理…