1. 程式人生 > >關於apriori演算法中置信度、支援度怎麼理解的問題

關於apriori演算法中置信度、支援度怎麼理解的問題

比如說啤酒和尿布的問題:



TID是transaction ID 即交易編號,說白了就是有五個人在超市買了這樣的東西(Iteams),現在我們統計一下,大家買的東西之間有

沒有什麼規律,比如買麵包的是不是很可能同時買牛奶這樣的規律。

那問題來了,有啥東西去度量麵包與牛奶有沒有關係以及啤酒喝尿布有沒有關係?有很多,這裡只說置信度和支援度:

支援度:



這是啥?答:support的首字母S支援度,是規則:{Milk, Diaper}{Beer}的支援度(規則是神馬?就是比如說買了Milk和Diaper的人會不會買Beer),所以支援度分母是這三個都買的人數,分子是買東西的總人數。

仔細想想是不是合理這樣定義?:假如這個支援度越大,說明同時買這三個東西的人多,說明這三者之間有關係!對吧?很容易理解。但是!!!!!!!!!!!!!!!!!只用這一個可靠嗎?再這樣想一下,交易量特別大的時候,假如有一萬個人買東西,只有10個人同時買了Milk、Diaper、Beer,但其他9990個人沒有買這三者中的任何一個,那麼此時S=10/10000=0.001,

是不是特別小?如果僅從這個0.001看,這三者之間沒有任何關係,但是事實卻不是這樣,因為只有十個人這樣買,並且同時買了這三種東西,所以他們之間應該是由關係的,而不是偶然。

置信度:

為了解決上面問題,再加一個置信度概念。Confidence。根據表格計算置信度如下:



這是啥?和S支援度比較只有分母變了,變成了買了Milk和Diaper兩種東西的人,這個式子是說買了Milk和Diaper兩種東西的人裡面又有多少人買了Beer這個東西!

》》》》》》》》》》》》》》》》》》你先緩緩這個式子》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

那這個式子怎麼就解決上面的問題了呢?還是那一萬個人的情況下,此時c=10/10=100%!!!!!!!!!!!, 明白了嗎,只有十個人買了Milk和Diaper兩種東西,但是這十個人又都買了Beer!,所以這個值為100%,因此他能衡量一部分關聯規則。

又有人問了,只用置信度行嗎?很明顯不行啊!!!比如1萬個人,只有一個人買了Milk和Diaper兩種東西,並且順手買了一瓶Beer,那麼此時c=1/1=100%,很大,但是很明顯就這一個交易不能說明三者之間有關係啊。這時候S=1/10000=0.0001,特別的小!!!!

所以正確的有關聯的判定是:置信度和支援度都應該比較大才可以認為這些東西之間有關聯!