【问题标题】:What happens if I just 'vectorizer.transform(phrase)' without fitting it?如果我只是'vectorizer.transform(phrase)'而不适合它会发生什么?
【发布时间】:2018-08-04 13:21:01
【问题描述】:

在将短语向量化并将它们放入矩阵形式时,有些事情让我感到困惑。

当您导入 CountVectorizer 或 TfidfVectorizer 时,

.fit & .transform & .fit_transform 函数有什么区别?

我知道 '.fit' 会学习 ngram,拆分成 ngram。

'.transform' 会将其放入短语 x ngram 矩阵中。

'.fit_transform' 作为 .fit 和 .transform 的组合使用

如果是这种情况,如果我只是 vectorize.transform(phrase) 而不拟合会发生什么?

我看到本教程设置了拟合和转换火车数据,但对于测试数据,它仅对预测执行“转换”操作。

提前谢谢大家。

【问题讨论】:

  • 似乎是一个机器学习概念问题。 Fittingtraining 阶段中​​的过程,在该阶段训练必要的权重以与 ngrams(在您的域中)对齐。拟合模型后,transform(在您的域中)在应用于实际测试用例时测试模型的功能。
  • @Jerry 谢谢杰瑞的回复。那么,如果我只是“vectorizer.transform(x_test)”而不拟合它会有什么区别呢?
  • 您使用的框架/编程语言是什么?我可以调查一下,给你一个准确的答案。
  • @Jerry 非常感谢 Jerry,我正在使用 Python。使用烂番茄数据集对电影评论进行情感分析。

标签: transform vectorization sentiment-analysis text-analysis countvectorizer


【解决方案1】:

亮点:

  1. .transform(X) = 将字典特征转换为二维特征矩阵。
  2. .fit_transform(X) = 学习特征名称 + .transform(X)

回答你的问题:

只有在使用.fit 学习了功能后,您才能.transform。直接应用.transform 将忽略.fit 中未包含的任何特征,因此不会输出任何分类结果。

参考资料:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    相关资源
    最近更新 更多