我使用fasttext train_supervised实用程序根据他们的网页https://fasttext.cc/docs/en/supervised-tutorial.html训练一个分类模型。
model = fasttext.train_supervised(input='train.txt', autotuneValidationFile='validation.txt', autotuneDuration=600)
在我得到模型之后,我怎么能像在sklearn中那样在一组最佳参数训练后探索模型的最佳参数呢?我们总是可以检查这些参数的值,但我找不到任何文档来解释这一点。
我还使用这个训练过的模型对我的数据进行预测
model.predict(test_df.iloc[2, 1])
它将以如下的概率返回标签
(('__label__2',), array([0.92334366]))
我想知道如果我有5个标签,每次进行预测时,每个文本是否有可能获得每个标签的所有概率?与上面的test_df文本一样,比如
model.predict(test_df.iloc[2, 1])
(('__label__2',), array([0.92334366])),(('__label__1',), array([0.82334366])),
(('__label__3',), array([0.52333333])),(('__label__0',), array([0.07000000])),
(('__label__4',), array([0.00002000]))
可以找到任何相关的改变来得到这样的预测结果。任何建议吗?谢谢。
正如您在文档中看到的那样,当使用predict
方法时,您应该指定k
参数以获得top-k预测类。
model.predict("Why not put knives in the dishwasher?", k=5)
输出:
((u'__label__food-safety', u'__label__baking', u'__label__equipment',
u'__label__substitutions', u'__label__bread'), array([0.0857 , 0.0657,
0.0454, 0.0333, 0.0333]))