2016-01-24 38 views
1

我有一個固定長度的特徵向量的大列表。該列表是1000個矢量長和矢量長度是10.000雙重值每個。 100個向量代表一個類別(每個類別100個樣本),所以後面的模型訓練將涉及這個邏輯:100個正面樣本對900個負面樣本或簡而言之,一個類別針對所有其他類別。WEKA - 從Java中的特徵向量列表創建實例

如何從矢量列表創建Java實例以進行模型培訓?

這是我的名單包含所有的特徵向量:

public static List <Vector<Double>> featuresList = new LinkedList<Vector<Double>>(); 

請讓我知道如果我離開任何東西了。

回答

1

要訓練您的模型,您必須創建instances以減速您的屬性。 實例是一組instance s。然後你可以將你的實例添加到你的實例中。 從一個雙矢量可以創建SparseInstance或DenseInstance:

public SparseInstance(double weight, double[] attValues) 

public DenseInstance(double weight, /*@[email protected]*/ double[]attValues){ 

可能不是Vector<Double>你可以使用雙陣列。

你可以找到任何有用的信息在https://weka.wikispaces.com/Programmatic+Use

+0

創建實例我已經簽出了Weka介紹。頁面前幾次,但我沒有看到'SparseInstance's在那裏使用,只有'DenseInstance's和'FastVector's。據我所知,FastVectors已被棄用,所以信息。再也沒有這麼近期了。謹慎分享一些關於'SparseInstance'使用情況的更多信息?實例權重描述了什麼?我對Weka很陌生,所以每一個信息。將會有很大的幫助。我已經完成了對數組的解析矢量(在那裏沒有問題)。謝謝。 – c00ki3s

+0

您也可以從雙向量創建DenseInstance。稀疏實例類似於密集實例(或稠密雙向量),但值爲0的數據不會被明確表示。 例如密格式: 0,X,0,Y, 「類A」 0,0,W,0, 「B類」 和稀疏格式: {1 X,3 Y,4 「類A」 } {2 W,4「class B」} 您可以在https://weka.wikispaces.com/ARFF+(stable+version)#Sparse ARFF文件中找到更多信息 –

+0

實例重量很好,例如當你的訓練集不平衡時,例如否定實例(或嘗試對實例進行分類時的一個類)過度表示。在這種情況下,你可以超重你的正面實例(或稀有類)來幫助你的ML模型學習。但是,主要你只能設置爲1.0。 –