Algorithmus für maschinelles Lernen für das Ranking


10

Ich habe eine Reihe von Elementen die ich anhand von Merkmalen beschreiben kann . Somit:Xn

xi:{ci1,ci2,,cin}xiX

wobei die (numerische) Bewertung für das Element gemäß den Merkmalen . So können meine Elemente als Punkte in einem Raum mit Dimensionen betrachtet werden.cijijn

Nach meinen Messwerten gibt es Algorithmen wie den "Bayes-Klassifikator", mit denen ich auf jedes Element meines Sets eine Antwort mit "Ja" oder "Nein" geben kann, vorausgesetzt, ich habe ein "Trainingsset" verwendet, das aus einigen besteht Elemente meiner Menge und das erwartete Ergebnis des Algorithmus. Basierend auf diesen Daten sollte der Algorithmus in der Lage sein, jedes andere Element, das nicht Teil des Trainingssatzes ist, aufzunehmen und eine "Ja" - oder "Nein" -Antwort zu geben, basierend auf dem, was er dank des Trainingssatzes gelernt hat. Dies ist großartig, wenn Sie eine Vorstellung davon haben, was Sie erwarten (Trainingssatz), sich aber nicht sicher sind, welche spezifischen Regeln zu diesem Ergebnis führen.

Was ich mit meinen Daten machen möchte, ist, keine Antwort vom Typ "Ja" oder "Nein" zu erhalten, aber ich möchte ein Ranking innerhalb der Elemente einführen. Einige von ihnen sind "besser" als andere. Genau wie beim Bayes-Filter habe ich eine allgemeine Vorstellung davon, was ich erwarte. Auf diese Weise könnte ich aus einer Teilmenge meiner Elemente ein "Trainingsranking" erstellen, das ich in die MLA einspeisen würde. Basierend auf diesem Training wäre es in der Lage, mein gesamtes Set zu bewerten.

Um dies zu tun, sehe ich zwei Ansätze:

  1. Jedes Element würde von der MLA eine Punktzahl erhalten und die Elemente dann nach der Punktzahl ordnen.
  2. Die MLA könnte zwei Elemente und und bestimmen, welches besser ist (paarweise Vergleiche). Verwenden Sie Quicksort mit dieser Vergleichsoperation.xixj

Hinweis: Basierend auf einer Bewertung ist die paarweise Funktion trivial zu implementieren, und basierend auf einer paarweisen Funktion ist es trivial, eine Bewertung zu generieren. Dies sind also nur zwei Ansätze, um dieselben Ergebnisse zu erzielen.

Gibt es Beispiele für MLAs, die eine Bewertungsfunktion oder eine paarweise Vergleichsfunktion bieten können?

BEARBEITEN: Um mehr Kontext hinzuzufügen: Derzeit werden meine Elemente nach einem Algorithmus eingestuft, der durch Berechnen des eine Punktzahl (reelle Zahl) für jedes Element generiert . Obwohl das generierte Ranking ziemlich korrekt ist, muss ich den Algorithmus oft ändern, um ihn auf irgendeine Weise zu optimieren, da ich einige Elemente deutlich sehen kann, die nicht gemäß den Erwartungen eingestuft sind.cij

Derzeit ist mein Designprozess also:

  1. Machen Sie sich ein Bild davon, was ein perfektes Ranking wäre
  2. Versuchen Sie (manuell), einen Algorithmus abzuleiten, der die Elemente so einstuft
  3. Beobachten Sie die Ergebnisse
  4. Passen Sie den Algorithmus an

Deshalb habe ich über MLAs nachgedacht, da der Ausgangspunkt meines Prozesses das ist, was als Trainingsdaten verwendet werden könnte. Ich würde wahrscheinlich damit beginnen, den aktuellen Rang einzunehmen, Gegenstände nach meinen Bedürfnissen auszutauschen und diese zu füttern.

Antworten:


3

Viele Klassifizierungsalgorithmen tun bereits genau das, wonach Sie suchen, präsentieren ihre Antworten den Benutzern jedoch häufig in Form einer binären (oder n-Wege) Beurteilung. Beispielsweise ist SVMLight eine Implementierung des Klassifizierungsalgorithmus für Support-Vektor-Maschinen. Menschen verwenden dies üblicherweise, um binäre Urteile über einen Datensatz zu fällen. Unter der Haube passiert jedoch, dass der Algorithmus den Daten signierte Vertrauensurteile zuweist. Diese sind zwischen -1,0 und 1,0 gebunden und sollten für die Rangfolge Ihrer Daten verwendet werden!


2

Es scheint, dass Sie eine Regressionsanalyse verwenden können . Wahrscheinlich müssen Sie den Elementen in Ihrem Trainingssatz auch Punkte (reelle Zahlen) zuweisen, wenn Sie diese nicht haben. Obwohl Sie nur den Rang als Zielwert verwenden können, erhalten Sie ein schlechtes Modell, wenn Sie nur einen kleinen Satz von Trainingsmustern haben.


0

Ich denke, Sie erwarten zu viel von Algorithmen für maschinelles Lernen. Ein Computer kann allein nicht entscheiden, ob Element 1 besser ist als Element 2. Was ein Algorithmus für maschinelles Lernen tun kann, ist, wenn Sie ihm einige Beispiele geben, bei denen Sie einen Punkt 1 als besser als Punkt 2 bewertet haben, dann kann er lernen, die Punkte zu ordnen [1]. Sie benötigen jedoch noch Trainingsdaten, in denen Sie Beispiele für Elemente und Informationen darüber angeben, ob Element 1 für alle Elemente in den Trainingsdaten größer als Element 2 ist.

[1] http://www.cs.cornell.edu/people/tj/svm_light/svm_rank.html


Vielen Dank für den Link. Und ich verstehe vollkommen, dass ich einen Trainingssatz für den Algorithmus bereitstellen muss, damit er nachfolgende Elemente bewerten kann.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.