Kann ich mit autoencoder für clustering?
In den folgenden code, verwenden Sie autoencoder als überwachtes clustering, Klassifikation, weil Sie Daten Etiketten.
http://amunategui.github.io/anomaly-detection-h2o/
Aber, kann ich mit autoencoder zu cluster-Daten wenn ich Sie nicht haben Ihre Etiketten.?
Hinsichtlich
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den deep-learning-autoencoder ist immer unüberwachtes lernen. Die "betreute" Teil des Artikels, den Sie verlinken, ist die Bewertung, wie gut es Tat.
Folgende Beispiel (entnommen aus ch.7 mein Buch, Praktische Maschine Lernen mit H2O, wo ich versuche alle H2O-unüberwachte algorithmen, die auf denselben Daten - bitte entschuldigen Sie den Stecker) nimmt 563 Funktionen, und versucht zu codieren, Sie in nur zwei versteckten Knoten.
Der zweite Befehl gibt, extrahiert die versteckten Knoten GEWICHTE.
f
ist ein Daten-frame, mit zwei numerischen Spalten und eine Zeile für jede Zeile in dertfidf
Quelle Daten. Ich wählte nur zwei versteckten Knoten, so dass ich konnte plot der Cluster:Suchergebnisse ändern sich bei jedem Lauf. Sie können (vielleicht) bessere Ergebnisse mit gestapelten auto-Encoder, oder mit mehr versteckten Knoten (aber dann sind Sie nicht zeichnen können, Sie). Hier fühlte ich die Ergebnisse wurden begrenzt durch die Daten.
BTW, habe ich die obige Darstellung mit diesem code:
(P. S. Die original-Daten stammen Brandon Rose ' s ausgezeichneten Artikel mit NLTK. )
hidden = c(32,2,32)
, Bedeutung 32 Neuronen, dann 2, dann wieder auf 32. Anschließend extrahieren Sie die mittlere Schicht, mitf <- h2o.deepfeatures(m, tfidf, layer = 2)
h2o.scoreHistory(m)
.)kmeans
auf diese beiden Dimensionen, oder verwenden Siekmeans
direkt auf den original-Daten.In einige Aspekte der Kodierung von Daten und clustering data-share einige überschneidungen Theorie. Als Ergebnis, können Sie Autoencoders zu cluster(Kodierung) der Daten.
Einem einfachen Beispiel zu visualisieren ist, wenn Sie eine Reihe von Trainingsdaten, die Sie vermuten, hat zwei Klassen. Wie-Wähler-Geschichte Daten für Republikaner und Demokraten. Wenn Sie ein Autoencoder und codieren Sie es auf zwei Dimensionen, dann zeichnen Sie es auf einen scatter-plot, dieses clustering wird mehr klar. Unten ist ein Beispiel-Ergebnis von einem meiner Modelle. Sie können sehen, eine spürbare Trennung zwischen den zwei Klassen, als auch ein bisschen erwartet überlappen.
Den code gefunden werden kann hier
Diese Methode erfordert nicht nur zwei binäre Klassen, konnten Sie auch trainieren, auf wie viele verschiedene Klassen, wie Sie wollen. Zwei polarisierte Klassen ist einfacher zu visualisieren.
Diese Methode ist nicht auf zwei begrenzt-Ausgang Abmessungen, das war nur zum Plotten Bequemlichkeit. In der Tat, können Sie finden es schwierig, sinnvoll ansehen bestimmte, große dimension Räume zu einem so kleinen Raum.
In Fällen, In denen die kodierte (gruppierten) Schicht ist größer in der dimension ist es nicht so klar zu "visualisieren" - Funktion Cluster. Dies ist, wo es wird ein bisschen schwieriger, als Sie haben, die Verwendung einer form des betreuten Lernens auf die Karte codiert(gruppierten) Funktionen, um Ihr training Etiketten.
Sind ein paar Möglichkeiten, um zu bestimmen, welche Klasse features gehören, ist die Pumpe der Daten in das knn-clustering-Algorithmus. Oder, was ich bevorzuge zu tun ist, um die codierten Vektoren und geben Sie Sie in einem standard-back-Fehler-propagation neural network. Beachten Sie, dass abhängig von Ihren Daten können Sie feststellen, dass Sie nur pumpt die Daten direkt in die back-propagation neural network ist ausreichend.