K最近傍:予測をするためにあなたのまわりにあるものを使うこと

3029 ワード

導入


Kの最も近い隣人も単純にKNNは予測と予測のために見たいポイントの数であると予測を作成するためにポイントを使用して回帰と分類アルゴリズムであることを知っている.これは、回帰と分類のために少し異なって働きます.回帰KNNについては、k個の最近傍の平均値を予測し、分類Knは最隣接クラスの最も一般的なクラスをとる.今、私は私の芸術のスキルをオフに塵をブラシしようとすると視覚的にしてみてください.

上記は、K = 3(3つの最も近い点)を使用して予測されている点である星で分類のために使われるKNNの例です.そして、それがその点まで最も一般のクラスであるので、それが予測された点を赤であると分類します.

距離の計算


だからあなたのポイントは常に2次元プレーン上に存在しないので、より技術的な取得するにはどのように距離が計算されて上を行く.最も一般的な距離は、マンハッタン距離、ユークリッド距離とMinkowski距離であるために使用されます.

マンハッタン距離



マンハッタン距離は、あなたがマンハッタンと数学を聞くとき、あなたが旅行したブロックの量を数えるとき、あなたが何を考えるかについて、正確にしなければなりません.式は、各方向に旅の距離の絶対値の総和です.したがって、我々が位置(0、0)で始まっていて、我々が位置(4 , 5)に移動するならば、それは、5 - 4 - 1 + 2 - 5 .
Pythonでそれを再生したいなら、次のようになります.
# Locations of two points A and B
A = (0, 0)
B = (4, 5)

manhattan_distance = 0

# Use a for loop to iterate over each element
for i in range(2):
    # Calculate the absolute difference and add it
    manhattan_distance += abs(A[i] - B[i])

manhattan_distance
* AとBの座標に多くの番号を追加して再生してくださいし、座標のいずれかの数字の量に範囲を増やす.

ユークリッド距離



これは私たちが計算に多くを追加しているように見えるかもしれませんが、我々は本当に、2つの次元だけでこの式を取ることができません.それは、ちょうどそのピタゴラスの定理です!ユークリッド距離は直線の移動による点間距離である.
ここでPythonで試してみてみましょう.
from math import sqrt 

# Locations of two points A and B
A = (2, 3, 5)
B = (1, -1, 3)

euclidean_distance = 0

# Use a for loop to iterate over each element
for i in range(3):
    # Calculate the difference, square, and add it
    euclidean_distance += (A[i] - B[i])**2

# Square root of the final result 
euclidean_distance = sqrt(euclidean_distance)

euclidean_distance

ミンコスキー距離



それから最後に距離の私は私たちはminkowski距離を持ってカバーします.私はこの距離を計算するための数学にあまりにも多くは、それは実際には、マンハッタンとユークリッド距離の両方を包含していない場合を除き、1とCを交換する場合は、マンハッタンの距離を持っている場合は、2と同じように行う場合は、ユークリッド距離を持っています.minkowski距離はノルムベクトル空間を横切って一般化距離メトリックであるからである.

どのように多くのkを使用する必要があります


だから今我々は距離メトリックを介して行っていると“最近の隣人”を見つけるのアイデアを持っているどのように多くの最も近いポイントを見てみましょう.私たちがあまりに小さいkを選ぶならば、我々は多くの雑音を得て、我々のモデルが「フィットしている」ことに傾くでしょうから、これはトリッキーで、あなたのデータセットに依存することができます.一般的なルールとしては、k = sqrt(n)を使用して、サンプルサイズを指定するだけでなく、クラスの数が偶数の場合、kを奇数とすることが最適です.ここからあなたの最初の値の周りKの異なるモデルを使用してモデルを生成し、エラーレートを比較することができます.

結論


私はこれがあなたに距離が計算される方法と隣人が実際に何であるかとKNNモデルを実行している舞台裏で起こっていることのより良い理解を与えることを望みます.