SQL Server數據挖掘之理解聚類算法和順序聚類算法
最近與一個客戶的開發(fā)團隊探討和學習SQL Server的數據挖掘及其應用。有幾個比較有意思的問題,整理出來
關于數據挖掘的基本知識和學習資料,可以參考http://msdn.microsoft.com/zh-cn/library/bb510517.aspx
上一篇:SQL Server數據挖掘中的幾個問題之理解列的用法
這一篇我們來探討一下兩個有時候會引起混淆的算法:聚類和順序聚類
聚類算法是使用非常多的一種算法,它的作用是對數據進行分組,將特征相近的實體組織在一起,以便幫助我們對于目標實體分類決策。典型的情況,例如人口分析,客戶分析。
聚類算法大致的效果如下(下面的分類名都可以修改,定義成我們更加容易理解的,例如“金牌客戶”,“銀牌客戶”等等)




有關聚類算法,有一個常見的問題就是:同一個實體會不會出現在不同的類里面呢?也就是說是否有可能會有重疊的情況?
這個問題的答案是:是否有重疊的情況,取決于算法的設置,默認情況下,是可能重疊的。
下面這個算法參數列表中,有一個CLUSTERING_METHOD,默認為1.就是所謂的EM(Expectation Maximization)這種算法,這是允許重疊的。

如果設置為3或者4,則不允許重疊。至于是否可以伸縮(Scalable)表示的是該算法讀取數據的規(guī)則,如果可伸縮,則表示會先讀取50000條記錄作為種子進行建模,如果足夠,則停止讀取。否則繼續(xù)讀取下50000個。而不可伸縮則每次都讀取所有的實體。
那么,什么是“順序聚類”呢?其實它的完整名稱應該是”Microsoft 順序分析和聚類分析”,也就是結合了順序分析和聚類分析的一種特殊的算法。

#p#
這個算法建立模型之后,大致看到的效果是下面這樣的




【備注】這里一定要注意,除了標準的屬性之外,順序聚類會多出來所謂的“Transitions”,這里也就是體現了順序的概念。并且順序聚類算法與標準的聚類算法相比,更多出來另外一個專門的圖形,請看下圖

關鍵就在于,這個圖你該如何理解呢?我總結這么幾點
- 順序聚類算法,首先它是一個聚類算法,他會對輸入的實體進行分組。
- 之所以稱為順序聚類,是說它可以在分完組之后,針對這些組的實體的一些行為(主要是與時間有關的行為)進行分析,展示。
典型的情況有:分析不同客戶群體將物品放入購物籃的順序,分析不同用戶群體訪問公司網頁的點擊順序流。
上面這個圖的舉例解釋就是:“分類1”的這個組,通常是買了“Road-750”這個產品后,有77%的可能性買”Road Bottle Cage”,然后又有93%的可能性買“Water Bottle”
原文鏈接:http://www.cnblogs.com/chenxizhang/archive/2011/07/24/2115331.html
【編輯推薦】