什么 Python sklearn 函数可以将非数值作为训练目标?



我正在学习这个例子。

我注意到他们使用了可以接受非数字y_train值的PassiveAggressiveClassifier。我知道在自然语言处理(NLP(中,我们需要将字符串训练文本转换为数字数组作为训练输入,以便神经网络模型可以接受它,但是为什么训练目标不需要转换为数字?还有哪些模型可以采取非数字训练目标?

#Initialize a PassiveAggressiveClassifier
pac=PassiveAggressiveClassifier(max_iter=50)
pac.fit(tfidf_train,y_train) 

这里有 2 件不同的事情:
- 当您执行分类任务时,类别的名称无关紧要,因为它们之间没有距离的概念。例如,如果您正在执行逻辑回归,则可以将肯定答案标记为"是"、"肯定"或"1",将否定答案标记为"否"、"否定"或"0"。这绝对不会影响模型的训练方式。
- 当你训练一个NLP模型时,你想在你的词汇表上定义一些距离。例如,您想知道"car"类似于"bus",但该"car"与"apple"不相似。最好的方法是将它们表示为向量,根据它们的语义含义,这些向量或多或少彼此相距甚远(我们在这里使用向量的欧几里得距离(。这就是为什么我们将这种单词表示形式提供给NLP模型的原因:您希望您的模型理解"汽车"和"公共汽车"是接近的,如果您将它们保留为单词,这是不可能的。

注意:任何分类任务都可以将单词作为标签。

有关单词向量表示(即单词嵌入(的更多详细信息,请参阅 https://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf。

相关内容

最新更新