Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于概率估计的最大似然分类技术_Java_Python_Machine Learning_Weka_Scikit Learn - Fatal编程技术网

Java 基于概率估计的最大似然分类技术

Java 基于概率估计的最大似然分类技术,java,python,machine-learning,weka,scikit-learn,Java,Python,Machine Learning,Weka,Scikit Learn,我想实现一个OCR系统。我需要我的程序不要在它选择识别的字母上犯任何错误。如果它不能识别很多,这并不重要(也就是说,即使召回率很低,高精度也是可以的) 有人能帮我选择一个合适的ML算法吗。我一直在四处寻找,发现了一些令人困惑的事情。例如,我发现了关于SVM的自相矛盾的说法。在本文中,有人提到我们无法得到支持向量机的概率估计。然而,我发现另一种说法是,在WEKA中可以做到这一点 无论如何,我正在寻找一种最适合这个目的的机器学习算法。如果你也能为算法推荐一个库,那就太好了。我更喜欢基于Python的

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

有人能帮我选择一个合适的ML算法吗。我一直在四处寻找,发现了一些令人困惑的事情。例如,我发现了关于SVM的自相矛盾的说法。在本文中,有人提到我们无法得到支持向量机的概率估计。然而,我发现另一种说法是,在WEKA中可以做到这一点

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

我见过有人使用它并取得了很好的效果,但那已经是几年前的事了。我问了一位专家同事,他说现在人们使用分类器之类的东西

我不知道scikit或WEKA,但任何半体面的分类包都应该至少实现k近邻。或者你可以自己实现,这简直太容易了。试一试:它的精确度可能比你想要的要低,但是你可以做一点小小的修改,不需要简单的多数票(即邻居中最频繁的班级获胜),你需要邻居之间达成更大的共识来分配班级(例如,至少50%的邻居必须属于同一类别)。您需要的共识越大,您的精确度就越高,这将以召回为代价。

在构建
SVC
对象时,只需设置
probability=True
,就可以从scikit learn中的支持向量机获得概率估计值。文档仅警告概率估计值可能不是很好


典型的概率分类器是,因此您可以尝试一下。但请注意,LR是一个线性模型,与支持向量机不同,支持向量机可以通过使用核来学习复杂的非线性决策边界。

scikit learn和Weka实际上都使用相同的底层支持向量机库。这不会得到直接的概率估计(这就是scikit学习文档所说的),但却解决了另一个学习问题,并使用交叉验证来解决,这需要额外的时间。的第8节给出了算法的详细信息。@Dougal那么,这些概率估计值可靠吗?还是我应该为此类问题使用另一种机器学习技术?此外,我们如何获得未知sam的概率估计值ple使用交叉验证?这不仅仅是直接的交叉验证;请看我上面的链接。我的印象是它们是合理的,但并非完美无瑕,尽管我没有详细研究它们的行为,只是使用了一两次。K-最近邻分类器在很大程度上依赖于图像之间的良好距离函数,并且不善于概括,因此虽然在OCR中这可能不是一个问题,但你的共识听起来很合理。