У меня есть набор функций для построения функций маркировки (набор A) и другой набор функций для обучения классификатора sklearn (набор B)
Генеративная модель выведет набор вероятностных c этикеток который я могу использовать для обучения моего классификатора.
Нужно ли мне добавлять функции (набор A), которые я использовал для функций маркировки, в функции классификатора? (набор B) Или просто используйте метки, сгенерированные для обучения моего классификатора?
Я ссылался на учебник по snorkel spam , и я не видел, чтобы они использовали функции в функции маркировки, установленные для обучения новый классификатор.
Как видно из cell 47
, настройка выполняется полностью с использованием CountVectorizer:
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer(ngram_range=(1, 2))
X_train = vectorizer.fit_transform(df_train_filtered.text.tolist())
X_dev = vectorizer.transform(df_dev.text.tolist())
X_valid = vectorizer.transform(df_valid.text.tolist())
X_test = vectorizer.transform(df_test.text.tolist())
А затем прямо к подгонке модели keras:
# Define a vanilla logistic regression model with Keras
keras_model = get_keras_logreg(input_dim=X_train.shape[1])
keras_model.fit(
x=X_train,
y=probs_train_filtered,
validation_data=(X_valid, preds_to_probs(Y_valid, 2)),
callbacks=[get_keras_early_stopping()],
epochs=50,
verbose=0,
)