關聯分析:第一大數據挖掘演算法

我最近越發感覺,學好計算機科學,除了多寫程序,多抄書,背書,多寫一些總結性的文章,也是非常好的方法。我準備不斷的更新我所寫的計算機科學(主要是數據挖掘和機器學習)兩個方面的總結類文章。

提起數據挖掘,首先要明白數據挖掘的一個,最基本的套路。就好比過去人學武,要講究一個「把式」一樣。其實數據挖掘,也就是三大塊組成。從數據(結構化數據,非結構化數據)到模式,再從模式到知識。在這之中,貫穿幾大核心內容:數據清洗(data cleaning,非常著名的麻煩事),數據挖掘演算法(用四大類演算法,關聯回歸分類聚類處理處理被清洗好的數據),數據可視化和數據分析報告寫作(畢竟你要和他人交流)以及數據分析等等。他無外乎,也就是這些東西嘛。

當然另外一個維度就是,你用數據挖掘,可以處理什麼「原料。」數據挖掘,可以處理文檔,資料庫數據,多媒體數據,生物信息數據,時間序列數據等等。在這之中,可以非常「實際」的分為兩種數據,那便是結構化數據還有非結構化數據。

我今天想來寫寫什麼是關聯分析演算法。關聯分析,也是絕大多數人起初接觸數據挖掘所接觸的第一個演算法。當然了,在很大程度上,個人認為關聯分析當之無愧是數據挖掘的第一大演算法。當然提起關聯分析大家往往都知道「Apriori演算法」和「FP-growth演算法。」當然了,實際的情況,比這個要複雜許多。

首先,我們要引入兩個概念。那便是,support和confidence的概念。因為本人大多數數據挖掘的教材都是看的英文的,所以有些定義的中文名並不確定知道。如果有知道的朋友不妨回復在下面。

其中:N是資料庫中tuple的個數。

Support:The probability that a transaction contains X and Y.

Support=(X and Y)/(N)

Confidence: The conditional probability that a transaction containing X also contains Y(其實就是條件概率)。

Confidence=P(X|Y),or P(Y|X)

舉一個例子。我們現在給定一個資料庫,這些數據都是,Urbana市Walmart的銷售數據。最左邊的數字是銷售數據的編號。

10 Beer, Nuts, Diaper

20 Beer, Coffee, Diaper

30 Beer, Diaper, Eggs

40 Nuts, Eggs, Milk

50 Nuts, Coffee, Diaper, Eggs, Milk

我們用support可以計算什麼?可以計算比如,Beer和Nuts一起出現的情況佔全部情況的比例。如果這個support非常高,那麼就好比是兩種熱銷商品會經常在一起被購買。大家比較容易想到的肯定是火鍋底料和肥羊/肥牛這種組合。當然歷史上還有另一個非常著名的案例:啤酒和尿布。Walmart公司把啤酒和尿布放在一起銷售,果然銷售量增長迅猛。後來原因Walmart的數據科學家發現,原來是男性在被自己的配偶支派去買尿布的時候,總是會買杯啤酒犒勞一下自己。

另外一個值得一提的,就是著名的,confidence了。這個confidence,論本質他是一個條件概率。conditional probability。Conditional probability

在數學上的貝葉斯分布這一章對條件概率有大量的論述。大家可以去查閱相關資料。它可以這樣理解:在有事件A發生的條件下,事件B發生的條件概率。這個的定義是:

P(A|B)=P(AB)/P(B)

這種指標可以衡量什麼呢:可能有些商品,比如電腦和耳機的銷量是非常少的。相比與雞蛋,牛奶和麵包來說。但是,我們也可以發現,在有電腦的情況下,必然出現耳機。這也可以幫助我們調整以及整合自己的營銷策略。

改天繼續更新吧!要繼續看書。


推薦閱讀:

1-3 What is Machine Learning
機器學習技法筆記7:融合模型(Aggregation Models)
python機器學習之模型正則化
聲紋識別演算法、資源與應用(一)
有bioinformatics, ML, 或者phd生涯問題的同學,可以私信我

TAG:數據挖掘 | 機器學習 |