我試圖使用scoring
參數GridSearchCV
中的參數log_loss
來調整此多類(6類)分類器。我不明白如何給它一個label
參數。即使我給它sklearn.metrics.log_loss
,它會改變交叉驗證的每個迭代,所以我不知道如何給它labels
參數?如何在Scikit-Learn(sklearn)中使用`GridSearchCV`中的`log_loss`和多類標籤?
我使用Python v3.6
和Scikit-Learn v0.18.1
如何使用GridSearchCV
與log_loss
多級車型調整?
我班表示:
1 31
2 18
3 28
4 19
5 17
6 22
Name: encoding, dtype: int64
我的代碼:
param_test = {"criterion": ["friedman_mse", "mse", "mae"]}
gsearch_gbc = GridSearchCV(estimator = GradientBoostingClassifier(n_estimators=10),
param_grid = param_test, scoring="log_loss", n_jobs=1, iid=False, cv=cv_indices)
gsearch_gbc.fit(df_attr, Se_targets)
這裏的誤差和滿一個的尾部是在這裏https://pastebin.com/1CshpEBN:
ValueError: y_true contains only one label (1). Please provide the true labels explicitly through the labels argument.
UPDATE : 只需使用這使基於基於@Grr
log_loss_build = lambda y: metrics.make_scorer(metrics.log_loss, greater_is_better=False, needs_proba=True, labels=sorted(np.unique(y)))
在這裏打印你的'Se_targets'。還可以看一下http://scikit-learn.org/stable/modules/model_evaluation.html#multilabel-ranking-metrics –