Wann sagen wir, dass der Datensatz nicht klassifizierbar ist?


11

Ich habe oft einen Datensatz analysiert, für den ich keine Klassifizierung vornehmen konnte. Um zu sehen, ob ich einen Klassifikator bekommen kann, habe ich normalerweise die folgenden Schritte ausgeführt:

  1. Generieren Sie Box-Plots der Beschriftung anhand numerischer Werte.
  2. Reduzieren Sie die Dimensionalität auf 2 oder 3, um festzustellen, ob Klassen trennbar sind. Versuchen Sie es manchmal auch mit LDA.
  3. Versuchen Sie mit Nachdruck, SVMs und zufällige Wälder anzupassen, und überprüfen Sie die Wichtigkeit von Funktionen, um festzustellen, ob die Funktionen sinnvoll sind oder nicht.
  4. Versuchen Sie, das Gleichgewicht zwischen Klassen und Techniken wie Unter- und Überstichproben zu ändern, um zu überprüfen, ob ein Klassenungleichgewicht ein Problem darstellen könnte.

Es gibt viele andere Ansätze, die ich mir vorstellen kann, aber nicht ausprobiert habe. Manchmal weiß ich, dass diese Funktionen nicht gut sind und überhaupt nichts mit dem Label zu tun haben, das wir vorhersagen wollen. Ich benutze dann diese Geschäftsintuition, um die Übung zu beenden, und komme zu dem Schluss, dass wir bessere Funktionen oder völlig andere Bezeichnungen benötigen.

Meine Frage ist, wie ein Data Scientist berichtet, dass die Klassifizierung mit diesen Funktionen nicht möglich ist. Gibt es eine statistische Möglichkeit, dies zu melden oder die Daten zuerst in verschiedene Algorithmen einzupassen, und die Validierungsmetrik ist die beste Option?


Ich habe das Gefühl, wenn diese Frage eine klare und objektive Antwort hat, werden alle wissenschaftlichen Bemühungen bedeutungslos. Wissenschaft ist Kunst.
Mephy

Haha ja wahr. Ich bin nur daran interessiert, mehr Methoden zu kennen, um die Trennbarkeit zu finden. Eher wie man Kunden statistisch zeigt, dass es sinnlos sein kann, mehr Zeit für einige Übungen zu verwenden.
vc_dim

1
Ich schlage vor, die letzten beiden Absätze zu streichen, da sie die Frage zu offen / weit gefasst machen. Der erste Teil - wie man ein Nicht-Ergebnis professionell behandelt und meldet - sollte beantwortbar sein, und ich persönlich denke, wir brauchen mehr von dieser Art von professioneller Data Science-Etikette-Frage auf der Website.
Neil Slater

Macht Sinn, Neil. Bearbeiten Sie es so, dass es klar ist.
vc_dim

Antworten:


4

Das hängt von Ihren Daten ab. Es gibt so etwas wie einen Fehler auf menschlicher Ebene. Angenommen, Aufgaben wie das Lesen gedruckter Bücher, Menschen haben keine Schwierigkeiten beim Lesen und es kann sein, dass sie keinen Fehler machen, es sei denn, es liegt eine schlechte Druckqualität vor. In Fällen wie dem Lesen handgeschriebener Manuskripte kann es häufig vorkommen, dass nicht alle Wörter verstanden werden, wenn die Schriftart des Verfassers für den Leser ungerade ist. In der ersten Situation ist der Fehler auf menschlicher Ebene zu gering und die Lernalgorithmen können dieselbe Leistung aufweisen. Das zweite Beispiel zeigt jedoch, dass der Fehler auf menschlicher Ebene in einigen Situationen so hoch und auf übliche Weise ist (wenn Sie dieselbe verwenden) Funktionen wie Menschen) Ihr Lernalgorithmus wird so viel Fehlerquote haben.

Beim statistischen Lernen wird Bayes Errordas Fehlerverhältnis groß genannt , wenn sich die Verteilung der Klassen überschneidet. Ohne die Funktionen zu ändern, ist der Bayes-Fehler der aktuellen Verteilungen die beste Leistung und kann überhaupt nicht reduziert werden.

Ich schlage auch vor, dass Sie hier lesen . Probleme mit einer großen Anzahl von Bayes-Fehlern mit festgelegten Features werden im Bereich dieser Features als nicht klassifizierbar angesehen . Als weiteres Beispiel können Sie annehmen, dass Sie Autos mit eingeschalteten Lichtern klassifizieren möchten. Wenn Sie dies morgens versuchen, können selbst viele Fehler auftreten, und wenn Sie dieselben Bilder zum Trainieren des Lernalgorithmus verwenden, kann dies auch der Fall sein.

Außerdem empfehle ich Ihnen, die Verteilung Ihrer Klassen nicht zu ändern. In solchen Fällen wäre das Ergebnis des Klassifikators nahe der Grenze völlig zufällig. Die Verteilung der Daten zum Trainieren Ihres Algorithmus für maschinelles Lernen sollte nicht geändert werden und sollte so sein, wie es im realen Zustand ist.


Dies ist hilfreich, ich wusste nichts über Bayes Error. Ich hatte Schwierigkeiten, die Genauigkeit zu verbessern, nachdem ich die Klassenverteilung geändert hatte. Ich bin damit einverstanden, dass es keine gute Idee ist. Trotzdem habe ich manchmal versucht, Klassenhierarchien zu ändern, in der Hoffnung, dass diese Funktion detailliertere oder abstraktere Klassen darstellt (z. B. Affen, Hunde und andere in Säugetiere ändern). Ich denke, wenn es einen Bayes-Fehler gibt, hilft es auch nicht, die Klassenhierarchie zu ändern.
vc_dim

@SumitSinghChauhan In Situationen, in denen der Bayes-Fehler groß ist, ist der Versuch, Feature-Engineering durchzuführen, die beste Lösung. Da Deep Learning, bei dem die Funktionen selbst gefunden werden, nicht verwendet werden kann, wenn der Datensatz nicht groß ist.
Medien

5

Nehmen Sie ein Beispielelement aus einer Klasse und ein Beispielelement aus der anderen Klasse. Können diese beiden Elemente genau den gleichen Merkmalsvektor haben? Wenn dies jemals passieren kann , sind die beiden Klassen unter Verwendung Ihrer aktuellen Merkmalsvektoren nicht vollständig trennbar (da die Klassifizierungsentscheidung vollständig auf dem Merkmalsvektor für ein bestimmtes Element basiert).

Wenn andererseits * jedes "Element in einer Klasse ein entsprechendes Element in der anderen Klasse hat, so dass die beiden Elemente dieselben Merkmalsvektoren haben, sind die beiden Klassen unter Verwendung Ihrer aktuellen Merkmalsvektoren nicht unterscheidbar.

Wenn diese Bedingung nur für einige Ihrer Elemente und nicht für andere gilt, befinden Sie sich irgendwo dazwischen, und Sie können dies als Grundlage verwenden, um zu messen, wie gut Sie hoffen können, dass ein Klassifizierer mit Ihrem aktuellen Funktionsumfang funktioniert.

Alle diese Auswertungen können verwendet werden, um in unterschiedlichem Maße zu argumentieren, dass Sie mehr Funktionen extrahieren müssen.


1
Danke Robert. Das ist bekannt und scheint richtig. Ich habe die gleiche Analyse für einige der Projekte durchgeführt. Ich hatte einen Datensatz mit demselben Merkmalsvektor, der unterschiedlich markiert wurde, und verwendete diesen als Grundlage dafür, wie genau ich sein kann. Manchmal half auch das Plotten von Boxplots. Bisher habe ich den Ansatz gefunden, den Sie gerade am besten erwähnt haben, um Kunden zu überzeugen.
vc_dim
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.