2016-07-07 5 views
1

Ich benutze scikit-learn für ein Textklassifikationsproblem, und ich würde gerne wissen, ob es eine maschinelle Lerntechnik gibt, die eine eins-zu-eins, sich gegenseitig ausschließende Zuordnung für Beschriftungen verwendet .Eins-zu-eins passend zu Beschriftungen für Textklassifikation

Sagen Sie beispielsweise, dass ich drei Dokumente basierend auf der Stadt, die sie repräsentieren, beschriften soll. Meine Label-Auswahl ist New York, Detroit und Los Angeles. Meine Dokumente sind "The Big Apple", "The Big City" und "City of Angels". Sagen wir nur für dieses Beispiel, dass "City of Angels" am ehesten nach Los Angeles passt, während "The Big Apple" und "The Big City" am ehesten New York zuordnen sollten. Allerdings möchte ich, dass man nach New York ("The Big Apple", weil sagen wir, dass es besser passt) und nach Detroit, weil New York bereits verwendet wurde, und Detroit ist die einzige Wahl, die übrig ist und es immer noch passt in gewissem Sinne.

Ich möchte dem Prädiktor mitteilen, dass es, wenn es ein Etikett verwendet hat, es nicht erneut verwenden kann, so dass es die beste Schätzung für dieses Etikett machen muss, da es nur einmal verwendet werden kann.

Hat scikit-learn oder eine andere Bibliothek eine Funktion für den Umgang mit dieser Eins-zu-Eins (und nur einer) Textklassifikation, wie ich es tun möchte?

Antwort

1

diese Art von Funktionalität zu erreichen, würde ich vorschlagen, dass Sie Folgendes tun:

ich, dass in Ihrem Textklassifikationsalgorithmus annehmen würde, Sie für jedes Dokument für jedes Label einen Wahrscheinlichkeitswert erhalten.

z.B .:

Documents "The Big Apple" "The Big City" "City of Angels" 

    Label  

    "New York"  0.45   0.45   0.1 

    "Detroit"  0.4   0.5    0.1     

    "Los Angeles" 0.15   0.05   0.8 

könnte Sie jetzt in der Lage sein zu sehen, wo ich hin mit dieser leite.

Verwenden Sie die Argmax-Funktion (gibt das Etikett mit der maximalen Wahrscheinlichkeit für jedes Dokument zurück). In diesem Fall würde die argmax-Funktion das Label "New York" für die Dokumente "The Big Apple" und "The Big City", das Label "The Big City" für das Dokument "Detroit" und das. Zurückgeben Label "Los Angeles" für das Dokument "Stadt der Engel".

Da in diesem Fall ein Konflikt (ich würde es lieber nicht Konflikt nennen) in Zuordnung eines Labels "New York" für ein Dokument (da Sie eine Eins-zu-eins-Zuordnung benötigen), würde ich Sie sagen Gehe zum nächsten Etikett. Das Label "The Big City" kann eindeutig dem Dokument "Detroit" zugeordnet werden, da es die maximale Wahrscheinlichkeit (Matching) hat, und dann entfernen Sie das Label "Detroit" aus dem Satz möglicher Labels (verbleibende Labels -> "New York "und" Los Angeles "). Sie gehen dann weiter zum nächsten Label "Los Angeles" und die argmax-Funktion sagt Ihnen, dass das Dokument "City of Angels" die höchste Wahrscheinlichkeit (maximales Matching) hat, das Label "Los Angeles" zu haben. Sie entfernen dann das Label "Lost Angeles" von den restlichen Etiketten. An dieser Stelle noch vorhandene Etiketten -> "New York". Sie gehen dann zum nächsten Label "New York" und sehen, dass das einzige Dokument, dem es zugewiesen werden kann, "The Big Apple" ist und Sie eine Eins-zu-Eins-Zuordnung zwischen den Dokumenten und den Etiketten haben.

Ich habe dies zuvor auf zwei Arten getan, indem ich ein Band durch zufälliges Zuweisen eines Etiketts zu einem Dokument oder durch Brechen des Bandes durch Berechnen der Wahrscheinlichkeit für das nächste Etikett aufgebrochen habe. Diese Technik wird auch in einem Entscheidungsbaumalgorithmus verwendet, um das am besten geeignete Attribut auf einer gegebenen Ebene in dem Baum zu finden. Es wird als Entropie oder Informationsgewinn dieses Attributs bezeichnet. Diese Implementierung ist eine einfachere Version des Informationsgewinns aus dem ID3-Entscheidungsbaumalgorithmus.

Weitere Informationen zum ID3-Entscheidungsbaumalgorithmus here.