Ciao a tutti:
Utilizzo le reti neurali per prevedere la relazione tra inquinanti e fonti di inquinamento. Ho trovato articoli simili nel forum di discussione, ma poiché non ho mai imparato gli script e non so come cercare parole chiave precise, ho ancora alcune difficoltà di editing. , Qui per cercare il tuo aiuto.
La mia idea è questa: usa diversi codici seed per eseguire la rete neurale in sequenza, quindi crea una tabella, estrai e registra "R² Training" e "R² Validation" (se ne vengono eseguiti 10, 10 Registrare i risultati richiesti) per trovare i migliori risultati.
Inoltre, esiste un modo per non visualizzare la finestra della rete neurale ogni volta che viene eseguita? Poiché viene eseguita 10 volte, verranno aggiunte 10 finestre.
Se hai suggerimenti o aiuto, correggimi, grazie!
Le seguenti sono le parti che ho scritto e possono essere eseguite normalmente (codici seed 1 ~ 10 in ordine):
For( i = 1, i <=10, i++,
Neural(
Y( :NH4 ),
X(
:aver_NH4_kg_per_day 2,
:num_livestock,
:weighted_NH4,
:weighted_num,
:Name( "2weighted_nh4" ),
:Name( "2weighted_num" )
),
Informative Missing( 0 ),
Validation Method( "KFold", 5 ),
Set Random Seed( i ) ,
Fit(NTanH( 3 ))
);
);
Ecco una modifica del tuo script che cattura i due R2 che stai cercando.
names default to here(1);
dt = current data table();
dto = New Table("Output",
New Column("Training R2"),
New Column("Validation R2"),
Add Rows(10)
);
For( i = 1, i <= 10, i++,
neu = dt << Neural(
Y( :NH4 ),
X(
:aver_NH4_kg_per_day 2,
:num_livestock,
:weighted_NH4,
:weighted_num,
:Name( "2weighted_nh4" ),
:Name( "2weighted_num" )
),
Informative Missing( 0 ),
Validation Method( "KFold", 5 ),
Set Random Seed( i ),
Fit( NTanH( 3 ) )
);
dto:Training R2[i] = (report(neu)["Training"][NumberColBox(1)] << get)[1];
dto:Validation R2[i] = (report(neu)["Validation"][NumberColBox(1)] << get)[1];
neu(report)<<CLOSE window=""></CLOSE>
È necessario studiare lo script precedente e utilizzare la Guida allo script e l'Indice dello script per capire cosa sta facendo.