sat vremena
vjerojatno beskonačno, genetski algoritmi se ne koriste ni za što korisno danas, sve su to preuzele neuronke
Ako imate označene podatke, najlakše rješenje je regresija 1xN mreže gdje bi direktno dobili navedene težine svake od značajki. A ako takve podatke nemate, onda imate ill-defined problem koji bez induktivnih pristranosti nećete riješiti.
Definicija takve mreže i njene funkcije gubitka je u pytorchu doslovno
import torch
model = torch.nn.Linear(in_features=broj_značajki, out_features=1)
loss_function = torch.nn.MSELoss()
U svakom slučaju genetski algoritam ne određuje kakvo je rješenje takve hipotetske funkcije, već to radi funkcija dobrote. A funkciju dobrote bi za svaku metodu morali sami izvesti proučavanjem literature. Ali čak i da imate tu funkciju dobrote, ne postoji ni jedan jedini razlog zašto bi koristili genetski algoritam - čak i da imate slučaj gdje je ta funkcija jako gadna za gradijentni spust, redefinicija modela u nešto kao
Linear(broj_značajki, 4096) -> ReLU -> Linear(4096, 1)
će vjerojatno dovoljno izravnati plohu funkcije dobrote, jedino će vam u tom slučaju rezultati biti neinterpretabilni, ali u tom slučaju vam genetski algoritam neće naći rješenje.
U svakom slučaju ako se ipak odlučiš za genetske algoritme, vjerujem da je moja implementacija ovdje dovoljno solidna za sve što bi pokušali sami napisati, pa možeš početi od toga.