2012-01-31 94 views
2

我正在weka中進行一系列聚類分析,並且我意識到如果我想要找到某處,自動化它就是要走的路。我會解釋一下我的工作方式。如何在weka中使用命令行忽略屬性列表?

  • 我手動完成所有的預處理的R和其保存爲CSV文件,在WEKA進口並再次將其保存爲一個ARFF文件。

  • 我用WEKA的GUI,一般我剛打開我的數據與ARFF文件,並直接進入集羣標籤和玩耍。 (我使用CLI的經驗有限)。

我試圖重現了一定的效果,我通過使用GUI了,但現在在CLI命令。問題是我通常忽略使用GUI進行羣集時的屬性列表。我找不到在命令行中選擇要忽略的屬性列表的方法。

例如:

java weka.clusterers.XMeans \ 
-I 10 -M 1000 -J 1000 \ 
-L 2 -H 9 -B 1.0 -C 0.25 \ 
-D "weka.core.MinkowskiDistance -R first-last" -S 10 \ 
-t "/home/pedrosaurio/bigtable.arff" 

我與秧雞的經驗是有限的,所以我不知道如果我的思念它是如何工作的一些基本的瞭解。

回答

3

數據預處理函數稱爲過濾器。 您需要與羣集算法一起使用過濾器。 看下面的例子。

java weka.clusterers.FilteredClusterer \ 
-F weka.filters.unsupervised.attribute.Remove -V -R 1,5 \ 
-W weka.clusterers.XMeans -I 10 -M 1000 -J 1000 -L 2 -H 9 -B 1.0 -C 0.25 \ 
-D "weka.core.MinkowskiDistance -R first-last" -S 10 \ 
-t "/home/pedrosaurio/bigtable.arff" 

這裏我們刪除屬性1-5,然後使用xmeans。

+0

你會推薦另一種不使用命令行自動化的方法嗎?只是好奇... – pedrosaurio 2012-02-07 12:39:17

+0

Java代碼應該能夠自動執行此操作。你也可以用GUI做同樣的事情,但它不是自動化的。 – 2012-02-08 06:47:03

+0

您在上面提供的線路無法正常工作。我現在編輯了他們,但我需要您的批准 – pedrosaurio 2012-02-08 10:41:59

0

不理你必須從距離函數

忽略的命令行屬性(Matlab的)做它的一個屬性:

COLUMNS = '3-last'; % The indices start from 1, 'first' and 'last' are valid as well. E.g .: first-3,5,6-last 
Df = weka.core.EuclideanDistance(); % Setup distance function. 
Df.setAttributeIndices (COLUMNS); % Setup distance function. 

忽略來自GUI Ignore attributes from GUI

我不知道屬性理解爲什麼當有人詢問如何忽略屬性時,所有的答案都說明如何修改數據集,在預處理部分使用過濾器。