Quand disons-nous que l'ensemble de données n'est pas classifiable?


11

J'ai souvent analysé un ensemble de données sur lequel je ne pouvais pas vraiment faire de classification. Pour voir si je peux obtenir un classificateur, j'ai généralement utilisé les étapes suivantes:

  1. Générez des tracés d'étiquette par rapport aux valeurs numériques.
  2. Réduisez la dimensionnalité à 2 ou 3 pour voir si les classes sont séparables, essayez également LDA parfois.
  3. Essayez avec force d'adapter les SVM et les forêts aléatoires et examinez l'importance des fonctionnalités pour voir si les fonctionnalités ont un sens ou non.
  4. Essayez de modifier l'équilibre des classes et des techniques comme le sous-échantillonnage et le suréchantillonnage pour vérifier si le déséquilibre des classes pourrait être un problème.

Il existe de nombreuses autres approches auxquelles je peux penser, mais je n'ai pas essayé. Parfois, je sais que ces fonctionnalités ne sont pas bonnes et ne sont pas du tout liées au label que nous essayons de prévoir. J'utilise ensuite cette intuition commerciale pour terminer l'exercice, concluant que nous avons besoin de meilleures fonctionnalités ou d'étiquettes totalement différentes.

Ma question est de savoir comment un Data Scientist signale que la classification ne peut pas être effectuée avec ces fonctionnalités. Existe-t-il un moyen statistique de signaler cela ou d'ajuster d'abord les données dans différents algorithmes et de regarder la métrique de validation est la meilleure option?


J'ai l'impression que si cette question a une réponse claire et objective, alors tout effort scientifique perd tout son sens. La science est l'art.
Mephy

Haha ouais vrai. Je suis simplement intéressé de connaître plus de méthodes pour trouver la séparabilité. Plus comme comment montrer statistiquement aux clients que consacrer plus de temps à certains exercices pourrait être futile.
vc_dim

1
Je suggère de supprimer les deux derniers paragraphes, car ils rendent la question trop ouverte / large. La première partie - comment gérer et signaler un non-résultat de manière professionnelle - devrait être responsable, et personnellement, je pense que nous avons besoin de plus de ce type de question d'étiquette professionnelle Data Science sur le site.
Neil Slater

Ça a du sens Neil. Le modifier pour être net.
vc_dim

Réponses:


4

Cela dépend de vos données. Il y a quelque chose appelé erreur au niveau humain. Supposons que des tâches telles que la lecture de livres imprimés, les humains n'ont pas de mal à lire et il ne peut pas se produire une erreur, sauf en raison de la mauvaise qualité d'impression. Dans des cas comme la lecture de manuscrits manuscrits, il peut arriver souvent de ne pas comprendre tous les mots si la police de l'écrivain est étrange pour le lecteur. Dans la première situation, l'erreur au niveau humain est trop faible et les algorithmes d'apprentissage peuvent avoir les mêmes performances, mais le deuxième exemple illustre le fait que dans certaines situations, l'erreur au niveau humain est tellement élevée et d'une manière habituelle (si vous utilisez la même caractéristiques que les humains) votre algorithme d'apprentissage aura tellement de taux d'erreur.

Dans l'apprentissage statistique, il y a quelque chose qui s'appelle Bayes Error, chaque fois que la distribution des classes se chevauche, le taux d'erreur est important. sans changer les fonctionnalités, l'erreur Bayes des distributions actuelles est la meilleure performance et ne peut pas être réduite du tout.

Je vous suggère également de lire ici . Les problèmes avec une grande quantité d'erreur Bayes avec des fonctionnalités désignées ne sont pas considérés comme pouvant être classés dans l'espace de ces fonctionnalités. Comme autre exemple, vous pouvez supposer que vous souhaitez classer les voitures avec des lumières allumées. Si vous essayez de le faire le matin, vous pouvez vous-même avoir beaucoup d'erreurs et si vous utilisez les mêmes images pour entraîner l'algorithme d'apprentissage, cela peut aussi avoir.

Je vous recommande également de ne pas modifier la distribution de vos cours. Dans de tels cas, le résultat du classificateur près de la frontière serait complètement aléatoire. La distribution des données pour la formation de votre algorithme d'apprentissage automatique ne doit pas être modifiée et doit être telle qu'elle est en condition réelle.


C'est utile, je ne connaissais pas l'erreur Bayes. J'ai eu du mal à améliorer la précision après avoir changé la distribution des classes. Je suis d'accord que ce n'est pas une bonne idée. Pourtant, j'ai parfois essayé de changer les hiérarchies de classes en espérant que cette fonctionnalité pourrait représenter des classes plus granulaires ou abstraites (par exemple, changer des singes, des chiens et d'autres en mammifères). Je pense que s'il y a une erreur Bayes, changer la hiérarchie des classes n'aidera pas trop.
vc_dim

@SumitSinghChauhan En fait, dans les situations où l'erreur Bayes est importante, essayer de faire de l'ingénierie des fonctionnalités est la meilleure solution. Parce que l'apprentissage en profondeur qui trouve les fonctionnalités elles-mêmes, ne peut pas être utilisé dans les cas où l'ensemble de données n'est pas volumineux.
Media

5

Prenez un élément échantillon d'une classe et un élément élément de l'autre classe. Est-il possible que ces deux éléments aient exactement le même vecteur caractéristique? Si cela peut toujours se produire alors les deux classes ne sont pas complètement en utilisant vos vecteurs séparable de fonction en cours (depuis la décision de classification est basée entièrement dans le vecteur de caractéristique pour un élément donné).

D'un autre côté, si * chaque "élément d'une classe a un élément correspondant dans l'autre classe de telle sorte que les deux éléments ont les mêmes vecteurs de caractéristiques, alors les deux classes sont indiscernables en utilisant vos vecteurs de caractéristiques actuels.

De plus, si cette condition ne s'applique qu'à certains de vos éléments et pas à d'autres, alors vous êtes quelque part entre les deux, et vous pouvez l'utiliser comme base pour mesurer dans quelle mesure vous pouvez espérer qu'un classificateur fonctionnera en utilisant votre ensemble de fonctionnalités actuel.

Toutes ces évaluations peuvent être utilisées pour faire valoir à des degrés divers que vous devez extraire plus de fonctionnalités.


1
Merci Robert. Ceci est familier et semble juste. J'ai fait la même analyse pour certains des projets. J'avais un ensemble de données avec le même vecteur d'entités qui était étiqueté différemment et je l'ai utilisé comme base pour savoir à quel point je pouvais être précis. Parfois, le tracé de l'intrigue a également aidé. Jusqu'à présent, j'ai trouvé l'approche que vous venez de mentionner la meilleure pour convaincre les clients.
vc_dim
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.