SQL SERVER 數據挖掘之理解內容類型
SQL SERVER數據挖掘中的內容類型分為:Continuous(連續),Discretized(離散化)和Discreted(離散的)。它們的區別在哪里呢?該怎樣理解呢,本文介紹了這一過程,現在我們開始介紹。
這是對于在數據挖掘結構中,對于內容類型設置的幾個常用的值,如下圖所示
【備注】其實除了這三個,還有其他好多個不同的ContentType,具體的請參考http://msdn.microsoft.com/zh-cn/library/ms174572.aspx。
我的理解是這樣的:
首先,這個ContentType是指定在挖掘模型中將如何這些屬性,而并非說這個屬性本身是連續的或者離散的。
其次,不同的挖掘算法對于ContentType的支持是不一樣的。例如貝葉斯算法就不支持連續的類型。其他一些算法也或多或少會有些自己的限制等
如果使用“連續(Continuous)”,則表示這一列的數據,最終可以在分析的時候,按照一定的規則劃分一些范圍,而不是單一的某個值。典型的連續類型,例如年收入,年齡等。因為年收入的值可能是很多的,如果每一個值都作為一個分析的個體去做,那么會導致太過細枝末節。我們通常在分析的時候,習慣將收入分段,例如1000~30000之間當做一個個體。如果要實現這樣的效果,那么年收入就要設置為“連續”。下圖是在決策樹中看到的一個效果。
那么什么是“離散(Discreted)”的內容類型呢?和“連續”正好相反,它表示將每個數據都作為單一的個體進行分析,如果數據包含有限的幾個可選值,則很適合用這種類型。例如性別,職業等等。下圖是在貝葉斯算法中看到的一個效果。除了第一個屬性“Age”之外,其他的其實都是離散的。
那么,什么是離散化(Discretized)的呢?其實上面這個圖中看到的Age就是離散化的。為什么這么說呢?首先它肯定不是連續的,因為貝葉斯不支持連續的內容類型,其次它又不是離散的,離散的是將每個數據作為個體,而這里的Age其實是有范圍的意思。那么,這樣你就大致理解了為什么會有“離散化”這么一個類型了吧?就是說,在某些算法里面,既不支持連續的內容類型,而且你分析的時候,又不希望用離散的內容類型進行分析(因為個體可能很多),那么可以選擇將這些數據轉換為離散的,這個過程叫離散化。我們來看看是怎么做到的?
首先,設置為Discretized,
然后一定要設置另外兩個屬性:DiscretizationBucketCount,和DiscretizationMethod,第一個屬性表示分成多少組(最多),第二個屬性表示要用什么方法分組。這個Method有下面三種選擇
相信通過上面的比較,大家應該就能較好地理解SQL SERVER數據挖掘中這三種內容類型的區別了。本文就介紹到這里,下一篇我們介紹:SQL SERVER數據挖掘之理解列的用法。
【編輯推薦】