4.亲和性分析算法

本文深入探讨了亲和性分析算法,这是一种用于发现数据集中的隐藏关联规则和模式的数据挖掘技术。通过实例展示了如何应用该算法来揭示购物篮分析中的商品关联性,帮助商家优化商品组合和促销策略。
摘要由CSDN通过智能技术生成
# -*- coding: utf-8 -*-
"""
Created on Thu Sep 27 10:59:39 2018

@author: asus
"""
#4 用亲和性分析方法推荐电影

#4.1 亲和性分析
#亲和性分析用来寻找出两个对象同时出现的情况。
#应用场景:欺诈检测;顾客区分;软件优化;产品推荐。

#4.1.1 亲和性分析算法
#Apriori算法
#其他算法有Eclat和频繁项集挖掘算法(FP-growth)

#4.1.2 选择参数
#挖掘亲和性分析所用的关联规则之前,我们先用Apriori算法生成频繁项集。接着,通过检测频繁
#项集中前提和结论的组合,生成关联规则。

#4.2 电影推荐问题
#4.2.1 获取数据集
#美国明尼苏达大学的Grouplens研究团队公开的一系列用于测试推荐算法的数据集。
#电影评分数据,http://grouplens.org/datasets/movielens/
import pandas as pd

#4.2.2 用pandas加载数据
#把分隔符设置为制表符,不要把第一行作为表头(header=None),设置好各类的名称。
all_ratings = pd.read_csv("u.data", delimiter="\t", header=None,
                          names = ["UserID", "MovieID", "Rating", "Datetime"])
#可以用下面的代码解析时间戳数据。
all_ratings["Datetime"] = pd.to_datetime(all_ratings['Datetime'], unit='s')
all_ratings[:5]

#4.2.3 稀疏数据格式
#序号为0的那一行表示,用户(UserID)#196在1997年12月4日为电影(MovieID)#242打了3分(满
#分是5分)
#任何没有出现在数据集中的用户和电影组合表示它们实际上是不存在的。

#4.3 Apriori算法的实现
#目标:如果用户喜欢某些电影,那么他们也会喜欢这部电影。

#首先确定用户是否喜欢某一部电影,创建新特征Favorable,喜欢为True。
all_ratings["Favorable"] = all_ratings["Rating"] > 3
all_ratings[10:15]
#从数据集中选取一部分数据用作训练集,这样能有效减少搜索空间,提升Apriori算法的速度。
#取前200名用户的打分数据。
ratings = all_ratings[all_ratings['UserID'].isin(range(200))]
#新建一个数据集,只包括用户喜欢的某部电影的数据行。
favorable_ratings = ratings[ratings["Favorable"]]
#在生成项集时,需要搜索用户喜欢的电影。
favorable_reviews_by_users = dict((k, frozenset(v.values))
                                    for k, v in favorable_ratings.
                                    groupby("UserID")["MovieID"])
#上面的代码把v.values存储为frozenset,便于快速判断用户是否为了某部电影打过分。对于这
#种操作集合比列表快。
#最后,创建一个数据框,以便了解每
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值