RのK最近傍アルゴリズム[例を含む究極のガイド]
公開: 2020-03-20RのKNNアルゴリズムは、その汎用性と機能性のために非常に人気があります。 したがって、機械学習を勉強している場合は、その名前を時々聞いたことがあるはずです。 そして、あなたは「RのKNNとは何ですか?」と疑問に思ったに違いありません。 または「どのように機能しますか?」
この記事では、これらの質問に対する答えを見つけ、このトピックを完全に理解するのに役立ちます。 それで、これ以上面倒なことはせずに、飛び込みましょう。
目次
KNNアルゴリズムとは何ですか?
KNNはK最近傍法の略です。 これは、ポイントの隣接するデータポイントの特徴に従って、データポイントをターゲットクラスに分類する教師あり機械学習アルゴリズムです。
マシンでリンゴとオレンジの画像を識別し、それらを区別したいとします。 そのためには、リンゴとオレンジの画像のデータセットを入力する必要があります。 次に、独自の機能を通じて各果物を検出できるようにすることで、データモデルをトレーニングする必要があります。 同様に、リンゴは赤い色で、オレンジは色で認識できます。
データモデルをトレーニングした後、リンゴやオレンジの他の画像を含む新しいデータセットを与えることで、データモデルをテストできます。 現在、KNNアルゴリズムは、トレーニングモデルで検出した機能に従ってリンゴとオレンジを分類することにより、リンゴとオレンジを分離します。
データポイントの特徴を隣接するものと比較して、それらがどれほど類似しているかを確認します。 そして、それらの調査結果に従ってそれらを分類します。

多くの場合、ポイントをグラフにプロットします。 また、2点間の距離を計算するには、異なる数式を使用する必要があります。 2つのデータポイント間の距離を計算するための最も一般的な方法は、ユークリッド距離です。 ポイントに存在するプロパティや属性に関係なく、距離を計算します。
KNNアルゴリズムの機能
RのKNNアルゴリズムの機能は次のとおりです。
- これは、教師あり学習アルゴリズムです。 これは、ラベル付けされた入力データを使用して、データの出力に関する予測を行うことを意味します。
- 簡単な機械学習アルゴリズムです
- 複数の種類の問題にKNNアルゴリズムを使用できます
- ノンパラメトリックモデルです。 これは、データについて何も仮定していないことを意味し、実際のデータに関連する問題を解決するのに非常に役立ちます。
- データポイントを隣接するデータポイントと比較することにより、データを分類します。 簡単に言うと、KNNアルゴリズムの動作は、属性の類似性に基づいています。
- それは怠惰なアルゴリズムのカテゴリーに分類されます。 怠惰なアルゴリズムは、同じものから識別機能を学習する代わりに、トレーニングデータを記憶します。 機械学習アルゴリズムの種類の詳細をご覧ください。
- KNNを使用して、回帰と分類の問題を解決できます。
KNNアルゴリズムは偏りがなく、上記で説明した機能により、多くの問題に対して推奨される選択です。 ただし、すべてに問題があり、KNNも例外ではありません。
このアルゴリズムは、複雑すぎる問題を解決するのには役立ちません。 そのモデルには抽象化プロセスもありません。 適切なモデルの場合、それは怠惰なアルゴリズムであるため、貴重な洞察を見逃す可能性があるため、高品質のデータが必要になります。 高速ですが、データクレンジングにかなりの時間を費やす必要があります。
それはどのように機能しますか?
RのKNNがどのように機能するかを理解するために、別の例を見てみましょう。
データセットに2つのクラスがあるとします。 クラス1には長方形があり、クラス2には円があります。 このアルゴリズムを使用して、入力した新しいデータポイントをこれら2つのクラスのいずれかに割り当てる必要があります。 これを行うには、最初にアルゴリズムの「K」の値を定義する必要があります。 Kは、アルゴリズムが考慮する最も近い隣接点の数を示します。
この例では、Kを4と入力するとします。 また、K = 4の場合、隣接するものは3つの円と1つの長方形です。 この場合、データポイントをクラス2に分類します。これは、ポイントを囲む円の数が長方形よりも多いためです。
近傍が3つの長方形と1つの円である場合、クラス1に分類されます。KNNアルゴリズムが2点間の距離を計算して、誰が最も近い近傍であるかを判断する方法については、すでに説明しました。 この目的のためにユークリッド距離の公式を使用します。

ユークリッド距離の式は次のとおりです。
d(p、q)= d(q、p)= ( q 1 – p 1 ) 2 +( q 2 – p 2 ) 2 …( q n – p n ) 2
ここで、p =(p1、p2、p3、….pn)およびq =(q1、q2、q3、…qn)です。 この式で、「d」は点pとqの間のユークリッド距離を示します。
ご覧のとおり、非常に簡単です。 また、そのシンプルさにより、非常に用途が広く、最も人気のあるアルゴリズムの1つです。 さまざまな問題に使用できます。
RのKNNの例
KNNアルゴリズムのアプリケーションが実際にどこにあるのか疑問に思われるかもしれません。 そのためには、Amazonを見る必要があります。
アマゾンの大きな成功は多くの要因に依存していますが、その中で顕著なものは高度なテクノロジーの使用です。 それらのテクノロジーの1つは、機械学習です。 彼らの推薦システムは、彼らが何億もの収入を生み出すのを助けました。 そして、この推奨システムは、この目的のためにKNNアルゴリズムを使用します。
また読む:機械学習プロジェクトのアイデア

アマゾンで革のジャケットが付いた黒いラングラーのジーンズを購入するとします。 数週間後、別の人がアマゾンから同じジーンズを購入しましたが、その革のジャケットは購入していません。 アマゾンは、あなたと同じような購入パターンを示したので、この人にジャケットの購入を勧めます。
したがって、Amazonのレコメンデーションシステムは、人々の購入パターンに基づいて機能します。 そして、この類似性を理解するために、この原理に基づくKNNアルゴリズムを使用できます。 これで、このアルゴリズムの基本と実際のアプリケーションについて理解できました。 他にも多くの使用例がありますが、とりあえずこれにこだわってみましょう。
世界のトップ大学からデータサイエンスコースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
結論
RのKNNアルゴリズムには多くの用途があります。 そして、この記事を読んだ後、あなたはこのアルゴリズムに精通していると確信しています。 このような機械学習アルゴリズムについて詳しく知りたい場合は、詳細な機械学習コースをご覧ください。
他の側面とは別に、機械学習とそこで使用されるさまざまなアルゴリズムについて多くを学ぶことができます。
Rプログラミング言語は何に使用されますか?
プログラミング言語Rは、統計とデータの視覚化を含む計算のために作成されました。 現在、Rは統計家、データサイエンティスト、データおよびビジネスアナリストによって広く使用されています。 Rのコアには多くの統計機能が組み込まれているため、Rが実行できるコアデータ分析の多くにサードパーティのライブラリは必要ありません。 他の多くのコンピュータプログラミング言語とは異なり、Rは汎用言語ではありません。 したがって、それは本質的に、それが非常にうまく機能する特定の機能を達成するために使用されます。 ただし、Rは、ユーザーによって生成された大量の毎日のデータから有用な洞察を取得するために、すべての業界の企業で広く使用されています。
Rを使用したプログラミングの利点は何ですか?
Rプログラミング言語は、初心者プログラマーとエキスパートプログラマーの両方にさまざまな利点を提供します。 その主な利点には、統計モデルを構築するための機能と使いやすさが含まれます。 次に、Rは並列分散コンピューティングをサポートするオープンソースのプログラミング言語です。 ライセンスや使用料を取得しなくても、どなたでもご利用いただけます。 さらに、さまざまな機能をサポートするための大規模なライブラリが付属しており、プラットフォームに依存しないフレームワークも利便性を高めます。 Rは、効果的なデータクレンジング、Webスクレイピング、およびデータラングリング機能にも使用でき、機械学習モデルの開発に広く使用されています。
KNNがレイジーラーナーアルゴリズムと呼ばれるのはなぜですか?
K最近傍アルゴリズムは、機械学習で使用される最も単純なアルゴリズムの1つです。 しかし、それはしばしば怠惰な学習者と呼ばれます。 この理由は、このアルゴリズムにすべてのトレーニング関連データを提供すると、それ自体をトレーニングするための作業が行われないためです。 識別機能を学習する代わりに、トレーニングデータセット全体を記憶しました。 新しいデータポイントが追加されるたびに、このアルゴリズムはトレーニングセット全体で最近傍を検索します。これにより、予測にかかる時間が常に長くなります。 これにより、多くの場合、計算コストと非常に時間がかかります。