ML技术用于概率估计的分类

时间:2012-08-24 04:49:17

标签: java python machine-learning weka scikit-learn

我想实现一个OCR系统。我需要我的程序不要在它确实选择识别的字母上犯任何错误。它是否无法识别它们并不重要(即即使调用率低也具有高精度)。

有人可以帮我为此选择合适的ML算法。我一直在环顾四周,发现一些令人困惑的事情。例如,我发现有关SVM的矛盾陈述。在scikits learn docs中,有人提到我们无法获得SVM的概率估计。然而,我发现另一个post表示可以在WEKA中执行此操作。

无论如何,我正在寻找最适合此目的的机器学习算法。如果您也可以为算法建议一个库,那将会很棒。我更喜欢基于Python的解决方案,但我也可以使用Java。

2 个答案:

答案 0 :(得分:1)

可以通过在构造probability=True对象时设置SVC来获取scikit中的SVM的概率估计。文档仅警告概率估计可能不是很好。

典型的概率分类器是logistic regression,所以你可以尝试一下。请注意,LR是一个线性模型,不像SVM可以通过使用内核来学习复杂的非线性决策边界。

答案 1 :(得分:0)

我看到人们使用neural networks效果很好,但这已经是几年前了。我问过一位专家同事,他说现在人们使用像nearest-neighbor分类器这样的东西。

我不知道scikit或WEKA,但任何半体面的分类包都应该至少实现k近邻。或者你可以自己实现它,这非常容易。尝试一下:它可能会比你想要的精度更低,但是你可以稍微修改一下,而不是采取简单的多数投票(即邻居中最常见的类别获胜),你需要在邻居之间达成更大的共识。分配一个类(例如,至少50%的邻居必须属于同一个类)。您需要的共识越大,您的精确度就越大,以回忆为代价。