Piattaforma JMP Support Vector Machines (SVM).Sto provando a ricreare il modello SVM che ho fatto in R ma ora utilizzo la piattaforma SVM integrata JMP. È possibile eseguire JMP SVM senza ridimensionare e centrare i parametri di input? Ho componenti della miscela chimica espressi in frazioni di peso, quindi tutti hanno le stesse unità (frazioni in peso). Mi chiedo anche se JMP SVM può ottimizzare C e Gamma o devo farlo in R? Sto usando JMP Pro 15.0.
Re: Piattaforma JMP Support Vector Machines (SVM).Non posso dire.
Ho appena usato Neural perché è un interpolatore flessibile. È servito al mio scopo. Non intendevo insinuare che sia l'interpolatore MIGLIORE in questo caso o in qualsiasi altro caso in generale. Ho avuto il mio vantaggio. Non ho considerato nessun altro interpolatore. Un altro avrebbe potuto fare meglio in questo caso, ma questo risultato è stato "gut genug".
La scelta del miglior modello DIPENDE SEMPRE. Non è "plug and chug".
Molte nicchie della modellazione predittiva hanno il loro modello preferito e non guardano mai ad altri modelli. Forse è stato il modello migliore la prima volta che un modello è stato addestrato. Bene, i dati cambiano e così dovrebbe anche il modello predittivo. Le caratteristiche dei dati determinano la scelta del miglior tipo di modello, ma le caratteristiche dei dati cambiano nel tempo. Quindi dobbiamo aggiornare il modello man mano che i dati cambiano e probabilmente dobbiamo rivalutare anche la scelta del tipo di modello. (Oggi non entreremo nei modelli d'insieme.)
Una risposta a una domanda in questa discussione non è in grado di spiegare tutti i pro ei contro di tutti i tipi di modelli predittivi nelle diverse situazioni. Nessun tipo di modello è superiore. Suggerisco di leggere "Elementi di apprendimento statistico".
Re: Piattaforma JMP Support Vector Machines (SVM).Vero, ma hai utilizzato la piattaforma NN per stimare i valori ottimali di costo e gamma al fine di ottenere il miglior adattamento del modello date le possibili combinazioni che hai utilizzato nei cicli for, giusto?
La mia domanda riguarda solo se esiste o meno un vantaggio nell'utilizzare la piattaforma NN rispetto ai processi gaussiani per trovare i valori ottimali.Re: Piattaforma JMP Support Vector Machines (SVM).Le domande riguardavano gli iperparametri per il processo di adattamento neurale. Non stavamo usando un modello neurale dei risultati di un'altra piattaforma iperparametri.
Re: Piattaforma JMP Support Vector Machines (SVM).Ciao @Mark_Bailey ,
C'è un vantaggio nell'usare la piattaforma NN per trovare le impostazioni ottimali per il costo e la gamma?
Faccio qualcosa di simile con i miei dati per trovare le impostazioni ottimali dell'iperparametro, ma invece di usare NN per cercare di trovare l'ottimale, utilizzo la piattaforma Gaussian Process. Ho confrontato gli accoppiamenti di ciascuna delle due opzioni "ottimali" e quella del processo gaussiano aveva un tasso di classificazione errata di 0,25 rispetto a 0,275 per il metodo NN.

Solo curioso.
Grazie!,
ds
Re: Piattaforma JMP Support Vector Machines (SVM).Uso anche JMP Pro 15.0.Try Machines (SVM). Grazie!Re: Piattaforma JMP Support Vector Machines (SVM).Come posso forzare la soglia di probabilità a rimanere sempre 0,5?
Quando eseguo l'ottimizzazione dei costi e della gamma utilizzando Metodo di convalida ("KFold", 10), calcola sempre l'errata classificazione di convalida utilizzando la soglia regolata, quindi calcola il tasso di classificazione errata di convalida condizionale, vedere il file allegato. Non riesco a selezionare il miglior costo e gamma in quanto esiste un terzo parametro Soglia che non sto cercando di ottimizzare.
Re: Piattaforma JMP Support Vector Machines (SVM).Anch'io l'ho cambiato un po'. Principalmente una questione di stile personale.
Names Default to Here( 1 );
// use a small example
data = Open( "$SAMPLE_DATA/Big Class.jmp" );
// launch SVM platform
svm = data << Support Vector Machines(
Y( :age ),
X( :height, :weight )
);
// iterate over a range of hyper-parameters
For( cost = 0.5, cost <= 5, cost += 0.5,
For( gamma = 0.1, gamma <= 1, gamma += 0.1,
svm << Fit(
Kernel Function( "Radial Basis Function" ),
Gamma( gamma ),
Cost( cost ),
Validation Method( "None" )
);
);
);
// separate parameters and performance in a new table
results = Report( svm )["Model Comparison"][TableBox(1)] << Make Into Data Table;
// fit interpolator for profiling
results << Neural(
Y( :Training Misclassification Rate ),
X( :Cost, :Gamma ),
Informative Missing( 0 ),
Validation Method( "Holdback", 0.3333 ),
Fit(
NTanH( 3 ),
Profiler(
1,
Confidence Intervals( 1 ),
Term Value(
Cost( 2.75, Lock( 0 ), Show( 1 ) ),
Gamma( 1, Lock( 0 ), Show( 1 ) )
)
),
Plot Actual by Predicted( 1 ),
Plot Residual by Predicted( 1 )
)
);
Ma ho anche aggiunto un altro passaggio per capire come il tasso di mancata classificazione dipendesse dagli iperparametri. Ho salvato la tabella da Model Comparison e ho adattato una rete neurale semplice (ma adeguata). Il profiler può essere utilizzato per trovare buoni valori e comprenderli. Ad esempio, utilizzando una gamma alta e un costo moderato con pochi miglioramenti aumentando il costo.
Re: Piattaforma JMP Support Vector Machines (SVM).L'ho cambiato un po' e funziona, grazie!
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gam = .1;
cos = .5;
svm = dt << Support Vector Machines(
Y( :age ),
X( :height, :weight ),
Fit( Kernel Function( "Radial Basis Function" ), Gamma( gam ), Cost( cos ), Validation Method( "None" ), )
);
For( i = 1, i <= 10, i++,
For( ii = 1, ii <= 10, ii++,
svm << Fit(
Kernel Function( "Radial Basis Function" ),
Gamma( gam ),
Cost( cos ),
Validation Method( "None" )
);
gam = gam + .1;
);
cos = cos + .5;
);
Re: Piattaforma JMP Support Vector Machines (SVM).dà un errore come questo:
tentando di assegnare a un oggetto che non è un valore L nell'accesso o nella valutazione di 'Assign' , dt << obj = /*###*/Support Vector Machines(
Y( :età ),
X( :altezza, :peso ),
In forma(
Funzione del kernel ("Funzione di base radiale"),
Gamma (gam),
Costo (cos),
Metodo di convalida ("Nessuno")
)
) /*###*/
Cos'ho fatto di sbagliato?Re: Piattaforma JMP Support Vector Machines (SVM).Ecco un rapido esempio di iterazione attraverso un intervallo di parametri. nessuna finezza, solo forza bruta.
Si noti che dopo la visualizzazione del rapporto, nel confronto del rapporto viene indicato il modello migliore.
dt=Open("$SAMPLE_DATA/Big Class.jmp")
gam=.1;
cos=.5;
dt<<OBJ></OBJ>Re: Piattaforma JMP Support Vector Machines (SVM).Non vedo alcun modo per disattivare la centratura e il ridimensionamento. Se tutti gli input sono sulla stessa scala, la centratura e il ridimensionamento non lo cambieranno davvero. Influisce sui "parametri" del modello, ma non sul modello che ne risulta. In altre parole, non importa se sono su una scala da 0 a 1 o da una scala da -1 a +1. Le relazioni tra le X rimarranno le stesse.
Per quanto riguarda C e Gamma, dalla documentazione JMP:
Suggerimento: per trovare il modello più adatto, adatta una gamma di funzioni del kernel e valori di parametro e utilizza il rapporto di confronto del modello.
Pertanto, JMP non ottimizzerà questi parametri per te. Si potrebbe immaginare di scrivere uno script JMP per farlo, ma l'esecuzione dello script potrebbe richiedere del tempo poiché deve adattarsi all'SVM per più combinazioni di C e Gamma, e quindi è probabile che sia comunque necessario eseguire una qualche forma di interpolazione (o model-building) per trovare l'"ottimale".
Oggetto: Piattaforma JMP Support Vector Machines (SVM).Non vedo alcun modo per disattivare la centratura e il ridimensionamento. Se tutti gli input sono sulla stessa scala, la centratura e il ridimensionamento non cambieranno la situazione. Influisce sui "parametri" del modello, ma non sul modello che ne risulta. In altre parole, non importa se sono su una scala da 0 a 1 o da -1 a +1. Le relazioni tra le X rimarranno le stesse.
Per quanto riguarda C e Gamma, dalla documentazione JMP:
Suggerimento: per trovare il modello più adatto, adattare una gamma di funzioni del kernel e valori di parametri e utilizzare il report Confronto modelli.
Pertanto, JMP non ottimizzerà questi parametri per te. Si potrebbe immaginare di scrivere uno script JMP per fare ciò, ma lo script potrebbe richiedere del tempo per essere eseguito poiché deve adattare l'SVM per più combinazioni di C e Gamma, e quindi probabilmente sarà comunque necessario eseguire qualche forma di interpolazione (o costruzione di modelli) per trovare l'"ottimale".