2024-05-15 21:14:48 发布
网友
我正在尝试集成三种不同的模型(FastText、SVM、NaiveBayes)。在
我想用python来做这个。我确信我们可以集成NaiveBayes和SVM模型。但是,我们可以使用python集成fastText吗?在
有谁能给我提一下同样的。。。在
您可以应用于组合多个模型的方法与在Python/Java/R中实现它的方式无关
也许你要找的是Ensemble learning。在
实现不同模型集成的最流行方法之一是堆叠,这涉及到学习一个新的模型,如何将您已经训练过的各个模型的预测组合起来。请参阅使用Python的this教程。在
在您的用例中,当您处理3个模型时,您应该记住:
模型有不同的机制来使用predict()方法:
predict()
FastText使用一个内部文件(例如扩展名为.bin的序列化模型)和wordNGrams并可以直接传递原始文本;
FastText
.bin
wordNGrams
SVM和NaiveBayes您有义务使用CountVectorizer,TfidfVectorizerLabelEncoder对数据进行预处理,得到结果,重新对LabelEncoder进行传递,并传递结果。
SVM
NaiveBayes
CountVectorizer
TfidfVectorizer
LabelEncoder
最后你需要处理不同的概率(如果你用k > 1)来预测,你可能需要处理好这个
k > 1
如果要将其序列化到生产中,则需要对SVM和NB模型进行pickle,并将.bin用于FastText model,当然,前一个模型中的嵌入也需要实例化。如果您需要进行近乎实时的预测,那么您的响应时间可能会有点困难。
NB
FastText model
您可以应用于组合多个模型的方法与在Python/Java/R中实现它的方式无关
也许你要找的是Ensemble learning。在
实现不同模型集成的最流行方法之一是堆叠,这涉及到学习一个新的模型,如何将您已经训练过的各个模型的预测组合起来。请参阅使用Python的this教程。在
在您的用例中,当您处理3个模型时,您应该记住:
模型有不同的机制来使用
predict()
方法:FastText
使用一个内部文件(例如扩展名为.bin
的序列化模型)和wordNGrams
并可以直接传递原始文本;SVM
和NaiveBayes
您有义务使用CountVectorizer
,TfidfVectorizer
LabelEncoder
对数据进行预处理,得到结果,重新对LabelEncoder
进行传递,并传递结果。最后你需要处理不同的概率(如果你用
k > 1
)来预测,你可能需要处理好这个如果要将其序列化到生产中,则需要对
SVM
和NB
模型进行pickle,并将.bin
用于FastText model
,当然,前一个模型中的嵌入也需要实例化。如果您需要进行近乎实时的预测,那么您的响应时间可能会有点困难。相关问题 更多 >
编程相关推荐