Frage

Ich habe ein Objekt mit einem Satz von Parametern wie:

var obj = new {Param1 = 100; Param2 = 212; Param3 = 311; param4 = 11; Param5 = 290;}

Auf der anderen Seite habe ich eine Liste von Objekt:

var obj1  = new {Param1 = 1221 ; Param2 = 212 ; Param3 = 311 ; param4 = 11  ; Param5 = 290 ; }
var obj3  = new {Param1 = 35   ; Param2 = 11  ; Param3 = 319 ; param4 = 211 ; Param5 = 790 ; }
var obj4  = new {Param1 = 126  ; Param2 = 218 ; Param3 = 2   ; param4 = 6   ; Param5 = 190 ; }
var obj5  = new {Param1 = 213  ; Param2 = 121 ; Param3 = 61  ; param4 = 11  ; Param5 = 29  ; }
var obj7  = new {Param1 = 161  ; Param2 = 21  ; Param3 = 71  ; param4 = 51  ; Param5 = 232 ; }
var obj9  = new {Param1 = 891  ; Param2 = 58  ; Param3 = 311 ; param4 = 21  ; Param5 = 590 ; }
var obj11 = new {Param1 = 61   ; Param2 = 212 ; Param3 = 843 ; param4 = 89  ; Param5 = 210 ; }

Was ist der beste (am einfachsten) Algorithmus, um die beste Übereinstimmung für den ersten obj in den aufgeführten Objekten zu finden?

War es hilfreich?

Lösung

Sie müssen den Begriff am ehesten entspricht definieren, bevor Sie versuchen, es zu finden !!



1- Eine Möglichkeit, viele Menschen nutzen ist mittlere quadratische Fehler (oder euklidische Entfernung ):

berechnen mittlere quadratische Fehler für alle Objekte:

Sqr(obj.Param1-obj1.Param1) + Sqr(obj.Param2-obj1.Param2) + ..... // for obj1
Sqr(obj.Param1-obj2.Param1) + Sqr(obj.Param2-obj2.Param2) + ..... // for obj2

und wählen Sie das mit dem Minimalwert ...



2- Sie können auch Mindest absolute Fehler verwenden:

Abs(obj.Param1-obj1.Param1) + Abs(obj.Param2-obj1.Param2) + ..... // for obj1
Abs(obj.Param1-obj2.Param1) + Abs(obj.Param2-obj2.Param2) + ..... // for obj2

und wählen Sie das mit dem Minimalwert ...



3- Sie können auch anwenden k-nearest-neighbor mit beliebigen Kriterien Sie haben gewählt oben



Es hängt alles von den Eigenschaften dieser Parameter ...

Für mehr lesen Sie unter Liste der Klassifikationsalgorithmen aussehen

Andere Tipps

Hängt, denke ich. Mehrere Möglichkeiten kommen mir in den Sinn:

  • SAD: berechnet die absolute Differenz von jedem Paar von Parametern (die, die Sie testen und jeden Ihrer Kandidaten) und summiert sie. Die niedrigste Zahl am nächsten ist
  • L2-Norm: Berechnen Sie die Differenz von jedem Paar von Parametern, quadrieren sie, fassen sie auf, nehmen Quadratwurzel
  • Cosinus: Multiplizieren jeder Parameter mit dem anderen Parameter, zusammenzufassen. Dividieren Ergebnis durch Produkt der Länge (L2-Norm) beider Objekte

Natürlich gibt es tausend weitere Möglichkeiten, deshalb müssen Sie angeben, was Sie wollen, genau!

Sie können auch die euklidischen Abstand .

Im Wesentlichen so tun Sie jedes Objekt ein Punkt in 5 Dimensionen und sucht den Punkt, der am nächsten ist (d.h .: die kürzeste Entfernung).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top