Certains documents sur l'apprentissage automatique que j'ai vus disent qu'il est une mauvaise idée d'aborder un problème de classification par régression. Mais je pense qu'il est toujours possible de faire une régression continue pour ajuster les données et tronquer la prédiction continue afin de produire des classifications discrètes. Alors pourquoi est-ce une mauvaise idée?
51
Réponses:
"..approach problème de classification par régression .." par "régression" Je supposerai que vous entendez une régression linéaire, et je comparerai cette approche à l'approche de "classification" consistant à ajuster un modèle de régression logistique.
Avant de faire cela, il est important de clarifier la distinction entre les modèles de régression et de classification. Les modèles de régression prédisent une variable continue, telle que la quantité de pluie ou l'intensité du soleil. Ils peuvent également prévoir des probabilités, telles que la probabilité qu'une image contienne un chat. Un modèle de régression à prédiction de probabilité peut être utilisé dans le cadre d'un classificateur en imposant une règle de décision. Par exemple, si la probabilité est de 50% ou plus, décidez qu'il s'agit d'un chat.
La régression logistique prédit les probabilités et constitue donc un algorithme de régression. Cependant, il est communément décrit comme une méthode de classification dans la littérature d’apprentissage automatique, car il peut être (et est souvent) utilisé pour créer des classificateurs. Il existe également de "vrais" algorithmes de classification, tels que SVM, qui ne prédisent qu'un résultat et ne fournissent pas de probabilité. Nous ne discuterons pas de ce type d'algorithme ici.
Régression linéaire ou logistique sur les problèmes de classification
Comme Andrew Ng l'explique , avec la régression linéaire, vous insérez un polynôme dans les données - par exemple, comme dans l'exemple ci-dessous, nous ajustons une ligne droite dans l' ensemble d'échantillons {taille de la tumeur, type de tumeur} :
En haut, les tumeurs malignes gagnent , les non malignes, , et la ligne verte correspond à notre hypothèse . Pour faire des prédictions, nous pouvons dire que pour toute taille de tumeur donnée , si dépasse nous prédisons une tumeur maligne, sinon nous prédisons bénigne.1 0 h(x) x h(x) 0.5
On dirait que nous pourrions prédire correctement chaque échantillon d’entraînement, mais modifions maintenant un peu la tâche.
Intuitivement, il est clair que toutes les tumeurs supérieures à un certain seuil sont malignes. Ajoutons donc un autre échantillon avec une taille de tumeur énorme et exécutons à nouveau la régression linéaire:
Maintenant notre ne fonctionne plus. Pour continuer à faire des prédictions correctes, nous devons le changer en ou quelque chose du genre - mais cela ne signifie pas comment l'algorithme devrait fonctionner.h(x)>0.5→malignant h(x)>0.2
Nous ne pouvons pas modifier l'hypothèse chaque fois qu'un nouvel échantillon arrive. Au lieu de cela, nous devrions l’apprendre à partir des données du jeu d’entraînement, puis (en utilisant l’hypothèse que nous avons apprise) faire des prédictions correctes pour les données que nous n’avons pas vues auparavant.
J'espère que cela explique pourquoi la régression linéaire n'est pas la meilleure solution pour les problèmes de classification! En outre, vous voudrez peut-être regarder VI. Régression logistique. Vidéo de classement sur ml-class.org qui explique l'idée plus en détail.
MODIFIER
probabilislogic a demandé ce qu'un bon classificateur ferait. Dans cet exemple particulier, vous utiliseriez probablement une régression logistique qui pourrait apprendre une hypothèse comme celle-ci (je l'invente):
Notez que la régression linéaire et la régression logistique vous donnent une ligne droite (ou un polynôme d'ordre supérieur) mais ces lignes ont une signification différente:
Ainsi, la ligne de fond est que dans le scénario de classification , nous utilisons un tout autre raisonnement et un tout autre algorithme que dans le scénario de régression.
la source
Je ne peux pas penser à un exemple dans lequel la classification est en réalité l'objectif ultime. Le but réel est presque toujours de faire des prévisions précises, par exemple des probabilités. Dans cet esprit, la régression (logistique) est votre ami.
la source
Pourquoi ne pas regarder certaines preuves? Bien que beaucoup soutiennent que la régression linéaire ne convient pas à la classification, elle peut quand même fonctionner. Pour gagner un peu d'intuition, j'ai inclus la régression linéaire (utilisée comme classificateur) dans la comparaison de classificateur de scikit-learn . Voici ce qui se passe:
La limite de décision est plus étroite qu'avec les autres classificateurs, mais la précision est la même. Tout comme le classifieur de vecteur de support linéaire, le modèle de régression vous donne un hyperplan qui sépare les classes dans l'espace des fonctions.
Comme nous le voyons, l’utilisation de la régression linéaire comme classifieur peut fonctionner, mais comme toujours, je validerais les prédictions.
Pour mémoire, voici à quoi ressemble mon code de classificateur:
la source
En outre, pour développer des réponses déjà bonnes, pour toute tâche de classification au-delà d’une tâche à deux variables, l’utilisation de la régression nous obligerait à imposer une distance et un ordre entre les classes. En d'autres termes, nous pourrions obtenir des résultats différents simplement en remuant les étiquettes des classes ou en modifiant l'échelle des valeurs numériques attribuées (par exemple, les classes étiquetées vs ) , ce qui va à l'encontre de l'objectif du problème de classification.1,10,100,... 1,2,3,...
la source