Java设计调参对象

我在Java中实现一个机器学习流程。其中包括一个表示调参的类。最终,我需要遍历所有调参对并计算准确率。例如,一个调参可能是k近邻算法中的k值,范围从1到9。

首先,哪种数据结构最适合存储调参?每个调参都与一组可能的值相关联。参数的值主要是双精度浮点数(或整数),但不仅仅如此,它们也可能是字符串。

其次,我想为这个对象创建某种迭代器。一个名为getNextPair()的方法应该返回下一组调参,直到hasNext()返回false。这样我就可以用一个while循环(而不是嵌套的for循环)来遍历它。

如何为getNextPair()和hasNext()方法计算所有调参对?当然,这在很大程度上取决于所使用的数据结构。


回答:

我建议使用多重映射(Multimaps)。它类似于映射(Map),但一个键可以有多个值。

Guava实现了多重映射,你可以用单个循环来遍历它,如下所示:

    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("alpha的值的数量: " + A.size());    for (Map.Entry<String, Double> e : mm.entries())         System.out.println(e);    System.out.println("元素数量:" + mm.entries().size());

有一个很好的教程在这里。希望对你有帮助。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注