2017-08-11 4 views
0

J'ai besoin de la fonction mode pour classer un classificateur et le code ci-dessous est l'endroit où la fonction mode est nécessaire pour obtenir le classement.Package Python à utiliser en mode

VoteClassifier classe (ClassifierI): def initialisation (auto, * classificateurs): self._classifiers = classificateurs

def classify(self, features): 
    votes = [] 
    for c in self._classifiers: 
     v = c.classify(features) 
     votes.append(v) 
    return mode(votes) 

def confidence(self, features): 
    votes = [] 
    for c in self._classifiers: 
     v = c.classify(features) 
     votes.append(v) 

    choice_votes = votes.count(mode(votes)) 
    conf = choice_votes/len(votes) 
    return conf 

Ceci est l'importation j'utilise enter image description here. Cependant, je reçois cette erreur enter image description here La réponse à la question affichée ici ne semble pas aider (How to impute each categorical column in numpy array). Quand je cherchai sur le web il y a ce mode avant tout droit vers Python 3, mais ne semble pas fonctionner sur Python 2.7 cette importation est illustré ci-dessous,

from statistics import mode 

est-il un autre paquet qui a une fonctionnalité de mode à cette fin ou toute méthode pour corriger cette erreur?

+0

Pouvez-vous créer un [exemple minimal, complet et vérifiable] (https://stackoverflow.com/help/mcve) qui illustre le problème? En outre, ajoutez le message d'erreur * complete * (c'est-à-dire la trace complète) à la question. Enfin, pouvez-vous montrer ce qu'est 'type (v)'? (Peut-être juste 'print type (v)' dans la boucle.) –

+0

C'est l'erreur complète c'est une erreur d'exécution. Je ne pense pas que vous compreniez la fonction de classification combinée à un ensemble de fonctionnalités. Cependant, V sont les caractéristiques du texte comme "pos", "neg". – rando

+0

Vous avez raison - j'ai réalisé que mon commentaire sur l'affichage de la trace n'était pas pertinent après avoir fait le commentaire. –

Répondre

1

Pour calculer le mode, vous pouvez utiliser le Counter dans le package Collections qui a une fonction de mode. Exactement, utilisez most common. Voici un exemple:

from collections import Counter 
data = Counter(your_list) 
data.most_common() # All unique items with their counts 
data.most_common(1) # The highest occurring item: the mode 
+0

Merci d'avoir répondu. J'ai essayé d'utiliser votre solution, cela ne semble pas fonctionner. Cependant c'est ce que j'ai essayé. classer def (self, caractéristiques): votes = [] C dans self._classifiers: v = c.classify (équipement) votes.append (v) = comptage compteur (votes) v = count.most_common (1) retour v – rando