我正在用Java实现一个机器学习管道。作为其中的一部分,我有一个类表示我的调优参数。最后,我要检查所有的整定参数,并计算精度。例如,调优参数可以是k近邻的k值,从1到9。
首先,哪种数据结构最适合存储调优参数?每个调优参数都与可能的值列表相关联。参数的值大多是双倍(或ints),但不只是。他们也可能是弦乐。
其次,我想为这个对象创建某种迭代器。方法getNextPair()应该返回下一组调优参数,直到hasNext()返回false为止。通过这种方式,我可以使用单个while循环来迭代它(没有嵌套的for循环)。
如何计算getNextPair()和hasNext()方法的所有调优参数对?当然,这在很大程度上取决于所使用的数据结构。
发布于 2016-03-29 09:30:48
我建议使用Multimaps。它类似于Map,其中一个键可以有多个值。
番石榴实现了多个时间点,您可以在一个循环中迭代它,如下所示:
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());
有一个很好的教程那里。希望能帮上忙。
https://stackoverflow.com/questions/35891063
复制相似问题