千家信息网

如何利用Python进行商品的亲和性分析

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关如何利用Python进行商品的亲和性分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。01数据挖掘简介数据挖掘旨在让计算机根据已有数据做
千家信息网最后更新 2026年11月03日如何利用Python进行商品的亲和性分析

这篇文章将为大家详细讲解有关如何利用Python进行商品的亲和性分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

01数据挖掘简介

数据挖掘旨在让计算机根据已有数据做出决策。决策可以是预测明年的销量,人口的数目,拦截垃圾邮件,检测网站的语言。到目前为止,数据挖掘已经有很多的应用,即使这样很多新的应用领域也在不断出现。

数据挖掘涉及到算法,最优策略,统计学,工程学和计算机科学相关领域的知识。除此之外我们还会用到语言学,神经科学,城市规划等其他领域的概念或知识。想要充分发挥数据挖掘的威力,算法肯定是必备的。(在这里推荐读者去刷一刷LeetCode)

一般来说数据挖掘有这三个基本步骤:1、创建数据集。数据集能直接反应一些真实事件;2、选择算法。选择一个合适的算法才能更好的对数据进行处理;3、优化算法。每种数据挖掘算法都有参数,它们或是算法自身包含的,或是使用者添加的,这些参数会影响算法的具体决策。

02亲和性分析案例

现在让我们用一个例子说明。不知道你逛超市的时候,是否发现超市里面基本上都是按照商品的种类来分区域的,然而有些东西是存在例外的,一件商品的旁边摆放着不一样种类的商品。不知道你是否有发现这个现象,有没有对此感到不解。这边我想跟你说的是,这种摆放也是有道理的,这个道理是商品之间的亲和性!

前置知识:

(1)defaultdict(int):初始化为 0     (2)defaultdict(float):初始化为 0.0    (3)defaultdict(str):初始化为 ''

这里的defaultdict(function_factory)构建的是一个类似dictionary的对象其中keys的值,自行确定赋值,但是values的类型,是function_factory的类实例而且具有默认值。比如default(int)则创建一个类似dictionary对象里面任何的values都是int的实例,而且就算是一个不存在的key, d[key] 也有一个默认值,这个默认值是int()的默认值0。

03代码实现

现在进行代码部分:

import  numpy as np from collections import defaultdict dataset_filename = "affinity_dataset.txt" features = ["bread","milk","cheese","apple","banana"]  #猜一下这个是干嘛用的 X = np.loadtxt(dataset_filename) print(X[:5])   #打印前五行的购物信息

统计一下购买苹果和香蕉的人数:

num_apple_purchases = 0 # 初始化一个购买苹果人数的变量 for sample in X:     if sample[3] == 1:         num_apple_purchases+=1 print("{0} people bought Apples ".format(num_apple_purchases)) num_banana_purchases = 0 for sample in X:     if sample[4] == 1:         num_banana_purchases += 1 print("{0} people bought banana".format(num_banana_purchases))

现在为了计算规则的置信度还有支持度,我们可以用字典的形式来存放计算结果:

valid_rules = defaultdict(int) invalid_rules = defaultdict(int) num_occurances = defaultdict(int) for sample in X:     for premise in range(4):         if sample[premise] ==0 :             continue         num_occurances[premise] +=1  #当顾客有购买物品时key对应的时value变为1         for conclusion in range(4):             if premise == conclusion:  #访问同一个key 的时候是没有意义的直接跳过                 continue             if sample[conclusion] == 1:                 valid_rules[(premise,conclusion)] +=1             else:                 invalid_rules[(premise,conclusion)] +=1

得到所有必要的统计量后,我们再来计算每条规则的支持度和置信度。如前所述,支持度就是规则应验的次数:

support = valid_rules #置信度的计算方法类似,遍历每条规则进行计算 confidence = defaultdict(float) for premise,conclusion in valid_rules.keys():     rule = (premise,conclusion)     confidence[rule] = valid_rules[rule]/num_occurances[premise]

声明一个函数,接收的参数有:分别作为前提条件和结论的特征索引值、支持度字典、置信度字典以及特征列表。

def print_rule(premise, conclusion,support , confidence,features):     premise_name = features[premise]     conclusion_name = features[conclusion]     print("Rule:if a person buys {0} they will also buy {1} ".format(premise_name,conclusion_name))     print(" - Support : {0}".format(support[(premise,conclusion)]))     print(" - Confidence : {0:.3f}".format(confidence[(premise,conclusion)])) premise = 1 conclusion = 3 features = ["bread","milk","cheese","apple","banana"] print_rule(premise,conclusion,support,confidence,features)  from  operator import itemgetter sorted_support = sorted(support.items(),key=itemgetter(1),reverse=True)

排序完成后,就可以输出支持度最高的前5条规则:

for index in range(5):     print("Rule #{0}".format(index+1))     premise,conclusion = sorted_support[index][0]     print_rule(premise,conclusion,support,confidence,features)

关于"如何利用Python进行商品的亲和性分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

数据 算法 数据挖掘 商品 规则 支持 亲和 亲和性 知识 置信度 分析 参数 字典 篇文章 领域 决策 统计 人数 代码 实例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 有格互联网科技 保险科技 互联网保险 湖南永感互联网科技有限公司 互联网科技活动banner 互联网电商科技 互联网公司 科技公司 电子科技大学互联网 湖南洣水互联网科技有限公司扣款 卫星互联网科技股票 互联网科技创新服务 昭通互联网科技选哪家 岳阳华臻互联网科技有限公司 移动互联网年度科技创新 中和天地互联网科技有限公司 互联网领先科技宣传片 厦门江牛科技互联网 下一代互联网重大应用科技园 互联网金融运营模式中的金融科技 马化腾互联网科技教学 知域互联网科技有限公司官网 什么是科技互联网 互联网科技工作委员会毛军 互联网是不是新科技 科技赋能互联网健康 全球顶尖互联网科技公司 浙江互联网科技研学营 互联网公司黑科技创始人 上海钢联属于互联网科技股吗 电子商务与互联网科技的关系 互联网科技自媒体灵感
0