記事「データサイエンスと機械学習(第09回):K近傍法(KNN)」についてのディスカッション

 

新しい記事「データサイエンスと機械学習(第09回):K近傍法(KNN)」はパブリッシュされました:

これは、訓練データセットから学習しない遅延アルゴリズムです。代わりにデータセットを保存し、新しいサンプルが与えられるとすぐに動作します。シンプルでありながら、実世界でさまざまなケースに応用されています。

K近傍法は、近接性を使用して個々のデータポイントのグループ化に関する分類または予測をおこなうノンパラメトリック教師あり学習分類器です。このアルゴリズムは主に分類問題に使用されますが、回帰問題の解決にも使用できます。データセット内の類似したポイントは互いに近くにあるという仮定により、分類アルゴリズムとしてよく使用されます。近傍法は、教師あり機械学習における最もシンプルなアルゴリズムの1つです。この記事では、アルゴリズムを分類器として構築します。


kNNアルゴリズム

画像ソース:skicit-learn.org

注意事項:

  1. 分類器としてよく使用されますが、回帰にも使用できます。
  2. K-NNはノンパラメトリックアルゴリズムです。つまり、基礎となるデータについて何の仮定も立てません。
  3. 訓練セットから学習しないため、遅延学習アルゴリズムと呼ばれることがよくあります。代わりに、データを保存し、行動時に使用します。
  4. KNNアルゴリズムは、新しいデータと利用可能なデータセットの間の類似性を想定し、利用可能なカテゴリに最も類似しているカテゴリに新しいデータを配置します。

作者: Omega J Msigwa

 
記事掲載おめでとうございます!更新を振り返っています。
 


私の推測が間違っていたら申し訳ないが、 。
void CKNNNearestNeighbors::VectorRemoveIndex(vector &v, ulong index)
 {
   vector new_v(v.Size()-1);
   
   for (ulong i=0, count = 0; i<v.Size(); i++)
      if (i == index)
        {
          new_v[count] = new_v[i];
          count++;
        }
 }
は無駄だと思います。コードはKNN_neareast_neighbors.mqhファイルから引用しています。
特定のインデックスを持つベクトル要素を削除するはずだと思うのですが、元のベクトルには何も起こらず、関数も何も返さないので、何も削除されません。

私が間違っているのでしょうか?