2

我想实现一个 OCR 系统。我需要我的程序在它选择识别的字母上不犯任何错误。如果它不能识别其中很多也没关系(即即使召回率低也可以实现高精度)。

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

无论如何,我正在寻找一种最适合此目的的机器学习算法。如果您也可以为该算法推荐一个库,那就太好了。我更喜欢基于 Python 的解决方案,但我也可以使用 Java。

4

2 回答 2

1

scikit-learn 中的 SVM可以通过在构造对象进行简单的设置来获得概率估计。文档仅警告概率估计可能不是很好。probability=TrueSVC

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

于 2012-08-26T12:13:22.877 回答
0

我见过人们使用神经网络取得了很好的效果,但这已经是几年前的事了。我问了一位专家同事,他说现在人们使用最近邻分类器之类的东西。

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

于 2012-08-24T08:56:51.777 回答