Disons que je veux prédire si un projet sera rentable ou non. Dans mes données d'échantillon, la variable de réponse est en fait une variable continue: le $ profit / loss du projet.
Parce que mon objectif ultime est juste une classification binaire (projet rentable ou projet non rentable), dois-je utiliser une technique de classification? Ou dois-je utiliser la régression pour ne pas jeter les informations supplémentaires fournies par une variable de réponse continue?
Vladimir Vapnik (co-inventeur de la Support Vector Machine et principal théoricien de l'apprentissage informatique) préconise de toujours essayer de résoudre le problème directement, plutôt que de résoudre un problème plus général, puis de rejeter certaines des informations fournies par la solution. Je suis généralement d'accord avec cela, donc je suggérerais une approche de classification pour le problème tel qu'il se pose actuellement. La raison en est que si nous voulons uniquement classer un projet comme rentable ou non rentable, alors nous ne sommes vraiment intéressés que par la région où la rentabilité est proche de zéro. Si nous formons un modèle de classification, c'est là que nous concentrerons nos ressources de modélisation. Si nous adoptons une approche de régression, nous gaspillons peut-être des ressources de modélisation pour apporter de petites améliorations de performances pour des projets qui seront soit très rentables soit non rentables, potentiellement au détriment de l'amélioration des performances des projets limites.
Maintenant, la raison pour laquelle j'ai dit "tel qu'il se pose actuellement", c'est que très peu de problèmes impliquent en fait une classification binaire simple et dure (la reconnaissance optique des caractères en serait probablement une). Généralement, différents types de classification erronée ont des coûts différents, ou les fréquences de classe opérationnelle peuvent être inconnues, ou variables, etc. Dans de tels cas, il est préférable d'avoir un classificateur probabiliste, comme la régression logistique, plutôt qu'un SVM. S'il me semble que pour une application financière, nous ferons mieux si nous connaissons la probabilité que le projet soit rentable, et comment il sera ou non rentable. Nous pouvons très bien être disposés à financer un projet qui a une petite chance d'être rentable, mais massivement rentable s'il réussit, mais pas un projet qui est presque garanti pour réussir, mais qui aura une marge de profit si petite que nous le serions mieux vaut simplement mettre l'argent dans un compte d'épargne.
Frank et Omri374 ont donc tous les deux raison! (+1; o)
EDIT: Pour clarifier pourquoi la régression n'est pas toujours une bonne approche pour résoudre un problème de classification, voici un exemple. Supposons que nous ayons trois projets, avec une rentabilité , et pour chaque projet, nous avons une variable explicative qui, nous l'espérons, indique la rentabilité, . Si nous adoptons une approche de régression (avec décalage), nous obtenons les coefficients de régression et (à condition que j'aie fait les sommes correctement!). Le modèle prédit ensuite les projets comme générant des bénéfices , ety⃗ =(−$1000,+$1,+$1000) x⃗ =(1,2,10) β0=−800.8288 β1=184.8836 y^1≈−$616 y^2≈−$431 y^3≈$1048 . Notez que le deuxième projet est incorrectement prédit comme étant non rentable. Si en revanche, nous adoptons une approche de classification, et régressons plutôt sur , nous obtenons des coefficients de régression et , qui marque les trois projets comme suit: , et . Une approche de classification classe donc correctement le projet 1 comme non rentable et les deux autres comme étant rentables.t⃗ =2∗(y>=0)−1 β0=−0.2603 β1=0.1370 t^1=−0.1233 t^2=0.0137 t^3=1.1096
La raison pour laquelle cela se produit est qu'une approche de régression s'efforce également de minimiser la somme des erreurs quadratiques pour chacun des points de données. Dans ce cas, une SSE inférieure est obtenue en permettant au projet deux de tomber du mauvais côté de la frontière de décision, afin d'obtenir des erreurs plus faibles sur les deux autres points.
Frank a donc raison de dire qu'une approche de régression est probablement une bonne approche dans la pratique, mais si la classification est en fait l'objectif ultime, il y a des situations où elle peut mal fonctionner et une approche de classification fonctionnera mieux.
la source
Après avoir lu les commentaires, je pense que la distinction suivante est ce qui manque à la discussion:
Comment modéliser le problème
Cela n'a rien à voir avec la technique à utiliser. C'est la question de savoir quelles sont les entrées et les sorties et comment évaluer le résultat.
Si vous ne vous souciez vraiment que de la rentabilité ou non de nos projets, et du montant auquel ils le sont, cela n'a absolument aucune importance, vous devez modéliser cela comme un problème de classification. Cela signifie que vous optimisez en fin de compte le taux attendu de classification correcte (précision) ou AUC. La traduction de cette optimisation dépend de la technique que vous utilisez.
Toutes les questions de choix de modèle et d'algorithmes de recherche peuvent être abordées de manière heuristique (en utilisant les arguments qui ont été avancés dans les autres réponses et commentaires) mais la preuve ultime du pudding réside dans l'alimentation. Quel que soit le modèle que vous possédez, vous évaluerez par des tests de validation croisés la précision, la précision est donc ce que vous optimisez.
Comment résoudre le problème
Vous pouvez utiliser n'importe quelle méthode que vous aimez qui correspond au paradigme de classification. Puisque vous avez une variable y continue, vous pouvez effectuer une régression sur celle-ci et la traduire en une classification binaire. Cela fonctionnera probablement bien. Cependant, rien ne garantit que le modèle de régression optimal (par la somme des erreurs quadratiques ou du maximum de vraisemblance ou autre) vous donnera également le modèle de classification optimal (par précision ou ASC).
la source
Un modèle de classification tente généralement de minimiser le signe (erreur de classe) et non le biais. Dans le cas de nombreuses valeurs aberrantes, par exemple, je préférerais utiliser un modèle de classification et non un modèle de régression.
la source
Je définirais le problème comme celui de minimiser les pertes. La question est quelle est votre véritable fonction de perte? Une prévision incorrecte de rentabilité lorsque le projet a perdu 1 $ coûte-t-elle autant qu'une prévision de rentabilité lorsque le projet a perdu 1000 $ ? Dans ce cas, votre fonction de perte est vraiment binaire, et vous feriez mieux de présenter le tout comme un problème de classification. La fonction de régression peut toujours être l'un de vos classificateurs candidats, mais vous devez l'optimiser avec la fonction de perte discrète plutôt que la fonction continue. Si vous avez une définition plus compliquée de la perte, vous devriez essayer de la formaliser et voir ce que vous obtenez si vous prenez le dérivé.
Fait intéressant, de nombreuses méthodes d'apprentissage automatique optimisent en fait une fonction de perte discrète en se rapprochant d'une fonction continue, car une fonction de perte discrète fournit de mauvais gradients pour l'optimisation. Vous pouvez donc finir par le jeter comme un problème de classification, car c'est votre fonction de perte, mais en rapprochant ensuite cette fonction de perte avec la fonction continue d'origine.
la source