问题描述
我正在尝试训练一个结合了数字,分类和文本特征的模型。 我的问题是要向量化我的文本和分类特征,应该执行以下哪一项操作?
- 出于特征矢量化的目的,即使用
train
和cv
,test
,我将数据分为vectorizor.fit(train)
,vectorizor.transform(cv)
和vectorizor.transform(test)
/ li> - 在整个数据上使用
vectorizor.fit
transform
我的目标是hstack(以上所有功能)并应用 NaiveBayes 。我想我应该在此之前将数据拆分为train_test,以便为NB找到最佳的超参数。
请对此发表一些想法。我是数据科学的新手。
解决方法
如果您要为数据拟合诸如Imputer或Standard Scaler之类的数据,我建议在拆分后执行此操作,因为这样可以避免任何测试数据集泄漏到训练集中。但是,应该能够在整个数据集上安全地完成数据的格式化和简单转换,一键编码之类的事情,并且避免了一些额外的工作。
,我认为您应该在整个数据上使用第二个选项,即vectorizer.fit_transform,因为如果您之前拆分过数据,则可能会发生某些正在测试的数据可能不在训练中的情况,因此在某些情况下,某些类可能无法识别