Domanda

ho:

  • una matrice X con linee N

  • un vettore Y

Ho calcolato la distanza euclidea con Y per ciascuna linea di X.

Quello che ottengo è un vettore di distanze.

Quello che voglio è un vettore di punteggi tra 0 e 1, 1 significa "molto" forte correlazione, 0 significa "no" di correlazione.

Ecco quello che ho fatto:

I diviso il vettore delle distanze per la distanza massima al suo interno. Ottengo vettore D.

1 -. D è il risultato finale con valori compresi tra 0 e 1

Il problema è che ottengo molti valori (75%) troppo vicino a 1. Pensi che quello che ho fatto è corretto?

Come vi ottenere un risultato migliore? (Tra 0 e 1, ma non tutto troppo vicino a 1)

Per il momento, ho cercato di prendere la quadrata del risultato. (Per rimanere tra 0 e 1, ma per ridurre al minimo i valori)

Ecco un quadro della distanza valori che voglio trasformare in una partitura I valori della distanza vogliono trasformare in una partitura

È stato utile?

Soluzione

Diverse funzioni del kernel possono servire come funzioni di similarità (= spartiti). Consulta l'elenco, ad esempio, qui . Si può provare alcuni di loro e vedere quale si adatta il meglio.

Hai bisogno di qualcosa che cade veloce alle basse distanze. Puoi provare $$ punteggio = 1 / (1 + a distanza) ^ 2 $$ e regolare coefficiente di fronte a distanza in modo che le crisi punteggio tra 0 e 1 entrare descrizione dell'immagine qui

A proposito di tua immagine: quali sono le etichette degli assi? e quali sono x-zecche?

Altri suggerimenti

Utilizzare sigmoidale funzioni per ottenere il miglior valore di correlazione. Utilizzare Octave / MATLAB per l'elaborazione della matrice utilizzando la funzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top