2011-09-07 10 views
7

Sto lavorando a un progetto che avrà un insieme selezionato di dati e ogni dato avrà attributi diversi. Dovrò utilizzare una funzione di fitness per scegliere i dati che corrispondono meglio al mio scenario selezionato usando gli attributi.Come eseguire una funzione fitness

Tuttavia, in realtà non trovo siti che spiegano come avviare la mia funzione di fitness. Tutto quello che ho è che fa parte di Genetic Algorithm e questo è quanto ho ottenuto. Quindi posso darmi alcuni suggerimenti qui?

risposta

2

Sei sicuro di cosa hai bisogno è in realtà una funzione di fitness?

La funzione fitness è, come hai detto, un elemento utilizzato nell'algoritmo genetico. Viene utilizzato in ogni iterazione dell'algoritmo per valutare la qualità di tutte le soluzioni proposte al tuo problema nella popolazione attuale. La funzione fitness valuta quanto è buona una singola soluzione in una popolazione, ad es. se stai cercando di trovare per quale valore x una funzione ha il minimo di y con un algoritmo genetico, la funzione di fitness per un'unità potrebbe essere semplicemente il valore y negativo (minore è il valore più alto della funzione fitness).

Quello che sostanzialmente sto cercando di dire, le funzioni di fitness non si occupano molto degli attributi, basta valutare i risultati.

Se si desidera scegliere il campione più rappresentativo di dati che contiene gli attributi, forse si dovrebbe anche esaminare i metodi di classificazione o di clustering? Non hai dato molte informazioni sul modo in cui verrà rappresentato lo scenario selezionato, ma forse potresti raggruppare i tuoi dati (potresti provare k-means algoritmo di clustering e provare ad aumentare il numero di cluster fino a quando l'errore di classificazione non cadrà in modo significativo?) E di scegliere un cluster di dati rappresentativo una volta che hai i requisiti dello scenario?

Se hai fornito maggiori dettagli su come le query sono rappresentate rispetto alla rappresentazione dei dati, potresti aver ottenuto una risposta diversa (o migliore) da qualcuno.

nuovo Quindi, se unico obiettivo è quello di imparare l'algoritmo genetico o di qualsiasi altra parte del campo AI/Machine Learning, si dovrebbe fare esattamente quello PHS suggerito e cercare un libro, conferenza audio, iscriversi in una classe per quella o qualcosa di simile.

12

Questa è la parte difficile di GA (beh, quella e la rappresentazione dei dati) e in realtà si può solo imparare dall'esperienza.

Dichiarando l'ovvio, la funzione deve essere qualcosa che misura quanto siano buoni i risultati. In particolare, deve essere scorrevole su una vasta gamma di dati: qualunque siano i dati, la funzione di fitness deve mostrare il modo giusto per migliorare.

Quindi, ad esempio, una funzione di fitness che è zero a meno che la risposta sia corretta non è buona, perché non aiuta ad avvicinarsi alla risposta giusta quando si inizia.

E una funzione di fitness che aumenta man mano che le cose migliorano, ma non identifica la soluzione migliore non è altrettanto buona, perché la popolazione migliorerà fino a un certo punto e poi si bloccherà.

Quindi è necessario sedersi, scrivere alcuni esempi dei dati e quindi pensare a quale tipo di funzione è possibile utilizzare. Vuoi qualcosa che dia bassi valori per dati cattivi e valori alti per dati buoni. E questo si adatta bene tra i due.

Prova qualsiasi idea pazzesca a cui riesci a pensare in un primo momento, e poi guarda come potresti metterlo in una bella forma matematica. Basta fare brainstorming e continuare a provare e iterare ...probabilmente scoprirai che la tua prima scelta non è così buona e, una volta eseguito l'AG, sarai in grado di esaminare ciò che sta accadendo in modo più dettagliato e migliorarlo.

+0

Questo mi fa pensare che potremmo probabilmente determinare una funzione di fitness per quanto è buona una funzione di fitness! – weltschmerz

Problemi correlati