支援度和置信度理解與實戰

2021-08-18 01:31:33 字數 4040 閱讀 2205

# coding: utf-8

# in[35]:

importnumpyasnp

fromcollectionsimportdefaultdict

dataset_filename='c:/users/liang/datafind/code_rewrite/chapter 1/affinity_dataset.txt'#讀取檔案

x=np.loadtxt(dataset_filename)

#顯示檔案中前五個資料

#麵包 牛奶 乳酪 蘋果 香蕉

print(len(x))

print(x)

# in[36]:

#統計一共有多少個人買了蘋果

forsampleinx:

ifsample[3]==1:

print# in[34]:

#計算規則應驗,規則無效,條件相同的規則數量

#(x,y)條件都成立的數量

valid_rules=defaultdict(int)

#x成立的數量

num_occurances=defaultdict(int)

# in[46]:

#支援度的求解

forsampleinx:

forpremiseinrange(5):

ifsample[premise]==0:

continue#總的數量

num_occurances[premise]+=1

forconclusioninrange(premise+1,5):

ifsample[conclusion]==1:

valid_rules[(premise,conclusion)]+=1

# in[61]:

#支援度,和置信度計算和輸出函式

defprint_rule(item1,item2,num_occrances,invalid_rules):

one=0

ifitem1>item2:

one=(item2,item1)

else:

one=(item1,item2)

name=

support=invalid_rules[one]

ifnum_occrances[item1]==0:

confidence=0

else:

confidence=invalid_rules[one]/num_occrances[item1]

print('如果他們買了{} 他們可能買 {}'.format(name[item1],name[item2]))

print('confidence:%.3f'%(confidence))

print('support:%.0f'%(support))

# in[62]:

num=0

foriinrange(5):

forjinrange(5):

ifi==j:

continuenum+=1

print('rule:',num)

# print(num_occurances[i])

print_rule(i,j,num_occurances,valid_rules)

資料:

0 0 1 1 1

1 1 0 1 0

1 0 1 1 0

0 0 1 1 1

0 1 0 0 1

0 1 0 0 0

1 0 0 0 1

1 0 0 0 1

0 0 0 1 1

0 0 1 1 1

1 1 0 0 1

0 1 0 0 0

0 0 0 0 1

0 0 1 0 1

0 1 0 0 1

0 0 1 1 1

1 0 0 0 1

0 0 1 1 1

1 1 0 0 0

0 1 0 0 0

0 0 1 0 0

0 1 0 0 1

0 1 0 0 0

0 1 0 0 1

0 0 1 1 1

0 0 1 1 0

0 0 1 0 1

0 0 0 0 1

0 1 0 0 0

0 1 0 1 0

1 1 1 0 1

1 1 0 0 1

0 0 1 1 1

0 0 1 0 1

0 0 1 1 1

0 0 1 1 0

0 1 1 0 1

0 0 1 1 0

0 1 0 0 1

0 0 0 0 1

0 0 1 0 1

1 1 0 1 1

1 0 0 0 1

0 0 1 1 1

0 1 0 0 0

0 1 0 1 1

0 1 0 0 0

0 1 0 0 0

0 0 1 1 0

0 0 1 1 1

0 1 0 1 0

0 1 1 0 0

0 0 1 1 0

0 0 1 1 1

1 0 0 0 0

0 1 0 1 0

1 0 0 0 1

0 1 0 0 0

0 0 0 0 1

0 0 1 1 1

0 1 1 1 1

1 1 0 0 0

0 0 1 0 1

1 0 0 0 1

1 1 0 0 0

0 1 1 0 0

0 0 0 0 1

0 1 0 0 0

0 0 1 1 1

0 1 0 0 1

1 0 0 0 1

1 0 0 0 1

0 1 0 0 1

0 0 1 1 1

1 0 1 0 1

1 1 0 0 1

0 1 0 0 1

1 1 1 0 1

0 0 1 1 1

1 0 0 0 0

0 0 1 1 1

1 1 0 1 0

0 0 1 0 0

0 0 1 0 1

0 1 0 0 0

1 1 0 0 0

0 0 0 1 0

0 0 0 1 1

0 1 0 0 0

0 1 0 0 0

1 1 0 0 1

0 0 1 0 0

0 1 0 0 1

1 1 0 1 0

1 0 0 0 1

0 1 0 0 0

0 0 1 1 0

0 1 1 0 0

0 0 1 1 0

0 0 0 0 1

支援度與置信度

支援度 support 的公式是 support a b p a u b 支援度揭示了a與b同時出現的概率。如果a與b同時出現的概率小,說明a與b的關係不大 如果a與b同時出現的非常頻繁,則說明a與b總是相關的。置信度 confidence 的公式式 confidence a b p a b 置信度...

支援度和置信度

找出對於資料集的規則,可以看作是一種關係的 比如 如果物件執行了動作a,那該物件可能願意執行動作b 支援度指資料集中規則應驗的次數,即對於一條 如果物件執行了動作a,那該物件可能願意執行動作b 這樣的規則,在特定資料集中被驗證的詞數.置信度表示規則準確率,對於特定規則,在所有相同 與這個特定規則的前...

關聯分析中的支援度 置信度和提公升度

自 1.支援度 support 支援度表示項集在總項集裡出現的概率。公式為 support x y p x,y p i p x y p i num xuy num i 其中,i表示總事務集。num 表示求事務集裡特定項集出現的次數。比如,num i 表示總事務集的個數 num x y 表示含有的事務...