2010-06-03 4 views
5

Ich suche nach einer Anleitung, welche Techniken/Algorithmen ich untersuchen sollte, um das folgende Problem zu lösen. Ich habe derzeit einen Algorithmus, der ähnlich klingende MP3s mit akustischen Fingerabdrücken gruppiert. In jedem Cluster habe ich die verschiedenen Metadaten (Song/Künstler/Album) für jede Datei. Für diesen Cluster möchte ich die "besten" Song-/Künstler-/Album-Metadaten auswählen, die mit einer vorhandenen Zeile in meiner Datenbank übereinstimmen, oder wenn es keine beste Übereinstimmung gibt, beschließen Sie, eine neue Zeile einzufügen.Machine Learning-Algorithmus für die Datenklassifizierung.

Für einen Cluster, ist es in der Regel einige korrekten Metadaten, aber einzelne Dateien haben viele Arten von Problemen:

  • Künstler/Songs sind völlig falsch benannt oder mispelled nur leicht
  • der Künstler/Song/Album fehlt, aber der Rest der Informationen ist dort
  • das Lied ist eigentlich eine Live-Aufnahme, aber nur einige der Dateien im Cluster sind als solche gekennzeichnet.
  • kann es nur sehr wenig Metadaten sein, in einigen Fällen nur die Dateinamen, die Künstler sein könnte - song.mp3 oder Künstler - Album - song.mp3 oder eine andere Variation Werke

Ein einfacher Entscheidungsalgorithmus ziemlich gut, aber ich hätte gerne etwas, das ich auf einer großen Datenmenge trainieren könnte, die mehr Nuancen aufgreifen könnte als das, was ich gerade habe. Alle Links zu Papieren oder ähnlichen Projekten würden sehr geschätzt werden.

Danke!

+0

Große Frage - Ich bin interessiert zu sehen, was Leute hier kommen. Ich frage mich, ob vielleicht eine Art Entscheidungsbaum-Lernansatz helfen könnte, den "besten" Song in einem Cluster zu identifizieren? Natürlich können die Wiki-Seiten zu unbeaufsichtigtem Lernen oder maschinellem Lernen Ihnen mehr Inspiration geben. – awshepard

+1

Versuchen Sie, einige der Vorträge hier zu lesen: [Machine Learning Course] (https://www.coursera.org/course/ml), da sie viele anwendbare Techniken abdecken. – mlepage

Antwort

2

Die Levenshtein-Distanz ist eine Metrik zur Messung der "Distanz" zwischen zwei Saiten. Er zählt die Anzahl der Operationen, um eine Zeichenfolge in die andere zu ändern, indem Zeichen hinzugefügt/entfernt/geändert werden.

Sie könnten diesen Algorithmus verwenden, um mit Rechtschreibfehlern umzugehen. Wenn zwei Zeichenfolgen sehr nahe sind, ist es höchstwahrscheinlich ein Rechtschreibfehler.

http://en.wikipedia.org/wiki/Levenshtein_distance

3

Wenn ich Ihr Problem richtig verstehe, haben Sie eine vorhandene Technik Songs zum Teil usw., in Cluster und wollen nun ein „bestes“ Beispiel für den Inhalt dieses Clusters wählen, gleich aus welcher dem definierende Merkmale sind.

Ich würde einen Blick auf Bayesian classifiers werfen. Diese könnten helfen, die entscheidenden Eigenschaften eines bestimmten Clusters in Ihren Daten abzuleiten (vorausgesetzt, dass das Clustering nicht auf einer expliziten, wohldefinierten Taxonomie basiert) und eine gewisse Toleranz für Rauschen und Fehler in den Metadaten oder anderen Parametern bietet. Abhängig von der Art Ihrer Daten und Cluster könnten Sie dann maximum likelihood oder Stichprobenmethoden verwenden, um eines oder mehrere repräsentative Beispiele aus einem bestimmten Cluster zu ermitteln.

Bayesianische Methoden können auch nützlich sein, um fehlende Daten abzuleiten, z. B. fehlende Metadatenwerte. Die Stichprobenverteilung kann verwendet werden, um wahrscheinliche Werte für die fehlenden Daten basierend auf den bekannten Werten in anderen Datenfeldern zu erzeugen.