Cinq principaux classificateurs à essayer en premier

25

Outre les caractéristiques évidentes du classificateur comme

  • coût de calcul,
  • types de données attendus des fonctionnalités / étiquettes et
  • l'adéquation à certaines tailles et dimensions d'ensembles de données,

quels sont les cinq premiers classificateurs (ou 10, 20?) à essayer en premier sur un nouvel ensemble de données dont on ne sait pas encore grand chose (par exemple la sémantique et la corrélation des caractéristiques individuelles)? Habituellement, j'essaie Naive Bayes, le plus proche voisin, l'arbre de décision et SVM - bien que je n'ai pas de bonne raison pour cette sélection autre que je les connais et comprends surtout comment ils fonctionnent.

Je suppose que l'on devrait choisir des classificateurs qui couvrent les approches de classification générale les plus importantes . Quelle sélection recommanderiez-vous, selon ce critère ou pour toute autre raison?


MISE À JOUR: Une formulation alternative pour cette question pourrait être: "Quelles approches générales de classification existent et quelles méthodes spécifiques couvrent les plus importantes / populaires / prometteuses?"

Oben Sonne
la source
Je pense que c'est un doublon de ( stats.stackexchange.com/questions/3458/… ). La seule valeur supplémentaire de la question ici pourrait être des "critères de sélection des classificateurs" (ce qui rendrait la question très générique). Si c'est un doublon, votez pour fermer, sinon votez pour cw;)
steffen
@steffen: Votre question référencée est utile, cependant, je pense que ce n'est pas un doublon. En effet ma question est plutôt générique. Je ne cherche pas une solution à un problème particulier mais pour des raisons générales pourquoi utiliser quels apprenants - je mettrai à jour ma question en conséquence.
Oben Sonne

Réponses:

21

Forêt aléatoire

Rapide, robuste, bonne précision, dans la plupart des cas rien à régler, ne nécessite aucune normalisation, à l'abri de la colinéarité, génère une très bonne approximation des erreurs et un classement d'importance utile comme effet secondaire de l'entraînement, trivialement parallèle, prédit en un clin d'œil.

Inconvénients: des méthodes plus lentes que banales comme kNN ou NB, fonctionnent mieux avec des classes égales, une précision pire que SVM pour les problèmes nécessitant désespérément une astuce du noyau, est une boîte noire dure, ne fait pas de café.

user88
la source
1
@mbq (+1) Concernant le déséquilibre des classes, nous pouvons toujours compter sur un échantillonnage stratifié pendant l'ensachage.
chl
3
@mbq, ne fait pas de café? C'est là une rupture de marché.
Cardinal
Merci pour l'allusion à Random Forests . Mais voudriez-vous essayer seulement eux? Et si vous n'êtes pas satisfait des résultats? Quel classificateur essayeriez-vous autrement? Ou, que répondriez-vous si quelqu'un demandait: "Pourquoi n'avez-vous pas essayé d'autres méthodes?"
Oben Sonne
@Oben Eh bien, j'ai compris que vous créez une sorte de pool à un classificateur par réponse.
@mbq: Pas vraiment, mais il s'avère que c'est une telle piscine. Je ne me suis probablement pas exprimé assez clairement dans la question. En fait, je voulais savoir quel ensemble de classificateurs on devrait essayer en premier, pour couvrir différentes méthodes de classification générale (avec différentes forces et faiblesses). Je me demande toujours si je ne devrais pas essayer plus de classificateurs. Savoir que celles que j'ai essayées représentent déjà les approches les plus typiques / prometteuses serait utile ici. Mais pour cela, j'ai besoin de savoir pour quel ensemble de classificateurs cela est vrai. (Je suis loin d'être un expert en statistiques, alors faites-moi savoir si mon esprit est un peu tordu ici)
Oben Sonne
7

Classificateur de processus gaussien (n'utilisant pas l'approximation de Laplace), de préférence avec marginalisation plutôt qu'optimisation des hyper-paramètres. Pourquoi?

  1. car ils donnent une classification probabiliste
  2. vous pouvez utiliser une fonction noyau qui vous permet d'opérer directement sur des données non vectorielles et / ou d'intégrer des connaissances expertes
  3. ils traitent de l'incertitude dans l'ajustement du modèle correctement, et vous pouvez propager cette incertitude jusqu'au processus de prise de décision
  4. performances prédictives généralement très bonnes.

Inconvénients

  1. lent
  2. nécessite beaucoup de mémoire
  3. peu pratique pour des problèmes à grande échelle.

Le premier choix serait cependant une régression logistique régularisée ou une régression de crête [sans sélection de caractéristiques] - pour la plupart des problèmes, les algorithmes très simples fonctionnent plutôt bien et sont plus difficiles à se tromper (en pratique, les différences de performances entre les algorithmes sont plus petites que les différences de performances entre l'opérateur qui les conduit).

utilisateur88
la source
1

Par moi-même, lorsque vous approchez d'un nouvel ensemble de données, vous devez commencer à surveiller l'ensemble du problème. Tout d'abord, obtenez une distribution des caractéristiques catégorielles et des écarts moyens et standard pour chaque caractéristique continue. Ensuite:

  • Supprimer les entités avec plus de X% de valeurs manquantes;
  • Supprimer les caractéristiques catégorielles lorsqu'une valeur particulière obtient plus de 90 à 95% de la fréquence relative;
  • Supprimer les entités continues avec CV = std / moyenne <0,1;
  • Obtenez un classement des paramètres, par exemple ANOVA pour continu et Chi carré pour catégorique;
  • Obtenez un sous-ensemble important de fonctionnalités;

Ensuite, je divise généralement les techniques de classification en 2 ensembles: technique boîte blanche et technique boîte noire. Si vous avez besoin de savoir «comment fonctionne le classificateur», vous devez choisir dans le premier ensemble, par exemple des arbres de décision ou des classificateurs basés sur des règles.

Si vous avez besoin de classer de nouveaux enregistrements sans construire un modèle, vous devriez jeter un œil à un apprenant désireux, par exemple KNN.

Après cela, je pense qu'il vaut mieux avoir un seuil entre précision et vitesse: Neural Network est un peu plus lent que SVM.

Ceci est ma technique de classement des cinq premiers:

  1. Arbre de décision;
  2. Classificateurs basés sur des règles;
  3. SMO (SVM);
  4. Naive Bayes;
  5. Les réseaux de neurones.
Simone
la source
4
-1 Workflow absolument incorrect pour les grands p petits n, le sur-ajustement FS est garanti.
1
kNN n'est-il pas un apprenant paresseux plutôt qu'un enthousiaste (car vous ne faites rien du tout jusqu'à ce que vous ayez vraiment à le faire lorsqu'un schéma à classer arrive)? Tout prétraitement que vous effectuez avant d'appliquer le classificateur est susceptible d'avoir un effet sur les performances plus important que la différence entre les classificateurs; la sélection des fonctionnalités est particulièrement difficile (conduit facilement à un sur-ajustement), et les méthodes comme le SVM avec régularisation fonctionnent généralement mieux sans sélection des fonctionnalités. Je ne recommanderais certainement pas les réseaux de neurones, beaucoup trop d'embûches potentielles.
Dikran Marsupial