Snorkel: 在生成标注函数和训练分类器时,数据集中可以使用不同的特征吗?

我有一组特征用于构建标注函数(集合A),另一组特征用于训练sklearn分类器(集合B)

生成模型将输出一个概率标签集,我可以用这些标签来训练我的分类器。

我是否需要将用于标注函数的特征(集合A)添加到我的分类器特征中(集合B)?还是只使用生成的标签来训练我的分类器?

我在参考snorkel垃圾邮件教程时,没有看到他们使用标注函数集中的特征来训练新的分类器。

如在cell 47中所见,特征提取完全使用CountVectorizer完成:

from sklearn.feature_extraction.text import CountVectorizervectorizer = 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模型的拟合:

# 定义一个简单的逻辑回归模型,使用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,
)

回答:

我在snorkel的GitHub页面上问了同样的问题,以下是回应:

你不需要将用于LFs的特征(集合A)添加到分类器特征中。为了防止最终模型简单地过度拟合到标注函数,最好是LFs和最终模型的特征(集合A和集合B)尽可能不同

https://github.com/snorkel-team/snorkel-tutorials/issues/193#issuecomment-576450705

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注