Le préclustering aide-t-il à construire un meilleur modèle prédictif?

9

Pour la tâche de modélisation de l'attrition, je considérais:

  1. Calculer k clusters pour les données
  2. Construisez k modèles pour chaque cluster individuellement.

La raison en est, qu'il n'y a rien à prouver, que la population des abonnés est homogène, il est donc raisonnable de supposer que le processus de génération de données peut être différent pour différents "groupes"

Ma question est, est-ce une méthode appropriée? Cela viole-t-il quelque chose ou est-il considéré comme mauvais pour une raison quelconque? Si oui, pourquoi?

Sinon, pourriez-vous partager quelques bonnes pratiques sur cette question? Et 2e chose - est-il généralement préférable ou pire de faire du préclustering que l'arbre du modèle (comme défini dans Witten, Frank - arbre de classification / régression avec des modèles aux feuilles). idk s'il présente des avantages par rapport au clustering "normal".).

Ziel
la source

Réponses:

3

Il existe une méthode appelée régression en grappes qui résout un problème similaire (d'abord les données de grappes, puis construit des modèles prédictifs). Voir par exemple ceci.

Miroslav Sabo
la source
1
Je l'ai recherchée ici: tandfonline.com/doi/abs/10.1080/00273170701836653 et j'ai trouvé ce qui suit dans l'abstrait: "Dans certains cas, la plupart des variations de la variable de réponse s'expliquent par le regroupement des objets, avec peu d'avantages supplémentaires fournis par les modèles de régression intra-cluster. En conséquence, il existe un énorme potentiel de sur-ajustement avec la régression cluster ". Cela ne semble pas vraiment prometteur.
Ziel
D'accord, mais ils ne disent pas que cela échoue toujours. Je n'ai jamais utilisé cette méthode, je sais seulement qu'elle peut être une combinaison d'approche supervisée et non supervisée, mais il existe un petit nombre d'articles qui utilisent cette méthode.
Miroslav Sabo du
De plus, la plupart des applications que j'ai trouvées concernent le marketing et la finance, alors peut-être qu'elles conviennent particulièrement à ce type de données.
Miroslav Sabo
1
Cela semble très intuitif pour le domaine du marketing - churn, cross / upsell.
Ziel
2

Deux points trop longs pour être un commentaire:

  • les clusters purs (c'est-à-dire contenant des cas d'une seule classe) ne sont pas un problème en soi: les classificateurs dits à une seule classe modélisent chaque classe indépendamment de toutes les autres. Ils peuvent parfaitement gérer cela.

  • Cependant, si les clusters de données d'une manière que les classes sont assez séparées, c'est-à-dire que les clusters sont plutôt purs, cela signifie qu'il existe une structure très solide, une structure que l'analyse de cluster est capable de trouver sans guide par les étiquettes de classe. Cela signifie que certains types de classificateurs tels que les méthodes du plus proche voisin basées sur la même mesure de distance utilisée par l'analyse de cluster sont appropriés pour les données.

  • L'autre possibilité, les situations où les grappes ne sont pas pures, mais une combinaison de grappes et de méthodes de classification peuvent bien faire, est appropriée pour les arbres. L'arbre fera la partie du clustering (et les nœuds purs ne sont pas considérés comme un problème.) Voici un exemple artificiel, une version à 2 clusters du problème XOR:
    Cluster XOR

  • une autre façon d'inclure les informations de cluster sans courir le risque d'avoir des clusters purs serait d'utiliser le clustering comme une étape de génération de fonctionnalités: ajouter le résultat de l'analyse de cluster en tant que nouvelles variantes à la matrice de données.

  • Vous vous demandez si elle est mauvaise pour une raison quelconque: un écueil est que cette approche conduit à des modèles avec de nombreux degrés de liberté. Vous devrez faire particulièrement attention à ne pas trop vous habiller.

  • Jetez un oeil aux arbres basés sur des modèles, par exemple la réponse de mbq ici, je pense qu'ils implémentent un concept qui est très proche de ce que vous recherchez. Ils peuvent également être implémentés en forêt: par exemple, le package R mobForest .

cbeleites mécontents de SX
la source
1

Je fais face à un problème similaire ces jours-ci. J'ai des centaines de fonctionnalités pour construire un classificateur. Après avoir essayé différents modèles (ex: forêts aléatoires, gradient boost, etc ...), j'ai quand même obtenu une faible précision / rappel. J'essaie donc de faire un clustering puis de construire des classificateurs dans différents groupes. Ma préoccupation est, tout comme Anony-Mousse le dit, comment puis-je obtenir plus d'informations du classificateur si j'utilise toutes les informations dans le clustering? Alors, voici ce que je vais faire ensuite:

  1. Utilisez certaines fonctionnalités (moins, selon les connaissances antérieures) pour effectuer le clustering.
  2. Utilisez d'autres fonctionnalités (plus) pour former les classificateurs.

Je pense que cela peut également aider à réduire la complexité, je souhaite que cela aide.

Gilbert Liou
la source
1

kk

NN/kOuijeN(μje,σje2)je=1πje=21-πμ1 μ2σ12σ22μjeβjeXjeβje

Alternativement, dans un cadre discriminant, on pourrait essayer d'incorporer des affectations de grappe (matérielles ou logicielles) comme une caractéristique pour la formation de l'algorithme de classification de choix (par exemple NB, ANN, SVM, RF, etc.)

Sameer
la source
0

Eh bien, si vos grappes sont vraiment bonnes, vos classificateurs seront de la merde. Parce qu'ils n'ont pas suffisamment de diversion dans leurs données d'entraînement.

Dites que vos grappes sont parfaites, c'est-à-dire pures. Vous ne pouvez même plus y former correctement un classificateur. Les classificateurs ont besoin d'exemples positifs et négatifs!

Random Forest réussit très bien à faire exactement le contraire. Ils prennent un échantillon aléatoire des données, forment un classificateur à ce sujet, puis utilisent tous les classificateurs formés.

Ce qui pourrait fonctionner est d'utiliser le clustering, puis de former un classificateur sur chaque paire de clusters, du moins s'ils sont assez en désaccord (si une classe est divisée en deux clusters, vous ne pouvez toujours pas former un classificateur là-bas!)

A QUIT - Anony-Mousse
la source
Le but du clustering n'est pas de trouver des clusters "purs", c'est-à-dire ceux qui sont géniaux pour discriminer ma variable cible. Le regroupement a pour but de trouver des groupes homogènes dans la zone «autre». Pour donner un exemple: je pense que dans le taux de désabonnement, il y a des clients «de qualité uniquement» et des clients «optimisant les coûts». Je ne pense pas que je devrais supposer que les fonctionnalités pertinentes pour la classification sont les mêmes dans les deux groupes, donc je veux construire un modèle distinct pour chaque groupe. Bien sûr, je n'ai pas de groupes explicites de «qualité» et de «coût», d'où l'idée d'un clustering pour dériver ces groupes d'abord à partir des données.
Ziel
Tout type de déséquilibre et de corrélation supplémentaires dans les données peut nuire. Voir, un classificateur peut vouloir discerner la «qualité uniquement» et «l'optimisation des coûts». S'il n'obtient qu'un seul groupe, il ne peut pas faire usage de cette distinction.
A QUIT - Anony-Mousse
1
Mais uniquement si vous effectuez une approche à deux niveaux, commencez par classer par clusters, puis évaluez le classificateur de cluster. Sinon, le classificateur constant est inutile. Ensuite, vous mettez tout le fardeau du clustering.
A QUIT - Anony-Mousse
1
Eh bien, c'est ainsi que j'ai compris le PO.
cbeleites mécontents de SX
1
Vous pouvez bien sûr le faire, mais il est probable que vos grappes ne soient pas si bonnes et que vous feriez mieux avec un ensemble approprié de classificateurs "superposés". Tout comme RandomForests.
A QUIT - Anony-Mousse