最近我正在练习袋装词(Bag of Words):kaggle 入门指南,我想澄清几件事:
使用 vectorizer.fit_transform("*清理后的评论列表*")
现在,当我们在训练评论上准备袋装词数组时,我们使用了fit_predict
在训练评论列表上,现在我知道fit_predict
做了两件事,首先它适应数据并了解词汇表,然后对每篇评论进行向量化。
因此,当我们使用vectorizer.transform("*清理后的测试评论列表*")
时,这只是将测试评论列表转换为每个评论的向量。
我的问题是,为什么不在测试列表上也使用fit_transform
呢?我是说,在文件中说会导致过度拟合,但我认为无论如何都可以使用;让我给你我的观点:
当我们不使用fit_transform
时,我们实质上是说要使用训练评论中最常见的单词来制作测试评论的特征向量。为什么不使用测试本身最常见的单词制作测试特征数组呢?
我的意思是,随机森林在乎吗?如果我们给随机森林训练功能数组和训练情感,让它进行训练并给出对测试 特征数组的预测,它不会只给出情感的预测吗?
fit
(或fit_transform
)不是一个“不太明智的决定”,因为这样会重复劳动 - 这是完全错误的,可能会导致多个下游问题,包括纯编程错误。 - desertnaut