【发布时间】:2021-11-11 20:39:42
【问题描述】:
我有一个假新闻检测问题,它通过向量化“tweet”列来预测二进制标签“1”和“0”,我使用三种不同的模型进行检测,但我想使用集成方法来提高准确性但他们使用不同的vectorezer。
我有 3 个 KNN 模型,第一个和第二个使用 TF-IDF 对“推文”列进行矢量化。
from sklearn.feature_extraction.text import TfidfVectorizer
vector = TfidfVectorizer(max_features =5000, ngram_range=(1,3))
X_train = vector.fit_transform(X_train['tweet']).toarray()
X_test = vector.fit_transform(X_test['tweet']).toarray()
对于第三个模型,我使用 fastText 进行句子向量化
%%time
sent_vec = []
for index, row in X_train.iterrows():
sent_vec.append(avg_feature_vector(row['tweet']))
%%time
sent_vec1 = []
for index, row in X_test.iterrows():
sent_vec1.append(avg_feature_vector(row['tweet']))
缩放后...我的第三个模型适合这样的输入
scaler.fit(sent_vec)
scaled_X_train= scaler.transform(sent_vec)
scaled_X_test= scaler.transform(sent_vec1)
.
.
.
knn_model1.fit(scaled_X_train, y_train)
现在我想像这样组合三个模型,我希望 ensemble 方法给我大多数就像
VotingClassifier,但我不知道如何处理不同的输入(TF-IDF & fastText) 还有其他方法吗?
【问题讨论】:
标签: python machine-learning nlp tf-idf ensemble-learning