2

手書きの数字を分類するために、matlab で KNN アルゴリズムを適用しました。数字は、最初は 8*8 のベクトル形式で、引き伸ばされて 1*64 のベクトルを形成します。したがって、最初の数字を残りのすべてのデータセット (非常に大きい) と比較するたびに、2 番目の数字を残りのデータセットなどと比較します。いつも?私はユークリッド距離を使用しているため (より近いものを選択します)、最も近い桁を取得したのに、なぜさらに 2 つまたは 3 つの隣接を選択する必要があるのでしょうか?

ありがとう

4

2 に答える 2

1

ノイズを考慮する必要があります。分類された例のいくつかが間違って分類されていたり、そのうちの 1 つが他の例に奇妙に非常に似ていると仮定します。これらは異なりますが、実際には「グリッチ」にすぎません。このような場合、このオフトラックの例に従って分類すると、間違いにつながる可能性があります。

個人的な経験から、通常は k=3/5/7 で最良の結果が得られますが、これはインスタンスに依存します。

最高のパフォーマンスを達成したい場合は、クロス検証kを使用して、特定のインスタンスに最適なものを選択する必要があります。

kまた、 「引き分け」を避けるために、KNN のように奇数のみを使用するのが一般的です。

于 2012-04-16T13:29:15.063 に答える