首页 > 编程知识 正文

python购物篮分析,python数据挖掘课程设计

时间:2023-05-04 08:33:51 阅读:41042 作者:3481

基于亲和性分析的商品推荐

import numpy as np

dataset _ filename=' affinity _ dataset.txt ' )

x=NP.loadtxt(dataset_filename ) )。

打印(x [ :5 ]

面包、牛奶、奶酪、苹果、香蕉

#计算数据集上有多少人买了苹果

num_apple_purchases=0

for sample in X:

if sample[3]==1:

num_apple_purchases=1

购买了print (人是苹果).format (num _ apple _ purchases ) )

#计算数据集上有多少人买了香蕉

num_banana_purchases=0

for sample in X:

if sample[4]==1:

num_banana_purchases=1

print (人购买了香蕉(.format ) num_Banana_purchases ) )。

#统计数据集中的所有规则数据。 首先,为规则的应验和规则的无效两种情况编写词典

“客人买苹果的话,也买香蕉”用(3,4 )表示

fromcollectionsimportdefaultdict #使用默认词典,如果搜索键不存在,则返回默认值

valid_Rules=defaultdict(int ) #

invalid _ rules=默认dict (int ) #规则无效

num _ occurances=默认dict (int ) #条件相同的规则数

#计算过程中,需要按循环结构依次处理各个体的特征量。 第一个特点是作为规则前提条件的顾客购买了某个商品

for sample in X:

forpremiseinrange(4) :

if sample[premise]==0:#个体不符合条件,就不买当前商品继续

连续

num_occurances[premise]=1

forconclusioninrange(premise,5 ) :

if premise==conclusion:

连续

if sample[conclusion]==1:

valid_Rules[(premise,conclusion ) ]=1

else:

Invalid_Rules[(premise,conclusion ) ]=1

#支持度的计算

support=valid_rules

#计算可靠度,遍历各规则的计算

确认=默认值dict (浮动)

for premise,conclusion in valid_rules.keys () :

rule=(premise,conclusion )

confidence [ rule ]=valid _ rules [ rule ]/num _ occurances [ premise ] #是符合每个规则的数量总数/元组中年第一批商品的数量

features=[ '面包'、'牛奶'、'奶酪'、'苹果'、'香蕉' ]

#我现在得到了支持度词典和可靠度词典。 当前,定义函数以输出每个规则、支持度和置信度

defshow(premise,conclusion,support,confidence,features ) :

premise_name=features[premise]

conclusion _ name=features [ conclusion ]

如果您是print('rule:一个人购买{0},他也会购买{1}'.format(premise_name,conclusion_name ) )。

print ()支持数量为() ).format ) support () premise,conclusion ) )

print ((可靠性为) 0:3f ).format ) confidence((premise,conclusion ) ) )

(打印((n (n ) ) ) ) ) ) ) ) ) ) ) ) ) ) )

#打印(确认,类型)确认) )

#打印(支持,类型) (支持) )

# if __name__=='__main__':

# prem=1

# con=3

#show(prem,con,support,confidence,features )。

#获得所有规则的支持度和信任度后,为了找到最佳规则,需要根据支持度和信任度对规则进行排名。

#要找到支持度最高的规则,请先对支持度词典进行排序。 词典的items (函数返回包含词典所有元素的列表,itemgetter )作为关键字对嵌套列表进行排序。

#itemgetter(1)表示根据词典的各要素的值(这里是支持度)进行排序,reverse=true表示按照降序排列

from operator导入项目获取器

#按支持度排序

sortd _ support=sorted (support.items (、key=itemgetter(1)、reverse=True ) )

#根据可靠度排序

sortd _ confidence=sorted (confidence.items (、key=itemgetter(1)、reverse=True ) )。

打印(sortd _ support )是

#排序完成,输出支持度前五的规则

forIinrange(5) :

打印(角色规则#{0} ) .格式(I1 ) ) ) ) ) ) ) ) ) )。

(premise,conclusion )=sortd_support[i][0]#获取元组值

show (优先级、conclusion、support、confidence、features ) )。

#输出可靠度前5的规则

#forIinrange(5) :

#print('role规则#{0}'.format ) I1 ) )

#(premise,conclusion )=sortd_confidence[i][0]#获取元组值

# show (优先级、conclusion、support、confidence、features ) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。