Question mise à jour: Je l'ai fait, mais j'obtiens le même résultat pour la précision et le rappel parce que j'utilise average = 'binary'?Obtention de la même valeur pour Precision and Recall (K-NN) en utilisant sklearn
mais quand je l'utilise en moyenne = 'macro' Je reçois ce message d'erreur:
test Un examen personnalisé messageC: \ Python27 \ lib \ site-packages \ sklearn \ métriques \ classification.py: 976 : DeprecationWarning: A partir de la version 0.18, l'entrée binaire ne sera pas traitée spécialement lors de l'utilisation de précision/rappel/F-score moyennés. S'il vous plaît utilisez average = 'binary' pour signaler uniquement les performances de la classe positive.
. Classe de performance positive », DeprecationWarning)
Voici mon code mis à jour:
path = 'opinions.tsv'
data = pd.read_table(path,header=None,skiprows=1,names=['Sentiment','Review'])
X = data.Review
y = data.Sentiment
#Using CountVectorizer to convert text into tokens/features
vect = CountVectorizer(stop_words='english', ngram_range = (1,1), max_df = .80, min_df = 4)
X_train, X_test, y_train, y_test = train_test_split(X,y,random_state=1, test_size= 0.2)
#Using training data to transform text into counts of features for each message
vect.fit(X_train)
X_train_dtm = vect.transform(X_train)
X_test_dtm = vect.transform(X_test)
#Accuracy using KNN Model
KNN = KNeighborsClassifier(n_neighbors = 3)
KNN.fit(X_train_dtm, y_train)
y_pred = KNN.predict(X_test_dtm)
print('\nK Nearest Neighbors (NN = 3)')
#Naive Bayes Analysis
tokens_words = vect.get_feature_names()
print '\nAnalysis'
print'Accuracy Score: %f %%'% (metrics.accuracy_score(y_test,y_pred)*100)
print "Precision Score: %f%%" % precision_score(y_test,y_pred, average='binary')
print "Recall Score: %f%%" % recall_score(y_test,y_pred, average='binary')
En utilisant le code ci-dessus, je reçois même valeur pour la précision et le rappel
Nous vous remercions de répondre à ma question, très apprécié.
Merci d'avoir répondu, mais j'ai encore quelques problèmes dans le calcul de la précision et de rappel, je reçois le même valeur pouvez-vous jeter un oeil à ma question mise à jour? très apprécié –
Ce n'est pas un problème que vous receviez la même valeur pour les métriques de précision et de rappel. C'est juste une particularité de vos données. Pour ajouter, le message que vous recevez n'est pas une erreur, il indique que votre entrée est binaire, je. e. soit zéro ou un, vous devriez donc utiliser 'average = 'binary'' pour calculer la précision et rappeler les métriques. –