2014-03-31 44 views
0

我需要在Weka中爲數據集執行分類任務。該數據集包含3個文本文件training.txt,label_training.txttesting.txt。的training.txttesting.txt的格式如下:將包含訓練數據及其標籤的單獨文本文件轉換爲ARFF格式

InformationID FeatureID Value 
1    6   1.00 
1    160  31.00 
1    438  1.00 
1    479  1.00 
2    6457  2.00 
2    6664  0.65 
2    6761  0.46 
2    6762  1.00 

label_training.txt包含類標籤的訓練數據和每一行表示在訓練集中的數據點。

1 
1 
1 
-1 
1 
-1 
-1 

請問1文件label_training.txt這意味着行對應於training.txt文件,該文件具有InformationID 1中的所有行?我想確定我是否理解正確。因此,訓練集中的一個數據點對應於InformationID 1,其值爲4個特徵,ID爲6,160,438,479?

現在,我該如何創建一個ARFF文件,它將訓練數據和標籤結合起來以派生一個分類器?任何幫助,將不勝感激。

回答

1

好吧,看起來你的數據集是稀疏格式的,其中InformationID標識實例,而FeatureID標識該功能,爲Value每個實例/功能對的值。

讓我們假定label_training.txt是顯式的(一個實例是由線識別,例如線#1標識實例#1,其對應於InformationID 1.

在這種情況下,需要生成ARFF文件,如下列之一:

@relation my-relation 

@attribute my-class {-1,1} 
@attribute 1 numeric 
@attribute 2 numeric 
../.. 

@data 
{0 1, 6 1.00, 160 31.00, 438 1.00, 479 1.00} 
{0 1, 6457 2.00, 6664 0.65, 6761 0.46, 6762 1.00} 
../.. 

這是一個WEKA sparse ARFF format,其中每對夫婦的數字對應的屬性數量和它的價值

我建議寫一個。腳本來執行這個轉換。

+0

謝謝!我編寫了一個腳本來轉換成普通的ARFF格式,只要這個特性沒有任何價值,就會有零。這不是一個稀疏的ARFF格式。這對結果有什麼影響嗎? – Rajath

+0

如果你的意思是你已經使用了像'1,0,0,0,0,0,1.00,.....'這樣的非稀疏格式(所有屬性的顯式值),它不會影響算法的有效性,儘管它可能會影響內存(並確保磁盤空間)。在這種情況下,可以使用過濾器'weka.filters.unsupervised.instance.NonSparseToSparse'將非稀疏變換爲稀疏。 –

+0

再次感謝您的幫助! – Rajath

相關問題