Qu'est-ce qui fait qu'un classificateur classe mal les données? [fermé]

9

Serait-ce à partir des données elles-mêmes? Ou est-ce parce que le modèle ne peut pas détecter efficacement les similitudes entre les données, ou y a-t-il d'autres raisons de mauvaise classification?

Sofia693
la source
13
À mon avis, la question est beaucoup trop vague. Y a-t-il un problème que vous rencontrez en particulier?
jpmuc
1
Tel qu'il est écrit, cela pourrait être interprété comme "classer incorrectement [toutes] les données". Dans ce cas, cela peut se produire même si le modèle reflète parfaitement le processus de génération de données, tant que le DGP est stochastique / non déterministe. Autrement dit, un certain degré de classification erronée est à prévoir en raison de l'existence de bruit.
gung - Rétablir Monica
@gung n'est-il pas simplement trop ajusté?
theGD
3
@theGD, vous pouvez avoir un classificateur parfait qui classe mal certaines données, si le processus n'est pas déterministe. C'est comme ça.
gung - Rétablir Monica

Réponses:

19

Supposons que vous parliez d'une mauvaise classification des données d'entraînement, c'est-à-dire qu'il est difficile de minimiser la perte sur l'ensemble de données d'entraînement, aucun problème de sur-ajustement des données de test n'est impliqué.

Vous avez raison de dire que, dans la plupart des cas, la mauvaise classification peut provenir de «le modèle est trop simple» ou «les données sont trop bruyantes». Je voudrais donner deux exemples pour illustrer davantage.

  1. Le modèle est "trop ​​simple" pour saisir les "modèles de données".

    • L'exemple est illustré dans la figure de gauche. Supposons que nous voulons utiliser une régression logistique / une ligne pour séparer deux classes, mais les deux classes ne sont pas linéairement séparables.

    • Dans ce cas, il existe toujours des «schémas notables dans les données» et si nous modifions le modèle, nous pourrions nous améliorer. Par exemple, si nous utilisons le classificateur KNN, au lieu de la régression logistique, nous pouvons avoir de très bonnes performances.

  2. Les données ont trop de bruit, il est très difficile de faire la tâche de classification.

    • L'exemple est illustré dans la figure de droite, où, si vous vérifiez le code, vous verrez que deux classes sont très similaires (deux classes sont gaussiennes 2D, la moyenne est à distance, mais l'écart-type pour chaque classe est de ). C'est essentiellement une tâche très difficile.0.01×21.0

Exemples de jeux de données, un avec deux spirales maillées, un avec des distributions gaussiennes fortement chevauchantes

Notez que les deux exemples sont triviaux, car nous pouvons visualiser les données et le classificateur. Dans le monde réel, ce n'est pas le cas, lorsque nous avons des millions de points de données et des classificateurs super compliqués.

Code:

library(mlbench)
set.seed(0)
par(mfrow=c(1,2))
d=mlbench.spirals(500)
plot(d)
lg_fit=glm(d$classes~d$x[,1]+d$x[,2]-1,family=binomial())
abline(0,-lg_fit$coefficients[1]/lg_fit$coefficients[2])

d2=mlbench.2dnormals(500,r=0.01)
plot(d2)
Haitao Du
la source
vous avez mentionné KNN, veuillez noter que je parle de classification et non de clustering, je veux dire quand nous avons des données de formation et de test. Ce qui me rend peu confus, c'est que, par exemple, si nous avons deux types de données, ce qui signifie des fonctionnalités différentes pour chaque donnée, qu'est-ce qui rend le classificateur mal étiqueter les données de test dans le processus de test? Je pense que cela m'amène à votre deuxième exemple, ce qui signifie que mes données ont tellement de bruit et que le modèle a du mal à cause de cela, mais supposons que nous avons résolu que par la sélection de fonctionnalités, il puisse toujours y avoir du bruit même après la sélection de fonctionnalités?
Sofia693
ou peut-être que je peux penser à une autre raison pour laquelle mes deux types de données partagent en fait des similitudes dans leurs fonctionnalités et qui peuvent "tromper" le modèle, cela pourrait-il être un cas en quelque sorte?
Sofia693
@ Sofia693 1. KNN n'est PAS Kmeans, c'est un modèle de classification. 2. Je ne suis pas vraiment en train de suivre vos commentaires.
Haitao Du
Je voulais dire que si nous avons deux groupes (par exemple 50 patients autistes et 50 sujets sains et que les données sont extraites de l'IRM où chaque sujet est représenté comme un vecteur caractéristique), je forme un classificateur et j'utilise la technique Leave One Out. Maintenant, le modèle peut classer à tort le sujet de test à cause du bruit (comme vous l'avez mentionné dans le deuxième exemple), mais nous pouvons utiliser la sélection des fonctionnalités pour réduire le bruit, n'est-ce pas? pourquoi le modèle classe-t-il encore mal le sujet testé? pourrait-il encore y avoir du bruit même après la sélection des fonctionnalités?
Sofia693
Ma deuxième hypothèse est que les deux groupes partagent en fait des similitudes dans leurs vecteurs de caractéristiques, de sorte que le modèle a vraiment du mal à attribuer le sujet de test à l'un des groupes.
Sofia693
11

En plus de @ hxd1011 (+1).

  1. Déséquilibre de classe en termes relatifs ou absolus. Dans les deux cas, nous construisons une représentation inadéquate de la classe d'intérêt. Habituellement, ce dernier est plus difficile à surmonter. (Exemple de référence: apprendre des données déséquilibrées de He et Garcia)
  2. Critères de classification incorrects. Nous formons notre classificateur à l'aide d'une fonction d'évaluation inappropriée et / ou utilisons des critères inappropriés pour dériver notre solution finale. Problème très courant lors de l'utilisation de "solutions prédéfinies". (Exemple de référence: Dommages causés par l'exactitude de la classification et autres règles de notation discontinue de l'exactitude incorrecte par Harrell)
  3. Il n'y a pas de classe en réalité. Nous souhaitons qu'il y ait quelque chose mais vraiment il n'y a rien. Habituellement, l'expertise du domaine éloigne les gens de cela, mais en tant que nouveau venu, c'est toujours un problème. (Exemple de référence: notre vie quotidienne. Le biais de publication est probablement un problème ici aussi ...)
  4. Sur-ajustement. Nous avons un modèle décent et un ensemble de données décent mais nous ne parvenons pas à former la construction appropriée d'un modèle irréaliste. Habituellement, cela concerne le point 2. (Extra-points pour sous-ajustement!) (Exemple de référence: Le problème du sur-ajustement par les Hawkings)
  5. Dérive du concept. Les choses changent et nous ne nous recyclons pas. Notre classificateur a d'excellentes performances dans notre échantillon de marketing "Ventes de Noël" - oui, l'utilisation de ce modèle en juillet sera probablement une douleur ... (Exemple de référence: A Survey on Concept Drift Adaptation by Gama et al.)
  6. Fuite de données / fonctionnalités Magic. Nous nous entraînons à partir d'informations qui ne seront pas disponibles au moment de la prédiction. Commun lorsque des données de type événement / série temporelle sont présentes. (Exemple de référence: fuite dans l'exploration de données: formulation, détection et évitement par Kaufman et al.)
usεr11852
la source
1
Je ne comprends pas le point 3. La question suppose une certaine notion de "classe" afin d'avoir un classificateur qui classe mal certaines données. Voulez-vous dire que l'étiquetage est incohérent (la "classe" est mal définie)? Ou que les fonctionnalités ne contiennent aucune information pertinente à la tâche de classification?
Charles Staats
@CharlesStaats: "les fonctionnalités ne contiennent aucune information pertinente pour la tâche de classification" est un échec du deuxième type, "critères de classification incorrects".
MSalters
Pensez-vous que les mauvaises étiquettes tomberaient en 2 ou méritent-elles leur entrée séparée?
Jonas
@CharlesStaats: Supposer "une certaine notion de classe " ne signifie pas qu'elle existe réellement et / ou si elle peut être prise en charge par les données disponibles. C'est pourquoi l'expertise du domaine est extrêmement utile dans ces cas; cela nous aide à faire la distinction entre un «vrai problème» et la tentative de «s'adapter au bruit». Il y a des cas où les étiquettes reflètent une hypothèse (par exemple, le potentiel de développer une maladie causée par une mutation aléatoire) plutôt qu'une notion mesurable (par exemple, le patient a la maladie causée par une mutation aléatoire).
usεr11852
@Jonas: C'est un bon point; Je pense que l'étiquetage erroné devrait être une entrée distincte. Il pourrait potentiellement être associé au point sur «les données sont trop bruyantes» soulevé par hxd1011.
usεr11852