Ausreißererkennung im data mining
Ich habe ein paar Fragen zur ausreißererkennung:
- Finden wir Ausreißer mit k-means und ist das ein guter Ansatz?
- Gibt es eine clustering-Algorithmus, der akzeptiert keine Eingabe durch den Benutzer?
- Können wir verwenden support-vector-machine oder andere betreute Lern-Algorithmus für die ausreißererkennung?
- Was sind die vor-und Nachteile des jeweiligen Ansatzes?
Diese Frage würde besser passen auf stats.stackexchange.com, IMO.
Großen Beitrag, um SO die Gemeinschaft! Dies sind sehr wichtige Themen, die jeder Programmierer muss sich mit! kann nicht glauben, dass diese Frage geschlossen wurde!
Großen Beitrag, um SO die Gemeinschaft! Dies sind sehr wichtige Themen, die jeder Programmierer muss sich mit! kann nicht glauben, dass diese Frage geschlossen wurde!
InformationsquelleAutor Navin | 2011-05-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich beschränke mich auf das, was ich denke, ist wichtig zu geben, einige Hinweise über jede Ihrer Fragen, denn hier ist das Thema eine Menge von Lehrbüchern, und Sie könnte wohl besser angegangen werden in separaten Fragen.
Ich würde nicht mit k-means für das Auffinden von Ausreißern in einem multivariaten Datensatz, aus dem einfachen Grund, dass der k-means-Algorithmus ist nicht gebaut für diesen Zweck: Sie werden immer am Ende eine Lösung, minimiert die total-in-der-cluster Quadratsumme (und damit Maximierung der zwischen-cluster-SS, weil die Gesamtabweichung fest) und die Ausreißer(N) will nicht unbedingt, dass Sie Ihre eigenen cluster. Betrachten Sie das folgende Beispiel in R:
Wie gesehen werden kann, in die nächste Figur, die abgelegenen Wert ist, nie wieder als solche: Es wird immer gehören Sie zu den anderen Clustern.
Eine Möglichkeit, jedoch wäre die Verwendung eines zwei-Stufen-Ansatz, wo das entfernen extremale Punkte (hier definiert als Vektor-weit Weg von Ihrer cluster-centroide) in einer iterativen Weise, wie beschrieben in folgender Publikation: Die Verbesserung der K-Means durch Ausreißer Entfernen (Hautamäki et al.).
Diese etwas ähnlichkeit mit dem, was geschieht in der genetischen Untersuchungen zum erkennen und entfernen von Personen, die eine Genotypisierung Fehler, oder Einzelpersonen, die Geschwister/Zwillinge (oder wenn wir wollen, zu identifizieren Bevölkerung Unterbau), während wir nur wollen, zu halten, nicht verwandten Personen; in diesem Fall verwenden wir die mehrdimensionale Skalierung (was gleichbedeutend ist mit PCA, bis auf einen Konstanten, für die ersten zwei Achsen) und entfernen Beobachtungen Ober-oder unterhalb 6 SD auf einem der sagen, die top 10 oder 20 Achsen (siehe zum Beispiel Bevölkerung-Struktur und Eigenanalysis, Patterson et al., PLoS Genetics 2006 2(12)).
Eine verbreitete alternative ist die Verwendung bestellt robusten mahalanobis-Distanz, die dargestellt werden können (in einem QQ-plot) gegen die erwarteten Quantile einer Chi-Quadrat-Verteilung, wie beschrieben in der folgenden Papier:
(Es ist in der mvoutlier R-Paket.)
Es hängt davon ab, was Sie rufen Sie die Benutzereingaben. Ich interpretiere Ihre Frage so, ob einige-Algorithmus kann automatisch eine Distanz-matrix-oder raw-Daten und stoppen auf die optimale Anzahl von Clustern. Wenn dies der Fall ist, und für jede Distanz-basierte Partitionierung-Algorithmus, dann können Sie keine der verfügbaren Gültigkeit Indizes für die cluster-Analyse; eine gute übersicht ist gegeben in
dass ich diskutiert Cross-Validiert. Sie können beispielsweise mehrere Instanzen des Algorithmus auf verschiedenen Stichproben (mit bootstrap) von den Daten, die für eine Reihe von cluster-Nummern (sagen wir k=1 bis 20) und wählen k nach den optimierten Kriterien, die betrachtet wurde (Durchschnittliche silhouette-Breite, cophenetic Korrelation, etc.); es kann vollständig automatisiert werden, ohne die Notwendigkeit von Benutzereingaben.
Existieren auch noch andere Formen des clustering, abhängig von der Dichte (Cluster gesehen werden als Regionen, in denen Objekte sind ungewöhnlich Häufig) oder Verteilung (Cluster sind Mengen von Objekten, die Folgen einer bestimmten Wahrscheinlichkeitsverteilung). Modell-basiertes clustering, wie es implementiert ist, in Mclust, zum Beispiel, ermöglicht das identifizieren von Clustern in einem multivariaten Datensatz durch umspannen eine Reihe der Form für die Varianz-Kovarianz-matrix für eine unterschiedliche Anzahl von Clustern und wählen Sie das beste Modell nach der BIC Kriterium.
Dies ist ein heißes Thema in der Klassifizierung, und einige Studien konzentrierten sich auf SVM zu erkennen, Ausreißer, insbesondere, wenn Sie fehlerhaft. Eine einfache Google-Abfrage liefert eine Menge Treffer, z.B. Support-Vector-Machine für die Ausreißer-Erkennung bei Brustkrebs Überlebensfähigkeit Vorhersage von Thongkam et al. (Lecture Notes in Computer Science 2008 4977/2008 99-109; dieser Artikel enthält Vergleich zu den ensemble-Methoden). Die grundlegende Idee ist die Verwendung einer one-class-SVM zur Erfassung der wichtigsten Struktur der Daten durch den Einbau einer multivariaten (z.B. Gauß -) Verteilung; es werden Objekte, die auf oder knapp außerhalb der Grenze gewertet werden könnte, als potentielle Ausreißer. (In einem gewissen Sinn -, Dichte-basiertes clustering durchführen würde ebenso gut als Definition, was ein Ausreisser ist wirklich einfacher ist angesichts einer erwarteten Verteilung.)
Andere Ansätze für den unüberwachten, semi-überwacht, oder das betreute lernen, sind leicht über Google gefunden, z.B.
Ein Verwandtes Thema ist die Anomalie-Erkennung, über die man eine Menge von Papieren.
Dass verdient wirklich einen neuen (und wahrscheinlich noch mehr fokussiert) Frage 🙂
InformationsquelleAutor chl
1) finden wir Ausreißer mit k-means, ist es ein guter Ansatz?
Cluster-basierte Ansätze eignen sich optimal zum finden von Clustern, und kann verwendet werden, um zu erkennen, Ausreißer als
durch-Produkte. In der clustering-Prozesse, Ausreißer beeinflussen die Standorte der cluster-Zentren, auch die Aggregation als ein Mikro-cluster. Diese Eigenschaften machen den cluster-basierten Ansätzen nicht machbar, zu kompliziert Datenbanken.
2) gibt es eine clustering-Algorithmus, der akzeptiert keine Eingabe durch den Benutzer?
Vielleicht können Sie erreichen, einige wertvolle Erkenntnisse zu diesem Thema:
Dirichlet-Prozess-Clustering
Dirichlet-basierte clustering-Algorithmus kann adaptiv bestimmen Sie die Anzahl der Cluster nach der Verteilung von Beobachtungsdaten.
3) Können wir verwenden, support-vector-machine oder andere betreute Lern-Algorithmus für die ausreißererkennung?
Jede Betreute Lern-Algorithmus muss ausreichend beschriftet Trainingsdaten zu konstruieren Klassifikatoren. Jedoch, ein ausgewogenes Trainings-dataset ist nicht immer verfügbar für die Reale Welt problem, wie intrusion detection, medizinische Diagnostik. Nach der definition von Hawkins Ausreißer("Identifizierung von "Ausreißer". Chapman und Hall, London, 1980), die Zahl der normalen Daten ist viel größer als die der Ausreißer. Die meisten überwachte Lernalgorithmen kann nicht zu einer effizienten Klassifizierer auf die oben genannten unausgeglichenen Datensatz.
4) Was ist der vor-und Nachteile des jeweiligen Ansatzes?
In den letzten Jahrzehnten die Forschung auf Ausreißer-Erkennung unterschiedlich von der globalen Berechnung der lokalen Analyse, und die Beschreibungen von Ausreißern variieren von die binäre Interpretation probabilistische Darstellungen. Entsprechend der Hypothesen von ausreißererkennung Modelle, Ausreißer-Erkennung algorithmen können unterteilt werden in vier Arten: Statistik-basierte algorithmen, Cluster-basierte algorithmen, die Nächste Nachbarschaft basierte algorithmen, und Klassifikatoren-basierte algorithmen. Es gibt mehrere wertvolle Erhebungen zur ausreißererkennung:
Hodge, V. und Austin, J. "Eine Umfrage der ausreißererkennung Methoden", Journal of Artificial Intelligence Review, 2004.
Chandola, V. und Banerjee, A. und Kumar, V. "Ausreißer-Detektion: A survey", ACM Computing Surveys, 2007.
InformationsquelleAutor ledezhu
k-means ist ziemlich empfindlich gegenüber Rauschen in den Daten gesetzt. Es funktioniert am besten, wenn Sie entfernen der Ausreißer vorher.
Nicht. Alle cluster-Analyse-Algorithmus, der behauptet, parameter-free-in der Regel stark eingeschränkt, und oft verborgene-Parameter - ein allgemeiner parameter ist die Distanz-Funktion, zum Beispiel. Jede flexible cluster-Analyse-Algorithmus wird zumindest akzeptieren eine benutzerdefinierte Distanz-Funktion.
one-class-Klassifikatoren sind eine beliebte Maschine-learning-Ansatz zur ausreißererkennung. Allerdings betreut, die Ansätze sind nicht immer geeignet für die Erkennung von _previously_unseen_ Objekte. Plus, können Sie overfit, wenn die Daten bereits enthält Ausreißer.
Jeder Ansatz hat seine vor-und Nachteile, das ist, warum Sie existieren. In einem realen Umfeld, haben Sie, um zu versuchen, die meisten von Ihnen, um zu sehen, was funktioniert für Ihre Daten und Einstellung. Es ist der Grund, warum ausreißererkennung heißt knowledge discovery - Sie haben zu erkunden, wenn Sie möchten entdecken etwas neue ...
InformationsquelleAutor Anony-Mousse
Haben möchten Sie vielleicht einen Blick auf die ELKI data mining-framework. Es ist angeblich die größte Sammlung der Ausreißer-Erkennung data-mining-algorithmen. Es ist open-source-software in Java implementiert, und umfasst einige 20+ ausreißererkennung algorithmen. Finden Sie die Liste der verfügbaren algorithmen.
Beachten Sie, dass die meisten dieser algorithmen sind nicht auf der Grundlage von clustering. Viele clustering-algorithmen (insbesondere k-means) wird versuchen, die cluster-Instanzen "egal was". Nur einige clustering-algorithmen (z.B. DBSCAN) tatsächlich der Fall betrachtet, dass vielleicht nicht alle-Instanz gehören, in Cluster! So ist für einige algorithmen, Ausreißer tatsächlich verhindern ein gutes clustering!
InformationsquelleAutor Erich Schubert