Skip to main content
. 2024 Nov 22;14(23):2632. doi: 10.3390/diagnostics14232632
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