我们可以将fastText与SVM集成在一起吗?

时间:2018-10-01 06:56:07

标签: python machine-learning scikit-learn ensemble-learning

我正在尝试整合三种不同的模型(FastText,SVM和NaiveBayes)。

我想到了使用python来做到这一点。我确信我们可以集成NaiveBayes和SVM模型。但是,我们可以使用python集成fastText吗?

有人可以建议我做同样的事情吗...

2 个答案:

答案 0 :(得分:0)

可用于组合多个模型的方法与要在Python / Java / R中实现它的方式无关。

也许您正在寻找的是Ensemble learning

堆积不同模型的最流行方法之一是堆积(eming),该方法涉及学习有关如何结合已经训练的各个模型的预测的新模型。请参阅使用Python的this教程。

答案 1 :(得分:0)

在用例中您可以,因为您要处理3种模型,所以请记住:

  • 模型使用predict()方法的机制不同:

    • FastText使用带有所有嵌入和.bin的内部文件(例如,扩展名为wordNGrams的序列化模型),您可以直接传递原始文本;

    • SVMNaiveBayes,您必须使用CountVectorizerTfidfVectorizer LabelEncoder来预处理数据,获取结果,然后重新通过LabelEncoder并提供结果。

    • 最后,您将需要处理不同的概率(如果您使用k > 1进行预测),并且可能需要注意这一点

  • 如果要将其序列化到生产环境,则需要腌制SVMNB模型,并对.binFastText model使用@Bean public RestTemplate restTemplate() { final RestTemplate restTemplate = new RestTemplate(); restTemplate.setMessageConverters( Arrays.asList(new BufferedImageHttpMessageConverter())); return restTemplate; } 当然,前者的嵌入也需要实例化。如果您需要近乎实时地进行预测,那么响应时间可能会有些痛苦。