# 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 表示含有的事務...