【问题标题】:NameError : name 'metrics' is not definedNameError:名称“指标”未定义
【发布时间】:2019-12-31 10:21:16
【问题描述】:

它在计算指标的准确性时会出错。我导入了库来计算准确度指标,但它仍然给我错误,即指标名称未定义

from sklearn.feature_extraction.text import TfidfVectorizer
tf_idf_vect = TfidfVectorizer()
reviews_tfidf = tf_idf_vect.fit_transform(x_train['question_text'].values)
reviews_tfidf1 = tf_idf_vect.transform(x_cv['question_text'].values)
reviews_tfidf2 = tf_idf_vect.transform(test['question_text'].values)
from sklearn.model_selection import GridSearchCV
from sklearn.naive_bayes import BernoulliNB
import sklearn.metrics import accuracy_score
b = BernoulliNB()
param_grid = {'alpha':[1000,100,10,1,0.1,0.01,0.001]} #params we need to try on classifier
gsv = GridSearchCV(nb,param_grid,cv=2,verbose=1,n_jobs=-1,scoring='f1')
gsv.fit(reviews_tfidf,y_train)
nb = BernoulliNB(alpha=0.1)
nb.fit(reviews_tfidf,y_train)
train_pred = nb.predict(reviews_tfidf)
cv_pred = nb.predict(reviews_tfidf1)
test_pred = nb.predict(reviews_tfidf2)
print("Train Set Accuracy: {}".format(metrics.accuracy_score(train_pred, y_train)))
print("Train Set ROC: {}".format(metrics.roc_auc_score(train_pred, y_train)))
print("Train Set F1 Score: {}\n".format(metrics.f1_score(train_pred, y_train)))
print("Validation Set Accuracy: {}".format(metrics.accuracy_score(cv_pred, y_cv)))
print("Validation Set ROC: {}".format(metrics.roc_auc_score(cv_pred, y_cv)))
print("Validation Set F1 Score: {}\n".format(metrics.f1_score(cv_pred, y_cv)))
print("Confusion Matrix of test set:\n [ [TN  FP]\n [FN TP] ]\n")
df_cm = pd.DataFrame(confusion_matrix(y_test, y_pred), range(2),range(2))
sns.set(font_scale=1.4)#for label size
sns.heatmap(df_cm, annot=True,annot_kws={"size": 16}, fmt='g')


NameErrorTraceback (most recent call last)
<ipython-input-53-061462cd9519> in <module>()
     16 cv_pred = nb.predict(reviews_tfidf1)
     17 test_pred = nb.predict(reviews_tfidf2)
---> 18 print("Train Set Accuracy: {}".format(metrics.accuracy_score(train_pred, y_train)))
     19 print("Train Set ROC: {}".format(metrics.roc_auc_score(train_pred, y_train)))
     20 print("Train Set F1 Score: {}\n".format(metrics.f1_score(train_pred, y_train)))

NameError: name 'metrics' is not defined

【问题讨论】:

  • 尝试将import sklearn.metrics import accuracy_score改为import sklearn.metrics as metrics
  • 谢谢它对我有用。
  • 当时我将其发布为答案。您是否同意将答案标记为已接受?

标签: python-3.x sklearn-pandas


【解决方案1】:

尝试改变

import sklearn.metrics import accuracy_score 

到:

import sklearn.metrics as metrics

查看此内容以更好地了解导入的工作原理:https://www.codementor.io/sheena/python-path-virtualenv-import-for-beginners-du107r3o1

【讨论】:

  • . 是在 metrics 的末尾吗?
猜你喜欢
  • 2020-05-16
  • 2020-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-24
  • 1970-01-01
  • 2021-04-15
相关资源
最近更新 更多