1. 程式人生 > >GIS資訊關聯規則挖掘——Apriori演算法的實現(上)

GIS資訊關聯規則挖掘——Apriori演算法的實現(上)

最近閒著無聊沒啥課,幫讀master的朋友做了一個桌面端的GIS系統,主要功能是景區管理。

其中有個核心功能挺有意思的,就是統計所有景區受損設施的所有致損型別和每個型別具體包含的致損因子後,計算致損因子之間的關聯規則,然後可以根據使用者選定的致損型別組合計算出其景區設施造成損害的概率。(有點學術的一個功能~)


舉個例子詳細說明:

假設景區內損壞的垃圾桶前後共有100個,導致垃圾桶受損的的因素有天氣、溫度、節假日、遊客舉止、垃圾桶造型這5種類型,其中天氣型別包含陰、雨、雪、霧等因子,垃圾桶造型型別包含傳統、潮流、可愛等因子,溫度型別包含。。。。。然後這100個受損垃圾桶中導致每個垃圾桶損壞的因素包含天氣、溫度、遊客舉止、節假日、垃圾桶造型這些型別中的一種或者幾種型別的不同因子,比如有的垃圾桶的受損原因只有遊客舉止型別中的“兒童破壞”因子,有的垃圾桶的受損原因則是節假日型別中的“十一國慶”因子和遊客舉止型別中的“遠端投擲”因子。。。。

現在我們要統計所有垃圾桶的受損原因後,推斷“天氣”因素+“節假日”因素+“遊客舉止”因素組合中對垃圾桶造成損壞率超過2%的所有因子組合~

這其實跟GIS沒多大關係,已經屬於資料探勘領域了~~然後我決定使用資料探勘演算法中不是特別複雜的aporior演算法來實現關聯規則的推算~


(下面是aprior演算法的一些介紹~ 具體的程式碼實現扔在下篇文章啦)

Apriori演算法簡介:  Apriori演算法是一種挖掘關聯規則的頻繁項集演算法, 屬於關聯分析。它的功能是找出頻繁項集,例如:超市購物中,那些商品總是同時被購買,如啤酒和尿不溼總是被同時購買,這時商家就可以把他們放在一起使得啤酒和尿不溼的銷量更多。其核心是:先找頻繁項集是1的元素,在這基礎上找頻繁項集時2的元素,,,,,,,在頻繁項集是K的元素中找頻繁項集是K+1的元素。



演算法的一些基本概念:


對於A->B
①支援度:P(A ∩ B),既有A又有B的概率
②置信度:P(B|A),在A發生的事件中同時發生B的概率 p(AB)/P(A)     例如購物籃分析:牛奶 ⇒ 麵包

例子:[支援度:3%,置信度:40%]
支援度3%:意味著3%顧客同時購買牛奶和麵包
置信度40%:意味著購買牛奶的顧客40%也購買麵包
③如果事件A中包含k個元素,那麼稱這個事件A為k項集事件A滿足最小支援度閾值的事件稱為頻繁k項集。

核心流程如下(從網上找的圖):