我想实现一个OCR系统。我需要我的程序在选择识别的字母上不犯任何错误。即使它无法识别很多字母也没关系(即,高精度即使召回率低也是可以的)。
有人能帮我选择一个合适的机器学习算法吗?我一直在四处寻找,发现了一些令人困惑的事情。例如,我发现了关于SVM的矛盾说法。在scikits learn文档中,提到我们无法为SVM获得概率估计。然而,我找到了另一篇帖子,说在WEKA中可以做到这一点。
无论如何,我正在寻找最适合此目的的机器学习算法。如果您能推荐一个算法的库,那就太好了。我更喜欢基于Python的解决方案,但我也可以使用Java。
回答:
在scikit-learn中,通过在构建SVC
对象时简单地设置probability=True
,确实可以从SVM中获得概率估计。文档只是警告说这些概率估计可能不是很好。
典型的概率分类器是逻辑回归,所以你可以尝试一下。请注意,LR是一个线性模型,而SVM可以通过使用核函数学习复杂的非线性决策边界。