SQL Server 2008中的9種數(shù)據(jù)挖掘算法
1.決策樹(shù)算法
決策樹(shù),又稱判定樹(shù),是一種類似二叉樹(shù)或多叉樹(shù)的樹(shù)結(jié)構(gòu)。決策樹(shù)是用樣本的屬性作為結(jié)點(diǎn),用屬性的取值作為分支,也就是類似流程圖的過(guò)程,其中每個(gè)內(nèi)部節(jié)點(diǎn)表示在一個(gè)屬性上的測(cè)試,每個(gè)分支代表一個(gè)測(cè)試輸出,而每個(gè)樹(shù)葉節(jié)點(diǎn)代表類或類分布。它對(duì)大量樣本的屬性進(jìn)行分析和歸納。根結(jié)點(diǎn)是所有樣本中信息量最大的屬性,中間結(jié)點(diǎn)是以該結(jié)點(diǎn)為根的子樹(shù)所包含的樣本子集中信息量最大的屬性,決策樹(shù)的葉結(jié)點(diǎn)是樣本的類別值。
從樹(shù)的根結(jié)點(diǎn)出發(fā),將測(cè)試條件用于檢驗(yàn)記錄,根據(jù)測(cè)試結(jié)果選擇適當(dāng)?shù)姆种В刂摲种Щ蛘哌_(dá)到另一個(gè)內(nèi)部結(jié)點(diǎn),使用新的測(cè)試條件或者達(dá)到一個(gè)葉結(jié)點(diǎn),葉結(jié)點(diǎn)的類稱號(hào)就被賦值給該檢驗(yàn)記錄。決策樹(shù)的每個(gè)分支要么是一個(gè)新的決策節(jié)點(diǎn),要么是樹(shù)的結(jié)尾,稱為葉子。在沿著決策樹(shù)從上到下遍歷的過(guò)程中,在每個(gè)節(jié)點(diǎn)都會(huì)遇到一個(gè)問(wèn)題,對(duì)每個(gè)節(jié)點(diǎn)上問(wèn)題的不同回答導(dǎo)致不同的分支,最后會(huì)到達(dá)一個(gè)葉子節(jié)點(diǎn)。這個(gè)過(guò)程就是利用決策樹(shù)進(jìn)行分類的過(guò)程。決策樹(shù)算法能從一個(gè)或多個(gè)的預(yù)測(cè)變量中,針對(duì)類別因變量,預(yù)測(cè)出個(gè)例的趨勢(shì)變化關(guān)系。
在SQL Server 2008中,我們可以通過(guò)挖掘模型查看器來(lái)查看決策樹(shù)模型。如圖1所示。

在圖1中,我們可以看到?jīng)Q策樹(shù)顯示由一系列拆分組成,最重要的拆分由算法確定,位于“全部”節(jié)點(diǎn)中查看器的左側(cè)。其他拆分出現(xiàn)在右側(cè)。依賴關(guān)系網(wǎng)絡(luò)顯示了模型中的輸入屬性和可預(yù)測(cè)屬性之間的依賴關(guān)系。并能通過(guò)滑塊來(lái)篩選依賴關(guān)系強(qiáng)度。
2.聚類分析算法
聚類分析算法就是衡量個(gè)體間的相似度,是依據(jù)個(gè)體的數(shù)據(jù)點(diǎn)在幾何空間的距離來(lái)判斷的,距離越近,就越相似,就越容易歸為一類。在最初定義分類后,算法將通過(guò)計(jì)算確定分類表示點(diǎn)分組情況的適合程度,然后嘗試重新定義這些分組以創(chuàng)建可以更好地表示數(shù)據(jù)的分類。該算法將循環(huán)執(zhí)行此過(guò)程,直到它不能再通過(guò)重新定義分類來(lái)改進(jìn)結(jié)果為止。簡(jiǎn)單得說(shuō),聚類就是將數(shù)據(jù)對(duì)象的集合分組成為由類似的對(duì)象組成的多個(gè)類的過(guò)程。聚類用在商務(wù)方面的客戶分析中,可以從客戶庫(kù)中發(fā)現(xiàn)不同的客戶群,并分析不同客戶群的行為模式。
在SQL Server 2008中,我們可以通過(guò)挖掘模型查看器來(lái)查看聚類分析模型。如圖2所示。

在圖2中,分類關(guān)系圖表現(xiàn)個(gè)類間關(guān)聯(lián)性的強(qiáng)弱。分類剖面圖了解因變量與自變量的關(guān)聯(lián)性強(qiáng)弱程度。分類特征主要呈現(xiàn)每一類的特性。分類對(duì)比主要呈現(xiàn)出兩類間特性的比較。
3.Naive Bayes 算法
Naive Bayes 算法是 Microsoft SQL Server Analysis Services 提供的一種分類算法,用于預(yù)測(cè)性建模。Naive Bayes算法使用貝葉斯定理,假定一個(gè)屬性值對(duì)給定類的影響?yīng)毩⒂谄渌麑傩缘闹?。與其他算法相比,該算法所需的運(yùn)算量小,因而能夠快速生成挖掘模型,以發(fā)現(xiàn)輸入列和可預(yù)測(cè)列之間的關(guān)系。可以使用該算法進(jìn)行初始數(shù)據(jù)探測(cè),在用于大型數(shù)據(jù)庫(kù)時(shí),該算法也表現(xiàn)出了高準(zhǔn)確率與高速度,能與決策樹(shù)和神經(jīng)網(wǎng)絡(luò)相媲美。
算法采用監(jiān)督式的學(xué)習(xí)方式,在分類之前,需要事先知道分類的類型。通過(guò)對(duì)訓(xùn)練樣本的學(xué)習(xí),來(lái)有效得進(jìn)行分類。就是通過(guò)訓(xùn)練樣本中的屬性關(guān)系,產(chǎn)生訓(xùn)練樣本的中心概念,用這些已經(jīng)產(chǎn)生的中心概念,對(duì)未分類的數(shù)據(jù)對(duì)象進(jìn)行預(yù)測(cè)。
在SQL Server 2008中,我們可以通過(guò)挖掘模型查看器來(lái)查看Naive Bayes模型。如圖3所示。

在圖3中,依賴關(guān)系網(wǎng)絡(luò)可以對(duì)數(shù)據(jù)的分布進(jìn)一步了解。屬性配置文件可以了解每個(gè)變量的特性分布情況。屬性特征可以看出不同群分類的基本特性概率。屬性對(duì)比就是呈現(xiàn)屬性之間的特性對(duì)比。
4.關(guān)聯(lián)規(guī)則算法
關(guān)聯(lián)算法規(guī)則是要發(fā)現(xiàn)數(shù)據(jù)庫(kù)中變量和個(gè)體之間關(guān)系程度,也就是要發(fā)現(xiàn)大量數(shù)據(jù)中項(xiàng)集之間有趣的關(guān)聯(lián)或相關(guān)聯(lián)系。例如,在關(guān)聯(lián)規(guī)則挖掘中,典型的例子就是購(gòu)物籃分析,該分析過(guò)程就是通過(guò)分析顧客所購(gòu)買的不同商品之間的聯(lián)系,來(lái)挖掘顧客的購(gòu)買習(xí)慣,并幫助銷售商制定營(yíng)銷策略。關(guān)聯(lián)規(guī)則算法中有兩個(gè)重要的參數(shù)支持度和置信度。支持度就是指X項(xiàng)集和Y項(xiàng)集中,同時(shí)發(fā)生X,Y事件的概率。置信度就是指X項(xiàng)集和Y項(xiàng)集中,X事件發(fā)生的概率下,Y事件發(fā)生的概率。
在SQL Server 2008中,我們可以通過(guò)挖掘模型查看器來(lái)查看關(guān)聯(lián)規(guī)則模型。如圖4所示

在圖4中,規(guī)則可以查看算法中產(chǎn)生的關(guān)聯(lián)規(guī)則,我們可以通過(guò)此來(lái)了解關(guān)聯(lián)規(guī)則內(nèi)容以及其支持度和置信度。項(xiàng)集可以查看算法中產(chǎn)生的對(duì)象組,我們可以通過(guò)此來(lái)了解各個(gè)對(duì)象組內(nèi)容及其支持。依賴關(guān)系網(wǎng)絡(luò)可以呈現(xiàn)產(chǎn)品間的相關(guān)性,并通過(guò)圖形了解產(chǎn)品間的相關(guān)性。
5.順序分析和聚類分析算法
順序分析和聚類分析算法是由 Microsoft SQL Server Analysis Services 提供的一種順序分析算法。可以使用該算法來(lái)研究包含可通過(guò)下面的路徑或順序鏈接到的事件的數(shù)據(jù)。該算法通過(guò)對(duì)相同的順序進(jìn)行分組或分類來(lái)查找最常見(jiàn)的順序。
在SQL Server 2008中,我們可以通過(guò)挖掘模型查看器來(lái)查看順序分析模型。如圖5所示

在圖5中分類關(guān)系圖可以顯示挖掘模型中的所有分類,分類之間連線的明暗程度表示分類的相似程度。通過(guò)調(diào)整分類右側(cè)的滑塊,可以調(diào)整顯示的連線數(shù)。分類剖面圖提供算法創(chuàng)建的分類的總體視圖,顯示了分類中的每個(gè)屬性以及屬性的分布。分類特征可以檢查分類的組成特征。分類對(duì)比可以比較兩個(gè)分類的屬性。狀態(tài)轉(zhuǎn)換可以在選中一個(gè)分類后,可在選中的分類中瀏覽序列狀態(tài)之間的轉(zhuǎn)換。
6.時(shí)序算法
時(shí)序算法提供了一些針對(duì)連續(xù)值預(yù)測(cè)進(jìn)行了優(yōu)化的回歸算法,并將時(shí)間序列分解成主要趨勢(shì)成分,季節(jié)變化成分,并檢驗(yàn)理論模型是否能反應(yīng)現(xiàn)象。
在SQL Server 2008中,我們可以通過(guò)挖掘模型查看器來(lái)查看時(shí)序模型。如圖6所示

在圖6中,圖表欄顯示預(yù)測(cè)變量個(gè)產(chǎn)品過(guò)去值以及預(yù)測(cè)值,以及誤差區(qū)間。模型將算法以完成的模型顯示為樹(shù)。
7.神經(jīng)網(wǎng)絡(luò)算法
神經(jīng)網(wǎng)絡(luò)是一組連接的輸入輸出單元,其中每一個(gè)連接都與一個(gè)權(quán)相連接。在訓(xùn)練學(xué)習(xí)階段,通過(guò)調(diào)整訓(xùn)練網(wǎng)絡(luò)的權(quán),使得能夠預(yù)測(cè)輸入樣本的正確類標(biāo)號(hào)。神經(jīng)網(wǎng)絡(luò)算法創(chuàng)建由多至三層神經(jīng)元組成的網(wǎng)絡(luò)。這些層分別是輸入層、可選隱藏層和輸出層。輸入層:輸入神經(jīng)元定義數(shù)據(jù)挖掘模型的所有輸入屬性值及其概率。隱藏神經(jīng)元接收來(lái)自輸入神經(jīng)元的輸入,并向輸出神經(jīng)元提供輸出。隱藏層是向各種輸入概率分配權(quán)重的位置。權(quán)重說(shuō)明某一特定輸入對(duì)于隱藏神經(jīng)元的相關(guān)性或重要性。輸入所分配的權(quán)重越大,則輸入的值越重要。輸出神經(jīng)元代表數(shù)據(jù)挖掘模型的可預(yù)測(cè)屬性值。
在SQL Server 2008中,我們可以通過(guò)挖掘模型查看器來(lái)查看神經(jīng)網(wǎng)絡(luò)模型。如圖7所示

在圖7中,輸入選擇神經(jīng)網(wǎng)絡(luò)模型將用作輸入的屬性和屬性值。輸出指定使用輸出的神經(jīng)網(wǎng)絡(luò)的屬性。變量指定屬性右側(cè)的條表示指定輸入屬性狀態(tài)所傾向的輸出屬性狀態(tài)。 條的大小則表示輸出狀態(tài)傾向于輸入狀態(tài)的程度。
8.邏輯回歸算法
邏輯回歸是根據(jù)輸入域值對(duì)記錄進(jìn)行分類的統(tǒng)計(jì)方法,通過(guò)建立一組方程,把輸入域值與輸出字段每一類的概率聯(lián)系起來(lái)。模型在分析二分類或有序因變量與解釋變量的關(guān)系,用自變量去預(yù)測(cè)因變量在給定某個(gè)值的概率。一旦生成模型,便可用于估計(jì)新的數(shù)據(jù)的概率。概率最大的目標(biāo)類被指定為該記錄的預(yù)測(cè)輸出值。邏輯回歸算法是神經(jīng)網(wǎng)絡(luò)算法的一種變體,用于確定多個(gè)因素對(duì)一對(duì)結(jié)果的影響。通過(guò)對(duì)輸入和輸出之間的關(guān)系進(jìn)行建模。來(lái)測(cè)量每個(gè)輸入對(duì)輸出的影響,并權(quán)衡不同輸入在完成的模型中的作用。
9.線性回歸算法
線形回歸算法是一種常用的用于統(tǒng)計(jì)并作出預(yù)測(cè)的方法,使決策樹(shù)算法的一種變體,有助于計(jì)算依賴變量和獨(dú)立變量之間的線性關(guān)系,根據(jù)輸入字段估計(jì)預(yù)測(cè)輸出字段的最佳線形方程,然后使用該關(guān)系進(jìn)行預(yù)測(cè)。使用線性回歸確定兩個(gè)連續(xù)列之間的關(guān)系,代表一條直線或者平面,以評(píng)估數(shù)據(jù)列之間的關(guān)系。