2013-02-18 2 views
3

Как это possbile этот демонстрационный код (взято отсюда: http://scikit-learn.org/dev/auto_examples/grid_search_digits.html)
TypeError: __init__() got an unexpected keyword argument 'scoring' когда obviuodly скоринг является параметром (http://scikit-learn.org/dev/modules/generated/sklearn.grid_search.GridSearchCV.html#sklearn.grid_search.GridSearchCV)?TypeError: __init __() получил неожиданный аргумент ключевого слова «забивая»

from __future__ import print_function 

from sklearn import datasets 
from sklearn.cross_validation import train_test_split 
from sklearn.grid_search import GridSearchCV 
from sklearn.metrics import classification_report 
from sklearn.svm import SVC 

print(__doc__) 

# Loading the Digits dataset 
digits = datasets.load_digits() 

# To apply an classifier on this data, we need to flatten the image, to 
# turn the data in a (samples, feature) matrix: 
n_samples = len(digits.images) 
X = digits.images.reshape((n_samples, -1)) 
y = digits.target 

# Split the dataset in two equal parts 
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.5, random_state=0) 

# Set the parameters by cross-validation 
tuned_parameters = [{'kernel': ['rbf'], 'gamma': [1e-3, 1e-4], 
       'C': [1, 10, 100, 1000]}, 
       {'kernel': ['linear'], 'C': [1, 10, 100, 1000]}] 

scores = ['precision', 'recall'] 

for score in scores: 
    print("# Tuning hyper-parameters for %s" % score) 
    print() 

    clf = GridSearchCV(SVC(C=1), tuned_parameters, scoring=score) 
    clf.fit(X_train, y_train, cv=5) 

    print("Best parameters set found on development set:") 
    print() 
    print(clf.best_estimator_) 
    print() 
    print("Grid scores on development set:") 
    print() 
    for params, mean_score, scores in clf.grid_scores_: 
     print("%0.3f (+/-%0.03f) for %r" 
      % (mean_score, scores.std()/2, params)) 
    print() 

    print("Detailed classification report:") 
    print() 
    print("The model is trained on the full development set.") 
    print("The scores are computed on the full evaluation set.") 
    print() 
    y_true, y_pred = y_test, clf.predict(X_test) 
    print(classification_report(y_true, y_pred)) 
    print() 

# Note the problem is too easy: the hyperparameter plateau is too flat and the 
# output model is the same for precision and recall with ties in quality. 
+0

вы можете дать полную обратное прослеживание и номер версии scikit? –

ответ

7

Параметр scoring нового в 0.14 версии разработки и пример кода для этой версии. Установленный вами scikit, вероятно, является версией 0.13 или более ранней версией, которая не имеет параметра оценки.

+0

Для Windows я нашел только 0.13: http://sourceforge.net/projects/scikit-learn/files/. Если я не использую параметр оценки в примере кода, как результаты сильно меняются? – postgres

+5

@postgres: [соответствующий пример в документации по 0.13] (http://scikit-learn.org/0.13/auto_examples/grid_search_digits.html). –

+0

Текущий выпуск 0.13. Версия 0.14 - это версия разработки, о которой указывал Ли Райан, нет никаких бинарных файлов или чего-то еще, поскольку она меняется ежедневно. –

1

Вы управляете выпуском разработки?

Например, параметр не поддерживается в 0.12

Смежные вопросы