2

D'accord. Maintenant, cette question est assez difficile. Je vais vous donner un exemple.Comment calculer le taux d'erreur de classification

Maintenant, les chiffres de gauche sont ma classification de l'algorithme et les bons chiffres sont les numéros de classe d'origine

177 86 
177 86 
177 86 
177 86 
177 86 
177 86 
177 86 
177 86 
177 86 
177 89 
177 89 
177 89 
177 89 
177 89 
177 89 
177 89 

Voici donc mon algorithme fusionné 2 classes différentes en 1. Comme vous pouvez le voir fusionné classe 86 et 89 en une classe. Alors, quelle serait l'erreur à l'exemple ci-dessus?

Ou ici un autre exemple

203 7 
203 7 
203 7 
203 7 
16 7 
203 7 
17 7 
16 7 
203 7 

l'exemple ci-dessus chiffres de gauche sont ma classification de l'algorithme et les bons chiffres sont ids de classe d'origine. Comme on peut le voir ci-dessus il manque classé 3 produits (je classe les mêmes produits commerciaux). Donc, à cet exemple, quel serait le taux d'erreur? Comment calculeriez-vous?

Cette question est assez difficile et complexe. Nous avons terminé la classification mais nous ne sommes pas en mesure de trouver l'algorithme correct pour calculer le taux de réussite: D

Répondre

3

Voici un exemple assez longue, une véritable matrice confuson avec 10 classes d'entrée "0" - "9" (chiffres écrits à la main), et 10 grappes de sortie étiquetée A - J.

Confusion matrix for 5620 optdigits: 

True 0 - 9 down, clusters A - J across 
----------------------------------------------------- 
     A B C D E F G H I J 
----------------------------------------------------- 
0: 2   4   1  546 1 
1: 71 249  11 1 6   228 5 
2: 13 5  64 1 13 1  460 
3: 29 2  507  20   5 9 
4:  33 483   4 38   5 3 2 
5: 1 1 2 58 3   480 13 
6: 2 1 2  294   1   1 257 
7: 1 5 1   546   6 7 
8: 415 15 2 5 3 12  13 87 2 
9: 46 72 2 357  35 1 47 2 
---------------------------------------------------- 
    580 383 496 1002 307 670 549 557 810 266 estimates in each cluster 

y class sizes: [554 571 557 572 568 558 558 566 554 562] 
kmeans cluster sizes: [ 580 383 496 1002 307 670 549 557 810 266] 

Par exemple, le groupe A a 580 points de données, dont 415 sont "8"; le groupe B a 383 points de données, dont 249 sont des «1»; etc.

Le problème est que les classes de sortie sont brouillées, permutées; ils correspondent dans cet ordre, avec des comptes:

 A B C D E F G H I J 
     8 1 4 3 6 7 0 5 2 6 
    415 249 483 507 294 546 546 480 460 257 

Un pourrait dire que le "taux de réussite" est 75% = (415 + 249 + 483 + 507 + 294 + 546 + 546 + 480 + 460 + 257)/5620
mais cela jette des informations utiles — ici, que E et J disent tous les deux "6", et qu'aucun groupe ne dit "9". Donc, additionnez les nombres les plus grands dans chaque colonne de la matrice de confusion et divisez par le total.
Mais, comment compter les clusters chevauchants/manquants, comme les 2 "6" s, pas de "9" ici?
Je ne connais pas de manière communément acceptée (doute que le Hungarian algorithm est utilisé dans la pratique).

Ligne de fond: ne pas jeter d'informations; regarde toute la matrice de confusion. NB: un tel "taux de réussite" sera optimiste pour de nouvelles données!
Il est habituel de diviser les données en disons 2/3 "ensemble d'entraînement" et 1/3 "ensemble d'essai", train par exemple. k-signifie sur le 2/3 seul,
puis mesure la confusion/taux de réussite sur l'ensemble de test — généralement pire que sur le jeu d'apprentissage seul.
Beaucoup plus peut être dit; voir par exemple Cross-validation.

0

Vous devez définir les critères d'erreur si vous voulez évaluer la performance d'un algorithme, donc je ne suis pas sûr exactement ce que vous demandez. Dans certains algorithmes de clustering et d'apprentissage automatique, vous définissez la métrique d'erreur et la minimise.

Jetez un oeil à ce https://en.wikipedia.org/wiki/Confusion_matrix pour obtenir quelques idées

+0

Je demande aux critères. – MonsterMMORPG

0

Vous devez définir une métrique d'erreur pour vous mesurer. Dans votre cas, une méthode simple devrait être de trouver la mise en correspondance des propriétés de votre produit

p = properties(id) 

id est l'identifiant du produit, et p est probablement un vecteur à chaque entrée de différentes propriétés. Ensuite, vous pouvez définir la fonction d'erreur e (ou distance) entre deux produits comme

e = d(p1, p2) 

Bien sûr, chaque propriétés doivent être évaluées à un certain nombre dans cette fonction. Ensuite, cette fonction d'erreur peut être utilisée dans l'algorithme de classification et d'apprentissage. Dans votre deuxième exemple, il semble que vous avez traité la paire (203 7) comme une classification réussie, donc je pense que vous avez déjà une métrique. Vous pouvez être plus spécifique pour obtenir une meilleure réponse.

+0

bien en fait je demande la métrique à cette question. nous devons définir notre taux de réussite des erreurs selon nos termes et je demande vos idées sur la façon de le définir. – MonsterMMORPG

+0

Donc, je n'ai décrit que l'idée générale ici. Une propriété d'un produit peut être son type ou son prix. Si les gens préfèrent le produit du même prix, vous pouvez simplement utiliser d (price1, price2) – unsym

+0

Je pense que vous ne comprenez pas la question correctement. Imaginez que vous avez 100 produits différents et que chaque produit soit vendu chez 10 marchands différents, ce qui fait 1000 produits au total. Donc, vous essayez de regrouper chacun des produits correctement, mais l'algorithme est classé dans les exemples ci-dessus. Alors, comment calculeriez-vous votre taux de réussite de classification d'algorithme. – MonsterMMORPG

Questions connexes