मैं multilabel डेटा पर एक ग्रिड खोज कर रहा हूँ इस प्रकार है:Multilabel OneVsRestClassifier के लिए ग्रिडशर्च?
#imports
from sklearn.svm import SVC as classifier
from sklearn.pipeline import Pipeline
from sklearn.decomposition import RandomizedPCA
from sklearn.cross_validation import StratifiedKFold
from sklearn.grid_search import GridSearchCV
#classifier pipeline
clf_pipeline = clf_pipeline = OneVsRestClassifier(
Pipeline([('reduce_dim', RandomizedPCA()),
('clf', classifier())
]
))
C_range = 10.0 ** np.arange(-2, 9)
gamma_range = 10.0 ** np.arange(-5, 4)
n_components_range = (10, 100, 200)
degree_range = (1, 2, 3, 4)
param_grid = dict(estimator__clf__gamma=gamma_range,
estimator__clf__c=c_range,
estimator__clf__degree=degree_range,
estimator__reduce_dim__n_components=n_components_range)
grid = GridSearchCV(clf_pipeline, param_grid,
cv=StratifiedKFold(y=Y, n_folds=3), n_jobs=1,
verbose=2)
grid.fit(X, Y)
मैं निम्नलिखित ट्रैसबैक दिखाई दे रही है:
/Users/andrewwinterman/Documents/sparks-honey/classifier/lib/python2.7/site-packages/sklearn/grid_search.pyc in fit_grid_point(X, y, base_clf, clf_params, train, test, loss_func, score_func, verbose, **fit_params)
107
108 if y is not None:
--> 109 y_test = y[safe_mask(y, test)]
110 y_train = y[safe_mask(y, train)]
111 clf.fit(X_train, y_train, **fit_params)
TypeError: only integer arrays with one element can be converted to an index
लगता GridSearchCV अनेक लेबल करने के लिए वस्तुओं की तरह। मुझे इसके आसपास कैसे काम करना चाहिए? क्या मुझे लेबल_बिनेज़र के साथ अद्वितीय वर्गों के माध्यम से स्पष्ट रूप से पुन: प्रयास करना होगा, प्रत्येक उप-अनुमानक पर ग्रिड खोज चलाना चाहिए?
क्या आप 0.12.1 या 0.13 का उपयोग कर रहे हैं? मुझे लगता है कि 0.13 में अपग्रेड करते समय समस्या दूर होनी चाहिए। –
मैं 0.13 की एक देव शाखा का उपयोग कर रहा था। मैं जल्द ही इसे फिर से कोशिश करूंगा। – Maus
यह 0.13 रिलीज और वर्तमान मास्टर में काम करना चाहिए। यदि ऐसा नहीं होता है, तो कृपया github पर कोई समस्या खोलें। –