%%time
# define fixed parameters and parameters to search
crf = sklearn_crfsuite.CRF(
algorithm='lbfgs',
max_iterations=1000,
all_possible_transitions=True
)
params_space = {
'c1': scipy.stats.expon(scale=0),
'c2': scipy.stats.expon(scale=500),
}
# use the same metric for evaluation
f1_scorer = make_scorer(metrics.flat_f1_score,
average='weighted', labels=labels)
# search
rs = RandomizedSearchCV(crf, params_space,
cv=3,
verbose=20,
n_jobs=-1,
n_iter=4,
return_train_score=True,
scoring=f1_scorer)
rs.fit(X_train, y_train)
print(rs.best_score_)
print(rs.best_estimator_.get_params())
مرحبا
في هذا الكود يوجد params_space وهي مجال القيم التي سينتج عنها تحديد أفضل قيمتين c1 وc2 لخوارزمية crf
crf = sklearn_crfsuite.CRF(algorithm= 'lbfgs',
c1=0, #القيمة الافتراضية
c2=1,#القيمة الافتراضية
max_iterations=1000,
all_possible_transitions=True)
crf.fit(X_train, y_train)
مجال القيم هذا توجد فيه أرقام لا أفهمها ولا أفهم إلام ترمز ولماذا كلما صغرت كانت النتيجة أدق ؟ وهل لها مقابل بالنسبة المئوية ؟ يعني لو وضعت 0.5 ماذا تعني وليكن ذلك موضحا على محورين x y أود أن أفهمها حقيقة كما فهمت أن n_iter=4 كلما زادت كلما كان فرص الحصول على قيم أدق أفضل.
شكرا لكم