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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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