Hilft Preclustering dabei, ein besseres Vorhersagemodell zu erstellen?


9

Für die Aufgabe der Abwanderungsmodellierung habe ich Folgendes in Betracht gezogen:

  1. Berechnen Sie k Cluster für die Daten
  2. Erstellen Sie k Modelle für jeden Cluster einzeln.

Der Grund dafür ist, dass es nichts zu beweisen gibt, dass die Population der Abonnenten homogen ist, so dass es vernünftig ist anzunehmen, dass der Datengenerierungsprozess für verschiedene "Gruppen" unterschiedlich sein kann.

Meine Frage ist, ist es eine geeignete Methode? Verstößt es gegen irgendetwas oder wird es aus irgendeinem Grund als schlecht angesehen? Wenn ja warum?

Wenn nicht, würden Sie einige Best Practices zu diesem Thema mitteilen? Und zweitens - ist es im Allgemeinen besser oder schlechter, Preclustering als Modellbaum durchzuführen (wie in Witten, Frank definiert - Klassifizierungs- / Regressionsbaum mit Modellen an den Blättern. Intuitiv scheint es, dass das Entscheidungsbaumstadium nur eine andere Form des Clustering ist, aber idk, wenn es Vorteile gegenüber "normalem" Clustering hat.).

Antworten:


3

Es gibt eine Methode namens clusterweise Regression , die ein ähnliches Problem löst (gruppiert zuerst Daten und erstellt dann Vorhersagemodelle). Siehe zum Beispiel dies.


1
Ich habe es hier nachgeschlagen: tandfonline.com/doi/abs/10.1080/00273170701836653 und in der Zusammenfassung Folgendes festgestellt: "In einigen Fällen wird der größte Teil der Variation der Antwortvariablen durch Clustering der Objekte erklärt, wobei nur ein geringer zusätzlicher Nutzen von bereitgestellt wird die gruppeninternen Regressionsmodelle. Dementsprechend besteht ein enormes Potenzial für eine Überanpassung an die clusterweise Regression. " Scheint nicht wirklich vielversprechend.
Ziel

Ok, aber sie sagen nicht, dass es immer fehlschlägt. Ich habe diese Methode noch nie angewendet. Ich weiß nur, dass es sich möglicherweise um eine Kombination aus überwachtem und unbeaufsichtigtem Ansatz handelt, aber es gibt eine kleine Anzahl von Artikeln, die diese Methode verwenden.
Miroslav Sabo

Darüber hinaus beziehen sich die meisten Anwendungen, die ich gefunden habe, auf Marketing und Finanzen, sodass sie möglicherweise speziell für diese Art von Daten geeignet sind.
Miroslav Sabo

1
Es scheint für den Bereich Marketing sehr intuitiv zu sein - Abwanderung, Cross / Upsell.
Ziel

2

Zwei Punkte, die zu lang sind, um einen Kommentar abzugeben:

  • Reine Cluster (dh nur Fälle einer Klasse) sind an sich kein Problem: Sogenannte Ein-Klassen-Klassifikatoren modellieren jede Klasse unabhängig von allen anderen. Sie können perfekt damit umgehen.

  • Wenn die Datencluster jedoch so voneinander getrennt sind, dass die Klassen ziemlich getrennt sind, dh die Cluster eher rein sind, bedeutet dies, dass eine sehr starke Struktur vorhanden ist, eine Struktur, die die Clusteranalyse ohne Anleitung durch die Klassenbezeichnungen finden kann. Dies bedeutet, dass bestimmte Arten von Klassifizierern, wie z. B. Methoden für den nächsten Nachbarn, die auf demselben Abstandsmaß basieren, das von der Clusteranalyse verwendet wird, für die Daten geeignet sind.

  • Die andere Möglichkeit, Situationen, in denen die Cluster nicht rein sind, aber eine Kombination aus Cluster- und Klassifizierungsmethoden gut funktionieren kann, ist für Bäume geeignet. Der Baum übernimmt den Teil des Clusters (und reine Knoten werden nicht als Problem angesehen.) Hier ist ein künstliches Beispiel, eine 2-Cluster-Version des XOR-Problems:
    XOR-Cluster

  • Eine andere Möglichkeit, die Clusterinformationen einzubeziehen, ohne das Risiko von reinen Clustern einzugehen, besteht darin, das Clustering als Schritt zur Feature-Generierung zu verwenden: Fügen Sie das Ergebnis der Clusteranalyse als neue Variablen zur Datenmatrix hinzu.

  • Sie fragen, ob es aus irgendeinem Grund schlecht ist: Eine Gefahr besteht darin, dass dieser Ansatz zu Modellen mit vielen Freiheitsgraden führt. Sie müssen besonders vorsichtig sein, um nicht zu stark zu passen.

  • Werfen Sie einen Blick auf modellbasierte Bäume, z. B. die Antwort von mbq hier. Ich denke, sie implementieren ein Konzept, das dem sehr nahe kommt, wonach Sie suchen. Sie können auch als Gesamtstruktur implementiert werden: zB R-Paket mobForest .


1

Ich habe es heutzutage mit ähnlichen Problemen zu tun. Ich habe Hunderte von Funktionen, um Klassifikatoren zu erstellen. Nachdem ich verschiedene Modelle ausprobiert hatte (z. B. zufällige Wälder, Gradientenverstärkung usw.), bekam ich immer noch eine geringe Genauigkeit / Rückruf. Ich versuche also, Clustering durchzuführen und dann Klassifizierer in verschiedenen Gruppen zu erstellen. Mein Anliegen ist, wie Anony-Mousse sagt, wie kann ich mehr Informationen vom Klassifikator erhalten, wenn ich alle Informationen beim Clustering verwende? Also, was ich als nächstes tun werde:

  1. Verwenden Sie einige Funktionen (nach vorherigem Wissen weniger), um Clustering durchzuführen.
  2. Verwenden Sie andere Funktionen (mehr), um Klassifizierer zu trainieren.

Ich denke, es kann auch helfen, die Komplexität zu reduzieren, ich wünschte, es hilft.


1

Es ist absolut machbar, Cluster und dann entsprechende Modelle zu erstellen. Der in den Kommentaren erwähnte pathologische Fall, in dem die Cluster die Ergebnisvariablen perfekt trennen, würde für Klassifizierer Schwierigkeiten bereiten, ist ein theoretisches Problem, das ich jedoch für unwahrscheinlich halte (insbesondere in einem hochdimensionalen Fall). Wenn Sie solche Cluster erstellen könnten, könnten Sie diese Cluster auch nur zur Vorhersage verwenden!kk

Wenn der Prozess mit Stichproben beginnt , können die Klassifizierer außerdem nur Stichproben verwenden. Ein leistungsfähigerer Ansatz wäre daher die Verwendung der Cluster beim Aufbau eines einzelnen Klassifikators, der die Heterogenität in den Clustern unter Verwendung einer Mischung von Regressionen berücksichtigt. Beim modellbasierten Clustering wird angenommen, dass die Daten aus einer Mischungsverteilung wobei mit der Wahrscheinlichkeit und mit der Wahrscheinlichkeit und und . Eine Mischungsregression ist eine Erweiterung, mit der die Daten als abhängig von Co-Variablen modelliert werden können.NN/kYiN(μi,σi2)i=1πi=21πμ1 μ2σ12σ22μi is replaced with βiXi, where the βi have to be estimated. While this example is for a univariate, Gaussian case, the framework can accommodate many data (multinomial-logit would be appropriate for categorical variables). The flexmix package for R provides a more detailed description and of course a relatively easy and extensible way to implement this approach.

Alternatively, in a discriminative setting, one could try incorporating cluster assignments (hard or soft) as a feature for training the classification algorithm of choice (e.g. NB, ANN, SVM, RF, etc.)


0

Well, if your clusters are really good, your classifiers will be crap. Because they have not enough diversion in their training data.

Say your clusters are perfect i.e. pure. You can't even properly train a classifier there anymore. Classifiers need positive and negative examples!

Random Forest are very successful in doing the exact opposite. They take a random sample of the data, train a classifier on that, and then use all of the trained classifiers.

What might work is to use clustering, and then train a classifier on every pair of clusters, at least if they disagree enough (if a class is split into two clusters, you still cannot train a classifier there!)


The purpose of the clustering is not to find "pure" clusters, i.e. ones that are awesome in discriminating my target variable. The purpose of the clustering is finding groups homogenous in the "other" area. To give an example: I think that in churn there are "quality-only" customers and "cost-optimizining" customers. I don't think I should assume that relevant features for classifiation are same in both groups so i want to build separate model for each group. Of course I don't have explicit "quality" and "cost" groups, hence the idea for clustering to derive such groups first from data.
Ziel

Any kind of extra imbalancedness and correlation in the data can harm. See, a classifier may want to discern "quality only" and "cost optimizing". If he only gets one group, he cannot make use of this distinction.
Has QUIT--Anony-Mousse

1
But only if you do a two-level approach, first classify by the clusters, then evaluate the cluster classifier. Otherwise, the constant classifier is useless. Then you are putting all the burden to the clustering.
Has QUIT--Anony-Mousse

1
Well, that's how I understood the OP.
cbeleites unhappy with SX

1
You can of course do this, but chances are that your clusters aren't that good, and that you are better off with a proper ensemble, of "overlapping" classifiers. Just like RandomForests does.
Has QUIT--Anony-Mousse
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.