我训练了一个模型,把票分为两类。我在用GradientBoostClassifier。现在,我想调用一个函数,如果我在其中放置任何句子,经过训练的模型会计算出它是第1类还是第2类的概率。我如何编写代码呢?
让我们想象一下,我想用的句子是票据描述:“实验室研究助理正在尝试创建一个临床活动报告”
def function(sentence):
#split the sentence into different words
Counter(" ".join(descr).split()).most_common
#remove stop words in this sentence
sentence.apply(remove_stopwords)
return list(sentence)
ticket = function('Lab Research Assistant is trying to create a Clinical Activity Report')
ticket
model.predict(ticket)
model.predict_proba(ticket)谢谢!
发布于 2022-06-15 05:13:46
注意:我给出了这个答案,假设你已经有了一个分类句子的模型,并给出了一个输出,因为你说过“我训练了一个模型,可以把票分为两类”。
如果您已经有了一个对句子进行分类的模型,就不需要编写另一个函数来确定概率。
由于分类是根据最终输出进行的,这也是概率矩阵。
举个例子,以一个有两个类的案例为例(和你的一样)。然后有两个输出节点。
node 0 --> class 1
node 1 --> class 2
如果节点0输出为0.943,则节点1输出为(1-0.943)。由于概率之和,输出矩阵为0.943,0.057。这个句子属于第一类,当这个类别被确定时,概率也会被确定,甚至在确定这个类别之前。你只要拿到分数就行了。如果您正在使用第三方库,则必须已经有了一个函数。如果您正在从头开始构建一个模型,只需添加一行打印或返回概率分数。非常简单
编辑:
在模型的培训课程中
countvectors = CountVectorizer(max_features = 1500)
X = countvectors.fit_transform(df['CleanDescr'])CountVectorizer已被用于将训练文本数据转换为训练过程中的向量。在将句子传递给谓词之前,您必须使用相同的向量器(具有相同的特性)来转换您想要预测的句子。
https://stackoverflow.com/questions/72625160
复制相似问题