【轉】數據離散化方法


轉至http://blog.csdn.net/programmer_wei/article/details/17200085

什么是離散化:

連續屬性的離散化就是將連續屬性的值域上,將值域划分為若干個離散的區間,最后用不同的符號或整數
值代表落在每個子區間中的屬性值。

為什么要離散化

連續屬性離散化的目的是為了簡化數據結構,數據離散化技術可以用來減少給定連續屬性值的個數。離散化方法經常作為數據挖掘的工具。常見的正態假設是連續變量,離散化減少了對於分布假設的依賴性,因此離散數據有時更有效。

離散化的技術

根據數據是否包含類別信息可以把它們分成有監督的數據無監督的數據。有監督的離散化要考慮類別信息而無監督的離散化則不需要。

1、非監督離散化

無監督離散化方法在離散過程中不考慮類別屬性,其輸入數據集僅含有待離散化屬性的值。等頻率、等寬、等深、K均值都是主要是無監督的離散化方法、其中等頻率、等深\K均值更為科學。

等寬離散化

如圖是一個原始的數據分布圖:

使用等寬離散化對數據進行划分的話如下圖:

但是,我們可以發現5~10區間上數據出現的頻率明顯大於10~15區間上的出現頻率。所以說等寬算法是最簡單的無監管離散化方法,它根據用戶指定的區間數目 K ,將數值屬性的值域[ , ] Xmin Xmax 划分為 K 個區間,並使每個區間寬度相等,即都等於(Xmax  Xmin )/ K 。但是,當存在對於區域來說偏斜極為嚴重的點時,這種離散化的方法是不適用的。

等頻率離散化

使用等頻率離散化對數據進行划分的話如下圖:

我們可以發現5~10區間上數據出現的頻率與10~15區間上的出現頻率大致相等。

K均值離散化

K-均值聚類是一種應用廣泛的數據聚類算法。在用戶指定了離散化產生的區間數目 K 后,K-均值算法首先從數據集中隨機找出 K 個數據作為 K 個初始區間的重心;然后,根據這些重心的歐式距離,對所有的對象聚類:如果數據 x 距重心Gi 最近,則將 x 划歸Gi 所代表的那個區間;然后重新計算各區間的重心,並利用新的重心重新聚類所有樣本。逐步循環,直到所有區間的重心不再隨算法循環而改變為止。

K均值離散化划分數據的圖如下:

2、監督離散化

非監督離散化比不離散化的效果要好,而如果數據包含類別信息(類標號)那么會產生更好的效果。其中,基於熵的方法是最有前途的離散化方法之一。

首先來定義熵:設k是不同類的標號(即數據種類的標號),m[i]是划分的第i個區間中所有值的個數,而m[i,j]是第i個區間上標號是j的數據種類的值的個數。第i個區間的熵e[i]如下:

其中p[i,j]=m[i,j]/m[i]表示第i個區間中數據種類為j的值出現的概率(值的比例)。

而划分的總熵e是每個區間熵的加權平均:

w[i]是第i個區間的值占所有區間中值的比例,n是區間的總個數。

我們來舉個例子,如圖:

在上圖中,數據種類有兩種(實心、空心),數據分布區間有三個。

在第一個公式中:可表示k=2(兩種數據種類),p[1,1]表示在第一個區間中數據種類為“空心數據"出現的額概率,e[1]則表示第一個區間的熵。

在第二個公式中:n=3(有三個區間),w[1]表示在第一個區間所包含的值占三個區間總的值的比例。

參考文章:http://stat.skku.ac.kr/myhuh/homepage/specialLectures/SDULecture(Chinese).pdf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM