Я новичок в scikits-learn, и я хотел бы использовать cross_validation.cross_val_score
с metrics.precision_recall_fscore_support
, чтобы я мог получить все соответствующие показатели перекрестной проверки без необходимости запуска перекрестной проверки один раз для точности, один раз для точности, один раз для отзыва и один раз для f1. Но когда я пытаюсь это сделать, я получаю ValueError:
from sklearn.datasets import fetch_20newsgroups
from sklearn.svm import LinearSVC
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn import metrics
from sklearn import cross_validation
import numpy as np
data_train = fetch_20newsgroups(subset='train', #categories=categories,
shuffle=True, random_state=42)
clf = LinearSVC(loss='l1', penalty='l2')
vectorizer = TfidfVectorizer(
sublinear_tf=False,
max_df=0.5,
min_df=2,
ngram_range = (1,1),
use_idf=False,
stop_words='english')
X_train = vectorizer.fit_transform(data_train.data)
# Cross-validate:
scores = cross_validation.cross_val_score(
clf, X_train, data_train.target, cv=5,
scoring=metrics.precision_recall_fscore_support)
Вот ошибка:
File "<stdin>", line 3, in <module>
File "sklearn/cross_validation.py", line 1148, in cross_val_score
for train, test in cv)
File "sklearn/externals/joblib/parallel.py", line 514, in __call__
self.dispatch(function, args, kwargs)
File "sklearn/externals/joblib/parallel.py", line 311, in dispatch
job = ImmediateApply(func, args, kwargs)
File "sklearn/externals/joblib/parallel.py", line 135, in __init__
self.results = func(*args, **kwargs)
File "sklearn/cross_validation.py", line 1075, in _cross_val_score
score = scorer(estimator, X_test, y_test)
File "sklearn/metrics/metrics.py", line 1261, in precision_recall_fscore_support
print beta
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Обратите внимание: вам нужна версия .14-git, чтобы использовать параметр оценки в cross_validation.cross_val_score
.
import sklearn
sklearn.__version__
'0.14-git'
sklearn.cross_validation
Банкомат. - person Fred Foo   schedule 03.04.2013