2016-11-19 12 views
0

自分のデータセットのknnアルゴリズムを開発しました。私のデータセットは5000 * 17の値を含んでいます。このデータセットでは、データを検証用に4000、トレーニング用に1000で除算します。 私の質問は最終的に私のエラーパーセンテージはトレーニングデータのための0.0158です。それは私のアルゴリズムがknnに良いことを意味しますか?ıは間違いを犯しましたか?私のアルゴリズムはどう思いますか?knnアルゴリズムエラーパーセンテージ

+0

エラー率は1.58%と仮定していますか?それが0.0158%だったら、それはすばらしい結果になるでしょう。私は1.5%が非常に良い結果だと言っていますが、それはデータとアプリケーションに少し依存します。 –

答えて

0

コメントが長すぎます。

トレーニングセットでk-NN​​を評価することは、正しく行っていない限り、非常に危険です。その理由は、各要素がそれ自身の最も近い隣人であるからです。したがって、このアルゴリズムは不正です。

"k"とは何も指定しません。明らかに、k = 1の場合、最も近いネイバーはアイテム自体(またはおそらく同じキー値を持つアイテム)です。

したがって、コードを自分で作成する場合は、トレーニングインスタンスごとに、それを近隣のセットから除外する必要があります。これは手動で行うことができます。または、検証セットのアルゴリズムを評価し、トレーニングセットの結果を無視することもできます。

実際に、どのアルゴリズムでも、可能ならば、検証のためにトレーニングセットを使用しないでください。

+0

実際には、ポイントの値を毎回変更することでポイント自体は含めませんでした。私はちょうど現在の点までの最小距離を持つk点を見つける。私はこれらのk点の値に基づいて値を与える。私はちょうど最初の実行で小さなエラーを取得し、それは私のアルゴリズムについて疑いがあります。 – Muaa2404

+0

@ Muaa2404。 。 。それについて考えてみてください。訓練セット内の点からそれ自身までの距離は0であるため、常に最寄りのノードに含まれます(または、関係がある場合は少なくとも候補になります)。それは不正行為です。 –