SQL Server數(shù)據(jù)挖掘中的幾個(gè)問(wèn)題之理解內(nèi)容類型
最近與一個(gè)客戶的開(kāi)發(fā)團(tuán)隊(duì)探討和學(xué)習(xí)SQL Server的數(shù)據(jù)挖掘及其應(yīng)用。有幾個(gè)比較有意思的問(wèn)題,整理出來(lái)
關(guān)于數(shù)據(jù)挖掘的基本知識(shí)和學(xué)習(xí)資料,可以參考http://msdn.microsoft.com/zh-cn/library/bb510517.aspx
1. 如何理解Continuous(連續(xù)),Discretized(離散化)和Discreted(離散的)的區(qū)別
這是對(duì)于在數(shù)據(jù)挖掘結(jié)構(gòu)中,對(duì)于內(nèi)容類型設(shè)置的幾個(gè)常用的值,如下圖所示
【備注】其實(shí)除了這三個(gè),還有其他好多個(gè)不同的ContentType,具體的請(qǐng)參考http://msdn.microsoft.com/zh-cn/library/ms174572.aspx
我的理解是這樣的
- 首先,這個(gè)ContentType是指定在挖掘模型中將如何這些屬性,而并非說(shuō)這個(gè)屬性本身是連續(xù)的或者離散的。
- 其次,不同的挖掘算法對(duì)于ContentType的支持是不一樣的。例如貝葉斯算法就不支持連續(xù)的類型。其他一些算法也或多或少會(huì)有些自己的限制等
- 如果使用“連續(xù)(Continuous)”,則表示這一列的數(shù)據(jù),最終可以在分析的時(shí)候,按照一定的規(guī)則劃分一些范圍,而不是單一的某個(gè)值。典型的連續(xù)類型,例如年收入,年齡等。因?yàn)槟晔杖氲闹悼赡苁呛芏嗟?,如果每一個(gè)值都作為一個(gè)分析的個(gè)體去做,那么會(huì)導(dǎo)致太過(guò)細(xì)枝末節(jié)。我們通常在分析的時(shí)候,習(xí)慣將收入分段,例如1000~30000之間當(dāng)做一個(gè)個(gè)體。如果要實(shí)現(xiàn)這樣的效果,那么年收入就要設(shè)置為“連續(xù)”。下圖是在決策樹(shù)中看到的一個(gè)效果
- 那么什么是“離散(Discreted)”的內(nèi)容類型呢?和“連續(xù)”正好相反,它表示將每個(gè)數(shù)據(jù)都作為單一的個(gè)體進(jìn)行分析,如果數(shù)據(jù)包含有限的幾個(gè)可選值,則很適合用這種類型。例如性別,職業(yè)等等。下圖是在貝葉斯算法中看到的一個(gè)效果。除了第一個(gè)屬性“Age”之外,其他的其實(shí)都是離散的。
- 那么,什么是離散化(Discretized)的呢?其實(shí)上面這個(gè)圖中看到的Age就是離散化的。為什么這么說(shuō)呢?首先它肯定不是連續(xù)的,因?yàn)樨惾~斯不支持連續(xù)的內(nèi)容類型,其次它又不是離散的,離散的是將每個(gè)數(shù)據(jù)作為個(gè)體,而這里的Age其實(shí)是有范圍的意思。那么,這樣你就大致理解了為什么會(huì)有“離散化”這么一個(gè)類型了吧?就是說(shuō),在某些算法里面,既不支持連續(xù)的內(nèi)容類型,而且你分析的時(shí)候,又不希望用離散的內(nèi)容類型進(jìn)行分析(因?yàn)閭€(gè)體可能很多),那么可以選擇將這些數(shù)據(jù)轉(zhuǎn)換為離散的,這個(gè)過(guò)程叫離散化。我們來(lái)看看是怎么做到的?
首先,設(shè)置為Discretized,
然后一定要設(shè)置另外兩個(gè)屬性:DiscretizationBucketCount,和DiscretizationMethod,第一個(gè)屬性表示分成多少組(最多),第二個(gè)屬性表示要用什么方法分組。這個(gè)Method有下面三種選擇
原文鏈接:http://www.cnblogs.com/chenxizhang/archive/2011/07/24/2115281.html
【編輯推薦】