2016-03-09 40 views
0

我正在用Java實現一個機器學習管道。作爲它的一部分,我有一個代表我的調整參數的類。最後,我必須運行所有調諧參數對並計算精度。例如,調整參數可以是從1到9的k個最近鄰居的k個。Java設計調優參數對象

首先,哪個數據結構最適合存儲調整參數?每個調整參數都與可能值的列表關聯。參數的值大多是雙精度(或整數),但不僅如此。他們也可以是字符串。

其次,我想爲這個對象創建一些迭代器。方法getNextPair()應返回下一組調整參數,直到hasNext()返回false。這樣我就可以用一個while循環遍歷它(不嵌套for循環)。

如何計算getNextPair()和hasNext()方法的所有調整參數對?當然這高度依賴於所使用的數據結構。

回答

0

我建議使用Multimaps。它與地圖類似,您可以爲一個鍵擁有多個值。

番石榴實現屈德寧,你可以遍歷它在一個單一循環,如下圖所示:

Multimap<String, Double> mm = ArrayListMultimap.create(); 

    mm.put("alpha", 0.0); 
    mm.put("alpha", 0.7); 
    mm.put("alpha", 0.9); 

    for (double lambda = 0.0; lambda < 2.0; lambda += .25) 
     mm.put("lambda", lambda); 


    List<Double> A = (List<Double>)mm.get("alpha"); 
    System.out.println(A); 
    System.out.println("Number of values for alpha: " + A.size()); 

    for (Map.Entry<String, Double> e : mm.entries()) 
     System.out.println(e); 

    System.out.println("Number of elements:" + mm.entries().size()); 

這是一個很好的教程there。我希望它有幫助。