Hai bisogno di aiuto: raggruppamento di valori categorici, ricerca del numero ottimale di categorie ed eccezioniGente,
Ho un problema per il quale spero che qualcuno mi aiuti a trovare una soluzione, o almeno mi spinga nella giusta direzione.
Quindi, diciamo di avere N strumenti. Hanno più attributi, diciamo 10. Questo potrebbe essere il numero esatto del modello, il colore, campane e fischietti, modifiche ecc.
Hanno anche centinaia di parametri. Alcuni potrebbero essere gli stessi in tutti gli strumenti, altri potrebbero dipendere da una combinazione di attributi o da un singolo attributo.
E ho bisogno di gestire tutte quelle molte centinaia di parametri. Questi parametri potrebbero cambiare ed essere diversi da come dovrebbero essere e conosco ogni parametro in qualsiasi momento.
Ora, l'approccio è il seguente: suddividere tutti gli strumenti in pochi grandi gruppi, chiamiamoli categorie, definiti da combinazioni di attributi. Diciamo che tutti gli strumenti del modello A e di colore blu sono una categoria, il modello A di colore rosso è di seconda categoria e il modello B è di terza categoria, indipendentemente dal colore.
Ora, non tutti i parametri saranno gli stessi all'interno di una categoria. Alcuni parametri specifici potrebbero essere diversi tra il modello A campana verde di colore rosso e il modello A campana gialla di colore rosso. Quindi troviamo la combinazione più comune e la chiamiamo "predefinita" per quella categoria. Tutti quelli che sono diversi dobbiamo spiegarli e inserire una sorta di commento per loro che spieghi perché il parametro è diverso.
Alla fine, avremo due numeri sconosciuti: il numero di categorie in cui dobbiamo suddividerlo e il numero di commenti di eccezione che dobbiamo compilare per i parametri che non corrispondono a quello di "default".
Se impostiamo una categoria, sarà facile mantenere una categoria, ma avremo troppe eccezioni dal "predefinito" per essere gestibili. Se creiamo una categoria per quasi ogni combinazione di attributi, non dovremo gestire troppe eccezioni da "predefinito", ma avremo problemi a gestire così tante categorie.
Il problema si basa sull'insieme di dati, trova il numero ottimale di categorie, dove entrambi hanno una quantità ragionevole di categorie con una quantità ragionevole di eccezioni.
Qualche idea su come affrontare la risoluzione di questo problema?
Grazie,
M.
Ri: Hai bisogno di aiuto: raggruppamento di valori categorici, ricerca del numero ottimale di categorie ed eccezioniTutto,
Grazie per il commento.
Ecco il percorso che ho scelto per affrontare questo problema.
La mia tabella iniziale era i miei strumenti come colonne e le mie righe sono valori per parametri diversi. Anche una colonna per il nome del parametro.
La prima cosa che ho fatto è stata impilare tutte le colonne degli strumenti. Quindi ho finito con tre colonne: Strumento, Tag parametro, Valore parametro. Nessun attributo menzionato in alcun modo - nessun modello, niente...!
Il valore del parametro è un valore nominale del carattere poiché molti valori sono in formato HEX.
Quindi ho avviato la piattaforma di clustering gerarchico e ho scelto le seguenti opzioni (elencate quelle diverse dall'impostazione predefinita): ho scelto "I dati sono impilati" (perché l'ho appena impilato!), Ho ottenuto pochi altri ruoli disponibili. Cast dei valori dei parametri su Y, tag dei parametri su ID attributo, strumento su ID oggetto.
Ho un bell'albero di raggruppamento.
Sotto c'era il grafico della distanza.
Le prime divisioni erano responsabili della maggior parte dei parametri. E in base alla distribuzione degli strumenti (ricordiamo che in questa analisi non sappiamo quale sia il modello, il colore, i campanelli e i fischietti di ogni strumento) tra i cluster erano responsabili di quanto segue:
1a divisione: modelli di strumenti
2a suddivisione: sottomodello utensile su uno dei modelli
3a divisione: versione del sottosistema principale
e così uno.
Il grafico sottostante - il grafico della distanza, a mio avviso fornisce fondamentalmente la distanza media per tutti i membri del cluster dalla media del cluster. Per i valori nominali questo è definito dall'ordine. In un certo senso questo può servire come stima dei valori anomali. Praticamente si satura dopo che i thirs si sono divisi. Il che significa che se dovessimo scegliere 2 o 3 cluster, dovremmo spiegare molte eccezioni. Con 4 cluster è significativamente inferiore su questo set di dati. Abbiamo scelto 5 cluster.
Si può salvare una tabella delle medie dei cluster (che fondamentalmente dovrebbe essere il valore più frequente per i valori categoriali), e credo che se salvo tale tabella per ogni numero di cluster e unisco quelle tabelle alla tabella principale (o unisco virtualmente - cenno a gzmorgan), posso rilevare se un valore specifico è diverso dal valore POR/predefinito/Golden e quindi calcolare un numero esatto di eccezioni per ogni numero di cluster.
Quindi l'unica cosa da decidere: quanti cluster (categorie) vuoi gestire e quante disposizioni sei pronto a fare per quelle eccezioni.
Grazie,
M.
Ri: Hai bisogno di aiuto: raggruppamento di valori categorici, ricerca del numero ottimale di categorie ed eccezioniDale,
Sì, hai ragione, alla fine mi sono fermato all'analisi dei cluster. L'unico dettaglio è che ho molti parametri come valori HEX. Il che, se voglio evitare molti script cercando di analizzarli, mi riduce solo al clustering gerarchico in grado di gestire valori nominali. La cosa buona: non devo andare con i componenti principali.
Descriverò di più in un commento separato.Ri: Hai bisogno di aiuto: raggruppamento di valori categorici, ricerca del numero ottimale di categorie ed eccezioniGrazie mille per la risposta, mi ha dato spunti di riflessione. La cosa principale che voglio menzionare è che sono interessato solo alla corrispondenza/mancata corrispondenza, indipendentemente dalla distanza tra i valori. Come ho già detto, il problema principale è la gestione di centinaia di costanti dello strumento\parametri. In questo senso ho bisogno di sapere se è POR o non POR, o in altre parole, se c'è qualche discrepanza con Golden Parameter List. Il problema fondamentalmente è trovare un numero ottimale di elenchi di parametri dorati. Un'altra cosa è che molti parametri sono in formato HEX. Senza funzioni integrate che aiuterebbero ad analizzarle facilmente in decimale, questo rimarrebbe come valore di carattere, il che significa che posso solo eseguire analisi categoriche. Da un lato ciò semplifica le cose poiché la distanza tra i parametri verrà calcolata in base all'ordinamento dei valori, per quanto ne so. D'altra parte ciò limita i tipi di analisi che posso eseguire.
Maggiori informazioni su questo in un commento separato qui sotto. Descriverò una metodologia, almeno per come la intendo io, e poi forse la soluzione finale.
Grazie ancora!Ri: Hai bisogno di aiuto: raggruppamento di valori categorici, ricerca del numero ottimale di categorie ed eccezioniQuesto suona come un problema di clustering per me.Non sei sicuro del numero di cluster e della loro composizione e desideri identificare le deviazioni all'interno del cluster.Dato il numero di variabili che hai, potresti dover ridurre la dimensionalità prima del clustering, ad esempio utilizzando i componenti principali.Direi che i miei sforzi per il clustering sono stati tutt'altro che soddisfacenti: i cluster raramente corrispondono a gruppi identificabili (di solito l'ho fatto con singoli consumatori o candidati universitari, ad esempio).Mi sembra che tu voglia definire i cluster in anticipo, come mettere insieme strumenti "simili".Il problema è che ciò che pensi possa essere "simile" può differire da ciò che i dati dicono essere "simile".Se pensi di avere un'idea dei gruppi, allora un approccio potrebbe essere quello di confrontare quel clustering ex ante con ciò che produce un algoritmo di clustering, quindi esplorare le differenze tra i due.
Ri: Hai bisogno di aiuto: raggruppamento di valori categorici, ricerca del numero ottimale di categorie ed eccezionimiguello,
Questo ricorda un'analisi del profilo o K Nearest Neighbor. Crea una tabella in cui ogni riga è un'entità e oltre alla colonna dell'entità, c'è una colonna per ogni attributo. Suggerisco che ci sia un codice per l'attributo, come 1=rosso e 2=verde, ecc., quindi secondo il tuo esempio ipotetico, la colonna per campana avrà questi valori.Ti suggerisco di specificare le etichette per i valori.
Quindi puoi definire una o più metriche e pesi.Ad esempio, potrebbe essere molto importante che determinate specifiche corrispondano: il gruppo A deve essere un'irroratrice ad alta capacità (> alcune unità cubiche) e il gruppo C a bassa capacità (< alcune unità cubiche) e il gruppo B è altro. Per perfezionare o sottodefinire i gruppi che potresti utilizzare:
- Analisi delle classi latenti: non è necessario codificare le categorie, ma la codifica può semplificare altre analisi.
- un'analisi delle corrispondenze multiple, che mostrerebbe probabili abbinamenti di attributi
- k metodi del vicino più vicino, vedi Scripting Index Functions: KDE (statistico) e KDTable (matrice).
Detto questo, spesso i gruppi vengono definiti nel tempo dai loro risultati. Dato che si avvicinano le elezioni americane di metà mandato, lo userò come esempio. Le previsioni sono spesso fatte sulle classi. Queste classi sono definite/perfezionate per età, sesso, istruzione, città vs. campagna, quale stato, religione, frequenza in chiesa, numero di votazioni a medio termine, in altre parole un mix di demografia sociale e spaziale ma anche comportamento (# volte votato, frequenza in chiesa).
Per quanto riguarda la mancata corrispondenza dell'entità, sarà necessaria un po' di attenzione in più. Supponiamo che le entità del gruppo A siano molto simili per la configurazione, tranne per il fatto che le entità più vecchie non hanno 3 sensori in situ e le entità più recenti hanno la lettura delle prestazioni dai sensori. La mancata corrispondenza dovrà essere calcolata in base ai dati disponibili. Continuando lo scenario, supponiamo che ci siano 100 metriche per tutti gli strumenti del gruppo A, ma quelli più recenti hanno 3 extra, o 103. Molte piattaforme JMP gestiscono facilmente i valori mancanti, ma il modo in cui lo gestisci dipende dall'analisi/criteri che potresti utilizzare per identificare una mancata corrispondenza.
Mi piace l'unione virtuale di JMP.Se stessi facendo questa analisi, potrei creare la mia tabella degli attributi enity per definire le categorie e quindi unirla virtualmente alla tabella delle altre variabili. Ciò semplifica anche se le altre variabili hanno più valori (righe) per esecuzione.
Queste sono solo briciole. Buona fortuna con questo compito interessante.