SQL SERVER數據挖掘之理解聚類算法和順序聚類算法
繼上次我們介紹了:SQL SERVER數據挖掘之理解列的用法,這次我們介紹SQL SERVER數據挖掘之理解聚類算法和順序聚類算法,下面我們就開始介紹。
聚類算法是使用非常多的一種算法,它的作用是對數據進行分組,將特征相近的實體組織在一起,以便幫助我們對于目標實體分類決策。典型的情況,例如人口分析,客戶分析。
聚類算法大致的效果如下(下面的分類名都可以修改,定義成我們更加容易理解的,例如“金牌客戶”,“銀牌客戶”等等)。
有關聚類算法,有一個常見的問題就是:同一個實體會不會出現在不同的類里面呢?也就是說是否有可能會有重疊的情況?
這個問題的答案是:是否有重疊的情況,取決于算法的設置,默認情況下,是可能重疊的。
下面這個算法參數列表中,有一個CLUSTERING_METHOD,默認為1.就是所謂的EM(Expectation Maximization)這種算法,這是允許重疊的。
如果設置為3或者4,則不允許重疊。至于是否可以伸縮(Scalable)表示的是該算法讀取數據的規則,如果可伸縮,則表示會先讀取50000條記錄作為種子進行建模,如果足夠,則停止讀取。否則繼續讀取下50000個。而不可伸縮則每次都讀取所有的實體。
那么,什么是“順序聚類”呢?其實它的完整名稱應該是”Microsoft 順序分析和聚類分析”,也就是結合了順序分析和聚類分析的一種特殊的算法。
這個算法建立模型之后,大致看到的效果是下面這樣的:
【備注】這里一定要注意,除了標準的屬性之外,順序聚類會多出來所謂的“Transitions”,這里也就是體現了順序的概念。并且順序聚類算法與標準的聚類算法相比,更多出來另外一個專門的圖形,請看下圖。
關鍵就在于,這個圖你該如何理解呢?我總結這么幾點:
1. 順序聚類算法,首先它是一個聚類算法,他會對輸入的實體進行分組。
2. 之所以稱為順序聚類,是說它可以在分完組之后,針對這些組的實體的一些行為(主要是與時間有關的行為)進行分析,展示。
典型的情況有:分析不同客戶群體將物品放入購物籃的順序,分析不同用戶群體訪問公司網頁的點擊順序流。
關于SQL SERVER數據挖掘之理解聚類算法和順序聚類算法的內容就介紹到這里,下次我們介紹:SQL SERVER數據挖掘之如何實現Web路徑流挖掘。
【編輯推薦】