Capítulo 3. EVALUACIÓN DE LA CALIDAD DE PROGRAMAS DE EDUCACIÓN
4.3. Procedimiento del estudio documental
4.3.2. Procedimiento y variables para analizar modelos diseñados para la evaluación
The ECSDT is an evolutionary algorithm because it has been developed by exploiting the evolutionary approach of two evolutionary algorithms, namely NSGAII which is a genetic algorithm (GA) and OMOPSO which is a particle swarm optimisation (PSO) algorithm.
The optimisation part of ECSDT is implemented using a framework called MOEA. MOEA is an abbreviation of (Multi-Objective Evolutionary Algorithms) and is available as an open source Java library developed by Hadka (2014) which can be easily imported into common Java development platforms such as Eclipse or NetBeans. MOEA comes with a vast collection of tools and packages that help developers design, develop, execute and statistically test the performance of common evolutionary optimization algorithms on different optimization problems. One of the powerful features of the MOEA framework is the ability for developers to identify and introduce their new own problems into the MOEA framework to be optimized
69 and this is the aspect in which this framework has been utilized in the process of developing the new algorithm.
The optimisation process for a particular problem in MOEA is accomplishing in two main steps or phases. The first phase is to define the problem to be optimised, and the second phase is to execute the problem:
Defining the problem:
TodefineanyproblemsinMOEA,aclassrelatedtotheframeworkcalled“Problem interface” should be implemented indirectly by extending another class called “AbstractProblem”.Thisclassprovidesthemethodsfordescribing and representing the problem and then evaluating solutions to the problem. The “AbstractProblem” class includes two main methods required for defining the problem as stated below: The “newSolution” method which is responsible for producing new instances of
solutions for the problem by defining the bounds for the decision variables used to solve the problem. At the end of this method, a new solution instance will be returned.
The “evaluate” method which is responsible for evaluating solutions to the problem that have been generated by the optimization algorithm. Thus most of the definitions and methods related to the problem are defined inside this method as well as setting the objective functions to be optimized and the constraints of the problem.
Executing the problem:
To execute the problem using an optimization algorithm, a class called “executer” related to MOEA is used. The executer class requires, at least, three pieces of information:
The problem to be optimized (which is the problem defined in the previous steps), and it can be called by the “executer” using a direct reference to the problem class using the "withProblemClass" method.
The algorithm that will be used for optimizing the problem by using its name as an argument for the “withAlgorithm” method.
The number of evaluation loops required for getting the optimum solution for the problem using the “withmaxevaluations” method.
70 As mentioned earlier with the outline for the (ECSDT) algorithm, the process starts with the initialisation of a pool of solutions, and then the“executer”class makes a connection between the initialised pool of solutions, the Problem class and the algorithm to optimize the solutions and return the best one among them. The pseudo code for the top-level of the new algorithm using the MOEA framework is depicted in Figure 4.10 where the outer for loop creates the initial pool of p solutions and for each of these the inner loop creates the ellipses. Once the population and problem are defined, the optimizer is called (Call Optimization) and then the tree constructed (Call Tree maker).
The top-level for the new algorithm using MOEA:
Let numberOfEllipses = The appropriate number of ellipses for the optimization process Initialise Pool (populationsize)
{
for (int p = 0; p < populationSize; p ++) {
Solution solution[p] = new Solution (numberOfEllipses) {
for (int ell = 0; ell < numberOfEllipses; ell ++) { solution.setVariables [ell]= [(𝑥𝑖, 𝑦𝑖, 𝑟𝑥𝑖, 𝑟𝑦𝑖, 𝑎𝑙𝑝ℎ𝑎𝑖) ] } } } }
Best solution = Call Optimization (Dataset, Problem Class, Optimisation Algorithm , maximum evaluation, Objective functions, Initialisation of the Pool); Tree = CALL Tree-maker (Best solution)
71 The general pseudocode for optimising a particular solution is shown in Figure 4.11.
The Call Optimisation Method using the “executer” class in MOEA: Let Objective-Function-1 = maximise classification accuracy;
Let Objective-Function-2 = minimise misclassification costs; For each solution[p] Do
{
Let Data[i] be set of data contained in Ellipse[i] If Ellipse[i] is a Child of Ellipse[j], Then {
Remove Data[i] from Data[j]; }
Else {
If Data[i] is inside an overlapped area between Ellipse[i] and Ellipse[j], Then {
Remove Data[i] from the farthest ellipse; }
Set Predicted-Class Data[i] = Majority-Class of Ellipse[i]; Calculate Accuracy & Cost for solution[p];
If solution[p] better that Best-Solution, Then {
Best-Solution = solution[p]; }
} End Do;
Return (Best-Solution);
Figure 4.11: The pseudo code of the optimisation process
ECSDT calculates the value of the accuracy objective function by subtracting the rate of unclassified examples from the accuracy rate. The accuracy rate and the unclassified rate are calculated using the following equations.
Accuracy Rate = ∑ TCi
m i=1
N 4.7 Unclassified Rate = No.Unclassified examplesN 4.8 Where, 𝑇𝐶𝑖 is the total number of correctly classified examples belonging to the class 𝐶𝑖 and N is the total number of examples.
Using the two previous Eq 4.7 and 4.8 we can derive the equation for calculating the value of the accuracy-based objective function as follows:
72 To calculate the total cost of the classification errors, ECSDT uses a similar formula as shown in equation 2.13 :
Total Cost = ∑n Conf(i | j) ∗ Cost (i, j)
i=1 Where, Conf (i | j) is the number of examples from class i that have been misclassified as class j, and Cost (i | j) is the cost of misclassifying an example of class i as class j.