Natural NPM 包中 BayesClassifier 和 LogisticRegressionClassifier 的区别
Difference between BayesClassifier and LogisticRegressionClassifier in Natural NPM Package
我正在使用 Natural NPM package 进行一些相当简单的文本分析。当我使用 LogisticRegressionClassifier 和 BayesClassifier 处理相同的样本文本(600-2000 字的文章)时,我发现结果之间存在巨大差距。
贝叶斯分类器结果:
mlb
// classifier.getClassifications(data)
[ { label: 'mlb', value: 5.056332563372173e-139 },
{ label: 'nba', value: 5.589251687911356e-164 },
{ label: 'nhl', value: 1.2887446397232257e-165 },
{ label: 'nfl', value: 1.4562872037319007e-167 } ]
mlb // result of classifier.classify(data)
LogisticRegressionClassifier 结果:
mlb
//classifier.getClassifications(data)
[ { label: 'mlb', value: 0.9984418828983803 },
{ label: 'nhl', value: 0.008472129523116049 },
{ label: 'nfl', value: 0.0005530225293869185 },
{ label: 'nba', value: 9.776621359081668e-18 } ]
mlb // result of classifier.classify(data)
显然,LogisticRegressionClassifier 为我提供了更好的结果,但处理每篇文章的时间要长得多。在某些情况下几分钟。我为每个类别使用了 50 篇手选文章。
我的问题是,这两种处理方法之间的根本区别是什么,有没有一种方法可以更好地为 BayesClassifier(这似乎更快)准备我的样本,即。在处理文章之前阻止文章是否有益?还有其他提示或技巧吗?
此外,我知道其中涉及大量试验和错误,但根据经验,是否有大量文章可用于训练算法?我已经尝试了 10-400 的范围,无论样本大小如何,似乎都得到了相对相似的结果。
您可能误解了 getClassifications 函数的输出。对于贝叶斯 classifier,这些数字表示给定标签的文本的概率。对于逻辑回归,数字代表每个 class 给定文本的概率。在这两种情况下,您都应该预测概率最高的 class。这就是这些 classifier 的工作方式。
根据您在此处显示的内容,尚不清楚哪一个会更好地处理您的数据。
我正在使用 Natural NPM package 进行一些相当简单的文本分析。当我使用 LogisticRegressionClassifier 和 BayesClassifier 处理相同的样本文本(600-2000 字的文章)时,我发现结果之间存在巨大差距。
贝叶斯分类器结果:
mlb
// classifier.getClassifications(data)
[ { label: 'mlb', value: 5.056332563372173e-139 },
{ label: 'nba', value: 5.589251687911356e-164 },
{ label: 'nhl', value: 1.2887446397232257e-165 },
{ label: 'nfl', value: 1.4562872037319007e-167 } ]
mlb // result of classifier.classify(data)
LogisticRegressionClassifier 结果:
mlb
//classifier.getClassifications(data)
[ { label: 'mlb', value: 0.9984418828983803 },
{ label: 'nhl', value: 0.008472129523116049 },
{ label: 'nfl', value: 0.0005530225293869185 },
{ label: 'nba', value: 9.776621359081668e-18 } ]
mlb // result of classifier.classify(data)
显然,LogisticRegressionClassifier 为我提供了更好的结果,但处理每篇文章的时间要长得多。在某些情况下几分钟。我为每个类别使用了 50 篇手选文章。
我的问题是,这两种处理方法之间的根本区别是什么,有没有一种方法可以更好地为 BayesClassifier(这似乎更快)准备我的样本,即。在处理文章之前阻止文章是否有益?还有其他提示或技巧吗?
此外,我知道其中涉及大量试验和错误,但根据经验,是否有大量文章可用于训练算法?我已经尝试了 10-400 的范围,无论样本大小如何,似乎都得到了相对相似的结果。
您可能误解了 getClassifications 函数的输出。对于贝叶斯 classifier,这些数字表示给定标签的文本的概率。对于逻辑回归,数字代表每个 class 给定文本的概率。在这两种情况下,您都应该预测概率最高的 class。这就是这些 classifier 的工作方式。
根据您在此处显示的内容,尚不清楚哪一个会更好地处理您的数据。