问题描述:在进行搜索日至的数据挖掘中,需要先清除访问量异常的IP记录,比如,有的IP日访问次数高达5850次,很明显是机器用户所为。
总体技术思路:统计出每一个IP的搜索频次,选定界限删除访问次数过大的IP地址
实现细节思路:对搜索日志按照IP进行排序——>获得IP的总数——>for循环求得每一个IP的访问次数——>IP和访问次数融合——>删除访问次数超过阈值(这里取500)的所有IP的搜索记录
代码片段:
setwd("G:/搜索日志数据集/2015年6月搜索日志查询")
data0601<-read.csv("data0601.csv")
ord_data0601<-data0601[order(data0601$V1),c(1:23)] #按照IP对搜索记录排序
unique_ip<-unique(ord_data0601$V1) #获取IP
ip_num<-length(unique_ip) #获取IP总数
i<-1
uni_visit<-c()
uni_nrow<-c() #求每个IP的访问次数
for (i in c(1:ip_num)) {
ip_0<-unique_ip[i]
uni_visit[i]<-ord_data0601[which(ord_data0601$V1==ip_0),c(1:23)]
uni_nrow[i]<-nrow(as.data.frame(uni_visit[i]))
}
ip_visit_num<-data.frame(unique_ip,uni_nrow) #将每个IP和对应搜索次数合并在一起