2

OCRシステムを実装したい。プログラムが認識しようとしている文字を間違えないようにする必要があります。それらの多くを認識できないかどうかは関係ありません(つまり、リコールが低くても高精度で問題ありません)。

誰かが私がこれに適したMLアルゴリズムを選択するのを手伝ってもらえますか?私は周りを見回していて、いくつかの紛らわしいものを見つけました。たとえば、SVMについて矛盾するステートメントを見つけました。scikits learn docsで、SVMの確率推定値を取得できないことが言及されました。一方、 WEKAでこれを行うことが可能であるという別の投稿を見つけました。

とにかく、私はこの目的に最適な機械学習アルゴリズムを探しています。アルゴリズムのライブラリも提案できれば素晴らしいと思います。私はPythonベースのソリューションを好みますが、Javaでも問題ありません。

4

2 に答える 2

1

オブジェクトを構築するときに設定するだけで、scikit-learnのSVMから確率の推定値を取得できます。ドキュメントは、確率の見積もりがあまり良くないかもしれないと警告するだけです。probability=TrueSVC

典型的な確率的分類器はロジスティック回帰であるため、試してみてください。ただし、カーネルを使用して複雑な非線形決定境界を学習できるSVMとは異なり、LRは線形モデルであることに注意してください。

于 2012-08-26T12:13:22.877 に答える
0

ニューラルネットワークを使用して良い結果が得られる人を見てきましたが、それはすでに数年前のことです。私は専門家の同僚に尋ねたところ、彼は最近、人々は最近分類器のようなものを使用していると言いました。

scikitまたはWEKAはわかりませんが、半ばまともな分類パッケージには、少なくともk最近傍法が実装されている必要があります。または、自分で実装することもできます。とてつもなく簡単です。それを試してみてください:おそらくあなたが望むよりも精度が低くなりますが、単純な多数決を行う代わりに(つまり、隣人の中で最も頻繁なクラスが勝つ)、隣人の間でより大きなコンセンサスが必要な場合は、わずかな変更を加えることができますクラスを割り当てます(たとえば、ネイバーの少なくとも50%が同じクラスである必要があります)。必要なコンセンサスが大きいほど、リコールを犠牲にして精度が高くなります。

于 2012-08-24T08:56:51.777 に答える