【发布时间】:2021-09-30 13:31:51
【问题描述】:
它发送: 打印(metrics.classification.accuracy_score(y_test, y_pred))
AttributeError: 模块 'sklearn.metrics' 没有属性 'classification'
我的 sklearn 似乎无法导入“分类”,但我不知道为什么,您能帮帮我吗?
from sklearn import metrics
from sklearn.feature_extraction.text import CountVectorizer, TfidfTransformer
from sklearn.naive_bayes import MultinomialNB, BernoulliNB, GaussianNB
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.linear_model import SGDClassifier
from sklearn.pipeline import Pipeline
DATA_DIR = 'enron'
target_names = ['ham', 'spam']
def get_data(DATA_DIR):
subfolders = ['enron%d' % i for i in range(1,7)]
data = []
target = []
for subfolder in subfolders:
# spam
spam_files = os.listdir(os.path.join(DATA_DIR, subfolder, 'spam'))
for spam_file in spam_files:
with open(os.path.join(DATA_DIR, subfolder, 'spam', spam_file), encoding='ascii', errors='ignore') as f:
data.append(f.read())
target.append(1)
# ham
ham_files = os.listdir(os.path.join(DATA_DIR, subfolder, 'ham'))
for ham_file in ham_files:
with open(os.path.join(DATA_DIR, subfolder, 'ham', ham_file), encoding='ascii', errors='ignore') as f:
data.append(f.read())
target.append(0)
target = np.array(target)
return(data, target)
X, y = get_data(DATA_DIR)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.10, random_state=42)
count_vec = CountVectorizer()
X_train_counts = count_vec.fit_transform(X_train)
tfidf_transformer = TfidfTransformer()
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts)
clf = BernoulliNB().fit(X_train_tfidf, y_train)
X_test_counts = count_vec.transform(X_test)
X_test_tfidf = tfidf_transformer.transform(X_test_counts)
y_pred = clf.predict(X_test_tfidf)
print(metrics.classification_report(y_test, y_pred, target_names=target_names))
print(metrics.classification.accuracy_score(y_test, y_pred))
【问题讨论】:
-
没有像
sklearn.metrics.classification这样的模块。试试sklearn.metrics.accuracy_score。在你的情况下,metrics.accuracy_score因为你已经导入了metrics。 -
sklearn中有sklearn.metrics.classification_report。它是在 0.15 中引入的。我认为他没有正确安装 sklearn 或有旧版本。 scikit-learn.org/stable/modules/generated/…
标签: python classification sklearn-pandas