数据处理 - 随机投影和子采样.做所有这些的正确顺序是什么



我正在为负样本和正样本做一个文本二元分类任务,我想包括以下所有内容:

  • 处理数据 ..(如标记化)
  • 功能选择,例如 Chi2
  • 应用随机投影,因为我有一个大的稀疏矩阵 (n_samples: 974, n_features: 19329)
  • 应用缩减采样技术

然后对数据进行分类

我的问题是做所有这些的正确顺序是什么?现在我首先进行下采样,然后对于每个子样本,我将数据馈送到以下内容:

pipeline = Pipeline([
('vectorizer',  CountVectorizer(tokenizer=tokens)),
('chi2', SelectKBest(chi2, k=1000)),
('classifier',SVC()) ])
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)

预测后,我对下一个子样本重复该过程

我只想问,以不同的顺序进行此操作会产生不同的结果还是会给出相同的东西? 例如,将特征提取和选择应用于整个训练数据,然后执行子采样与先进行子采样?

典型的排序是:

  1. 处理数据 ..(例如标记化) - 这始终是第一步,因为以下所有技术都要求数据采用矢量化格式

  2. 特征选择,例如Chi2和应用随机投影,因为我有一个大的稀疏矩阵(n_samples:974,n_features:19329) - 这两种技术都是一般降维过程的一部分,因此它们实际上是同一步骤的一部分,并且没有典型的排序(我实际上建议根本不使用特征选择, 由于此技术会从数据中删除信息,这很少是一个好主意。最好将所有信息都保留在上面并在上面构建一个更强的分类器,而不是通过启发式删除特征来加强弱分类器)。

  3. 应用缩减采样技术 - 此步骤减少了信息量,因此如果应用它(这是一个好主意 - 有很多技术来处理不平衡,但不会减少信息量)它应该在最后可能的时刻 bt

相关内容

  • 没有找到相关文章

最新更新