1. 程式人生 > >weka進行資料預處理

weka進行資料預處理

裝入資料

開啟weka,點選進入explorer介面,在preprocesstag下,點選open file 按鈕裝入ARFF資料檔案。

Weka同時也具有讀入“.csv”格式檔案的能力,在做資料探勘中,很多時候資料是儲存在excel的電子表格中,開啟Excel檔案,從File(檔案)下拉選單下選擇Save As(另存為),在彈出的對話方塊中,最下邊會有Save As type(儲存為)選項,下拉列表中選擇CSV檔案,給檔案命名,點選儲存就可以了,這樣就可以直接在weka當中開啟.csv檔案了。

同樣在weka中開啟,csv檔案之後,也可以saveas(另存為),儲存該檔案為arff資料檔案型別

選擇或者過濾屬性

刪除屬性

在對資料進行預處理的過程中很多時候,需要刪除某一些不要的屬性(attribute),在Attributes panel(學過javaswing的會知道panel指代的是哪部分元件)中操作就可以了,勾選屬性前面的對號,然後點選remove按鈕:

離散化

有些技術,如關聯規則挖掘,只能在分類資料上進行,這就要求在數值或連續屬性上進行離散化。

在我們開啟的weather.arff資料中,temperature一個連續屬性,下面我們就進行一次具體的操作,點選filter(過濾器)panel的choose按鈕,會出現下圖:


選擇weka.filter.unsupervised.attribute.Descretize,之後在choose按鈕後面的文字框中出現Discretize–B 10-M -1.0 –R first-last這樣的內容,點選該文字框會出現DiscretizeFilter對話方塊:

        

在attributeIndices文字框中,我們填寫temperature對應的屬性編號2,在bins文字框中,我們輸入3作為箱數,也就是分為3個範圍,我們進行簡單的分箱,所以其他不管,點選ok按鈕:

這時候回到explorer介面,我們點選Filterpanel中的Apply(應用)按鈕,在Attribute panel下,選中temperature屬性,觀察右側視窗:

觀察發現temperature屬性,被分為3個範圍,變成離散的變數,這時候如果點選save as選項,儲存arff資料檔案,在文字編輯器中開啟,就會發現temperature屬性在@data下每一行的instance中,都會被修改成如上圖區間顯示(-inf-71],[71-78],[78-inf):

當然這樣的資料檔案是標記儘管可讀,但是與命名習慣還是相去甚遠,因此我們可以在自己的檔案編輯器中ctrl+F,查詢替換掉3個區間,分別命名這三個區間為hot mild cool。

同樣的操作我們去修改,humidity屬性,但是這裡的簡單分箱,就按照我的劃分選擇為2了,這一切的操作結束,然後替換之後,最終的weather.arff會變成這個樣子,如下圖:

這樣,也就是得到weka安裝一級目錄下data檔案下的weather.nominal.arff檔案。