数字化转型网数据专题将关注数据治理、数据质量管理、数据架构、主数据管理、数据仓库、元数据管理、数据备份、数据挖掘、数据分析、数据安全、大数据、数据合规、等数据相关全产业链相关环节。

现在进行代码部分:
import numpy as np
from collections import defaultdict数字化转型网www.szhzxw.cn
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数字化转型网www.szhzxw.cn
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)数字化转型网www.szhzxw.cn
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数字化转型网www.szhzxw.cn
else:
invalid_rules[(premise,conclusion)] +=1
得到所有必要的统计量后,我们再来计算每条规则的支持度和置信度。如前所述,支持度就是规则应验的次数:
support = valid_rules
#置信度的计算方法类似,遍历每条规则进行计算
confidence = defaultdict(float)
for premise,conclusion in valid_rules.keys():
rule = (premise,conclusion)数字化转型网www.szhzxw.cn
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数字化转型网www.szhzxw.cn
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))数字化转型网www.szhzxw.cn
premise,conclusion = sorted_support[index][0]
print_rule(premise,conclusion,support,confidence,features)
声明:本文来自网络,版权归作者所有。文章内容仅代表作者独立观点,不代表数字化转型网立场,转载目的在于传递更多信息。如有侵权,请联系我们。数字化转型网www.szhzxw.cn
数字化转型网数据专题包含哪些内容
数字化转型网数据专题将关注数据治理、数据质量管理、数据架构、主数据管理、数据仓库、元数据管理、数据备份、数据挖掘、数据分析、数据安全、大数据、数据合规、等数据相关全产业链相关环节。
数字化转型网数据专题包含: 数字化转型网(www.szhzxw.cn)
1、数据相关外脑支持:100+数据相关专家、100+数据实践者、1000+相关资料
2、数据研习社:与全球数据相关专家、实践者共同探讨相关问题,推动产业发展!
3、国际认证培训:目前已引进DAMA国际认证CDMP,其他国内外认证也在逐步引进中
4、典型案例参考:与数字化转型网数据要素X研习社社员一起学习典型案例,共探企业数据落地应用

本文由数字化转型网(www.szhzxw.cn)转载而成,来源于菜J学Python;编辑/翻译:数字化转型网Jack。

