weka數據預處理


Weka數據預處理(一)

對於數據挖掘而言,我們往往僅關注實質性的挖掘算法,如分類、聚類、關聯規則等,而忽視待挖掘數據的質量,但是高質量的數據才能產生高質量的挖掘結果,否則只有"Garbage in garbage out"了。保證待數據數據質量的重要一步就是數據預處理(Data Pre-Processing),在實際操作中,數據准備階段往往能占用整個挖掘過程6~8成的時間。本文就weka工具中的數據預處理方法作一下介紹。

Weka 主要支持一種ARFF格式的數據,含有很多數據過濾方法。關於ARFF格式文件,可以在此處了解詳情。

Weka的數據預處理又叫數據過濾,他們可以在weka.filters中找到。根據過濾算法的性質,可以分為有監督的(SupervisedFilter)和無監督的(UnsupervisedFilter)。對於前者,過濾器需要設置一個類屬性,要考慮數據集中類的屬性及其分布,以確定最佳的容器的數量和規模;而后者類的屬性可以不存在。同時,這些過濾算法又可歸結為基於屬性的(attribute)和基於實例的(instance)。基於屬性的方法主要是用於處理列,例如,添加或刪除列;而基於實例的方法主要是用於處理行,例如,添加或刪除行。

數據過濾主要解決以下問題(老生常談的):

數據的缺失值處理、標准化、規范化和離散化處理。

數據的缺失值處理:weka.filters.unsupervised.attribute.ReplaceMissingValues。對於數值屬性,用平均值代替缺失值,對於nominal屬性,用它的mode(出現最多的值)來代替缺失值。

標准化(standardize):類weka.filters.unsupervised.attribute.Standardize。標准化給定數據集中所有數值屬性的值到一個0均值和單位方差的正態分布。

規范化(Nomalize):類weka.filters.unsupervised.attribute.Normalize。規范化給定數據集中的所有數值屬性值,類屬性除外。結果值默認在區間[0,1],但是利用縮放和平移參數,我們能將數值屬性值規范到任何區間。如:但scale=2.0,translation=-1.0時,你能將屬性值規范到區間[-1,+1]。

離散化(discretize):類weka.filters.supervised.attribute.Discretizeweka.filters.unsupervised.attribute.Discretize。分別進行監督和無監督的數值屬性的離散化,用來離散數據集中的一些數值屬性到分類屬性。

下文將詳細介紹一下Weka數據過濾類。

 

Weka數據預處理(二)

首先來看一下,有關屬性—有監督過濾器。

AddClassification

該過濾器使用給定的分類器對原始數據添加分類標簽,並給出類的分布以及關於原始數據集的錯誤分類標記。

其實就是利用分類算法對原始數據集進行預分類,其結果與在classify階段得到的結果基本一致,同樣包括分類的正確率等信息。

AttributeSelection

該過濾器,用於進行屬性選擇。根據給定的挖掘任務,利用合適的評估器,選擇最有利於當前挖掘任務的屬性。

ClassOrder

該過濾器用於改變的數據對象順序,適用於binary對象和nominal對象。

Discretize

離散化過濾器,用於將連續屬性離散化。使用頻率非常高的一個過濾器,在實際應用當中,離散化也是很常見的數據預處理步驟。

NorminalToBinary

標稱值轉化為二分值。舉個例子吧,看官請看下圖,一目了然。

1

Nominal value

2

Binary value

下面談到的是實例—有監督過濾器

Resample

讓人又愛又恨的抽樣過濾器。利用放回或者不放回方法抽取特定大小的隨機樣本。

抽樣方法有很多種,基於水庫的、鏈式抽樣、分層抽樣等等。

SMOTE

同樣是抽樣過濾器,叫綜合少數過采樣技術。他要求被采樣的原始數據集必須全部存儲在內存中。詳細內容可以參考Synthetic Minority Over-sampling Technique

SpreadSubsamp

該分類器需要得知類標是屬性中的哪一個.當獲得了類標之后,他會計算出類標屬性的分布,同時,按照參數M,指定類標分布的最大差距,比如當給出參數W時,調整數據實例的權重。

注意,M參數設定值為l時,那么就認為是均勻分布,當設定為0的時候,那么不進行類標分布的拓展(SPread);如果設定大於l,那么這個值就表示了分布最大的類標屬性(類標屬性最為常見的值)和分布最小的屬性(類標屬性最為稀少的值)的分布的比例。

StratfiedRemoveFold

該過濾器簡單的使用n重交叉驗證的方法,將數據集進行分割,並返回按照參數指定的子集。

關於無監督方法的過濾器,可以參考:http://www.cnblogs.com/htynkn/archive/2012/04/02/weka_3.html

 

參考:

http://www.pluscn.net/?p=1394

http://www.pluscn.net/?p=1400

輸入數據與ARFF文件--數據挖掘學習和weka使用(二)

數據預處理和weka.filters的使用--數據挖掘學習和weka使用(三)


免責聲明!

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



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