| Algorithm 1: Pseudocode for the proposed method |
| function MI_PSA_ Gene_ Selection (Data, Labels): // Stage 1: Mutual Information (MI) based gene selection selected_ genes = MI_ Selection (Data, Labels) // Stage 2: Particle Swarm Optimization (PSO) refinement best_ gene_ set = PSO_ Refinement (Data [selected_ genes], Labels) return best_ gene_ set function MI_ Selection (Data, Labels): // Calculate mutual information between each gene and class labels mutual_ information_ scores = calculate _ mutual_ information (Data, Labels) // Select top genes based on mutual information scores selected_ genes = select _top _genes (mutual _ information _scores) return selected_ genes function PSO_ Refinement (Data, Labels): // Initialize particle swarm particles = initialize_ particles () global_ best_ position = null // PSO optimization loop while not convergence _criteria _met (): for particle in particles: // Evaluate fitness of particle’s gene selection fitness = evaluate _fitness (particle. position, Data, Labels) // Update particle’s best position and global best position if fitness > particle. best_ fitness: particle. best_ position = particle. position particle. best_ fitness = fitness if fitness > global_ best_ fitness: global_ best_ position = particle. position global_ best_ fitness = fitness // Update particle positions using velocity and global best position update_ particle_ positions (particles, global_ best_ position) return global_ best_ position |