0

このコードを試したとき:

import sklearn_crfsuite
from sklearn.model_selection import RandomizedSearchCV

f1_scorer = make_scorer(metrics.flat_f1_score,
                    average='weighted', labels=labels)
params_space = {
 'c1': scipy.stats.expon(scale=0.5),
 'c2': scipy.stats.expon(scale=0.05),
}

crf = sklearn_crfsuite.CRF(
    algorithm='lbfgs',
    max_iterations=100,
    all_possible_transitions=True)

rs = RandomizedSearchCV(crf, params_space,
                    cv=3,
                    verbose=1,
                    n_jobs=-1,
                    n_iter=50,
                    scoring=f1_scorer)

rs.fit(X_train, y_train)

_x = [s.parameters['c1'] for s in rs.grid_scores_]
_y = [s.parameters['c2'] for s in rs.grid_scores_]
_c = [s.mean_validation_score for s in rs.grid_scores_]

エラーが発生します:

AttributeError: 'RandomizedSearchCV' オブジェクトに属性 'grid_scores_' がありません

sklearn-crfsuite バージョン = 0.3.6

4

2 に答える 2

1

cv_results_ の実装は grid_scores_ とは大きく異なります

_x、_y、および _c の適切なセットを抽出するには、以下のコードが機能するはずです

_x = [s['c1'] for s in rs.cv_results_['params']]
_y = [s['c2'] for s in rs.cv_results_['params']]
_c = [s for s in rs.cv_results_['mean_train_score']]
于 2020-08-10T17:39:14.167 に答える