📄 fittestselector.java
字号:
/* * FittestSelector.java * * Created on August 26, 2004, 3:47 PM */package org.joone.dte.selection;import org.joone.dte.*;import org.joone.dte.TaskListFactory;import java.util.*;/** * This selector selects the fittest 'num' neural networks, * i.e. those having the lowest training or validation RMSE. * @author drmarpao */public class FittestSelector implements Selector { private int numTasks = 0; private boolean validation = false; private TaskListFactory taskListFactory = null; // Comparator used to sort the TaskList's array private class taskComparator implements Comparator { public int compare(Object obj1, Object obj2) { TaskDescriptor td1 = (TaskDescriptor)obj1; TaskDescriptor td2 = (TaskDescriptor)obj2; double rmse1, rmse2; if (!validation) { rmse1 = td1.getTrainingRmse(); rmse2 = td2.getTrainingRmse(); } else { rmse1 = td1.getValidationRmse(); rmse2 = td2.getValidationRmse(); } if (rmse1 > rmse2) return 1; if (rmse1 == rmse2) return 0; return -1; } } /** Creates a new instance of FittestSelector */ public FittestSelector() { } public TaskListFactory execute(TaskListFactory tasks, int currentCycle) { if ((numTasks <= 0) || (tasks == null)) return null; tasks.initialize(); if (tasks.getTaskList() == null) return null; ArrayList tsk = tasks.getTaskList().getTasks(); if ((tsk == null) || (tsk.size() == 0)) return null; Collections.sort(tsk, new taskComparator()); if (tsk.size() > numTasks) { int n = tsk.size(); // Throws away the worse tasks for (int i=numTasks; i < n; ++i) { tsk.remove(numTasks); } } if (taskListFactory == null) taskListFactory = new TaskListFactory(); taskListFactory.setTaskList(tasks.getTaskList()); return taskListFactory; } /** * Getter for property numTasks. * @return Value of property numTasks. */ public int getNumTasks() { return numTasks; } /** * Setter for property numTasks. * @param numTasks New value of property numTasks. */ public void setNumTasks(int numTasks) { this.numTasks = numTasks; } /** * Getter for property validation. * @return Value of property validation. */ public boolean isValidation() { return validation; } /** * Setter for property validation. * @param validation = true if the selection must be based on the validation RMSE (default=false). */ public void setValidation(boolean validation) { this.validation = validation; } /** * Getter for property taskListFactory. * @return Value of property taskListFactory. */ public TaskListFactory getTaskListFactory() { return taskListFactory; } /** * Setter for property taskListFactory. * @param taskListFactory New value of property taskListFactory. */ public void setTaskListFactory(TaskListFactory taskListFactory) { this.taskListFactory = taskListFactory; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -