机器学习之电子商务网站用户行为分析及服务推荐案例

本文介绍了一个基于用户浏览记录的推荐系统实现案例,采用杰卡德相似系数计算物品间相似度,实现用户个性化网页推荐,并评估推荐准确性。
项目概述

本项目案例根据某法律咨询服务网站的用户浏览记录,把用户划分为训练集的用户和测试集的用户,再根据找出相应用户的浏览记录划分为训练集数据和测试集数据。训练集用于后续构建用户物品矩阵,再根据用户物品矩阵构建物品相似度矩阵(根据杰卡德相似系数公式计算物品相似度);测试集用于根据用户浏览记录给用户推荐用户可能感兴趣的网页,在计算推荐结果准确度的时候需要根据测试集构建用户浏览字典(键:ip,值:url(列表))

案例的代码已经托管到码云仓库,可自行进行下载:https://gitee.com/atuo-200/recommend_code

案例用的的数据文件已经上传至百度云(单个文件超过100m push不上码云):
数据在:https://pan.baidu.com/s/1m8kfgOZSZNftye_hDjxmSA
提取码:g9t7

案例用到的数据文件中的字段含义如下:
在这里插入图片描述

案例代码

案例代码如下,代码上已经附上相应的注释

data_explore.py(用于数据探索,独立的一个模块)

import pandas as pd
import re

"""数据探索模块"""

data = pd.read_csv("data/all_gzdata.csv",encoding="gb18030")
#查看前5条数据
print(data.head())
#查看数据有哪些列
print(data.columns)
#查看有多少条数据
print(data.shape)
#查看网址类型
print(data["fullURLId"])
#网址类型统计:统计每种网址类型的数量
print("-----------------------")
urlId=['101','199','107','301','102','106','103']
count=[]
for pattern in urlId:
      index=[sum(re.search(pattern,i)!=None for i in data.loc[:,'fullURLId'].apply(str))][0]
      count.append(index)
urlId_count={
   
   'urlId':urlId,'count':count}
urlId_count=pd.DataFrame(urlId_count)

print(urlId_count)
print("-----------------------")
# 用户点击次数统计
# pd.value_counts()  属于高级方法,返回一个 Series ,其索引值为唯一值,其值为频率,按其计数的降序排列
res = data.loc[:, 'realIP'].value_counts()  # 对 IP 进行统计:每个 IP 点击了多少次
res1 = res.value_counts()  # 对点击次数的 IP 统计:例如点击了 2 次的 ip 有多少个
IP_count = pd.DataFrame({
   
   'a_IP': list(res1.index), 'count': list(res1)})
IP_total = sum(IP_count.iloc[:, 1])

#IP_count.ix[:, 'pers'] = [index / IP_total for index in IP_count.ix[:, 1]]
IP_count['pers'] = IP_count.iloc[:<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值