Starfruit Python機械学習6-kNNアルゴリズム1:ユークリッド距離の公式

私のCSDNブログの列:https://blog.csdn.net/yty_7

Githubアドレス:https://github.com/yot777/

 

散布図の直感的なソリューションのアイデア:近い

前のセクションに戻る:Carambola Python Machine Learning 5では、最終的に次の散布図が得られました。

青いドット(1のラベル)は図の左下に集中しているように見え、オレンジのドット(0のラベル)図の右上に集中しているようです

散布図にさらに2つの点AとBを追加して、それらのラベルがどうあるべきかを考えます。

学生は答えを推測した可能性があります:

ポイントA 青いポイントに近く、ラベル1である必要があります

ポイントB オレンジのポイントに近く、ラベル0である必要があります

近い」というのは直感的な感じですが、もっと科学的な計算はありますか?もちろんあります!これはユークリッド距離の式です。

一次元距離測定

図に示すように、最初に1次元の直線を例にとります。

図に示すように、1次元の線上にAとBの2つの点があり、点Aが位置0にあり、点Bが位置5にあります。ポイントAとポイントBの間の距離は次のとおりです:| AB | = | 5-0 | = 5

次に、2に点Cを追加します。どちらの点が近いですか?

答えは明白です。2点間の距離を計算して結果を確認します。

ポイントCからポイントAまでの距離は、| CA | = | 2-0 | = | 2 | = 2

ポイントCからポイントBまでの距離は、| CB | = | 2-5 | = | -3 | = 3(絶対値)

| CA | <| CB |なので、点Cは点Aに近い。

一般に、x_ {1}、x_ {2} 1次元の2点間の距離は次のとおりです。 | x_ {1} -x_ {2} |

二次元距離測定

次の図に示すように、問題をもう少し複雑にして、1次元の線から2次元の平面に拡張します。

点Aの位置座標は(0、0)で、点Bの位置座標は(3、4)です。AB間の距離(つまり、赤い線の長さ)はどのくらいですか?

一部の学生は一度にそれに気づいたかもしれません:これはピタゴラスの定理ではありませんか?3つのストランド、4つのストリング、5つのストリングをフックします!その通り!具体的な計算は次のとおりです。

 |  AB |  = \ sqrt {\ left(x_ {B}-x_ {A} \ right)^ {2} + \ left(y_ {B}-y_ {A} \ right)^ {2}} = \ sqrt {\ left (3- 0 \ right)^ {2} + \ left(4- 0 \ right)^ {2}} = \ sqrt {25} = 5

つまり、2次元平面上の2点間の距離の式は、横座標の差の2乗に縦座標の差の2乗を加算したものであり、ルート記号を使用できます。

ここで、上の図にポイントCを追加します。位置座標は(5、2)であり、ポイントCからポイントAおよびBまでの距離(つまり、青とオレンジの線の長さ)を求めます。

2次元平面上の2点間の距離の式に、点A、点B、および点Cの座標を代入します。

|  CA | = \ sqrt {\ left(x_ {C}-x_ {A} \ right)^ {2} + \ left(y_ {C}-y_ {A} \ right)^ {2}} = \ sqrt { \ left(5- 0 \ right)^ {2} + \ left(2- 0 \ right)^ {2}} = \ sqrt {29}

|  CB | = \ sqrt {\ left(x_ {C}-x_ {B} \ right)^ {2} + \ left(y_ {C}-y_ {B} \ right)^ {2}} = \ sqrt { \ left(5- 3 \ right)^ {2} + \ left(2- 4 \ right)^ {2}} = \ sqrt {8}

| CB | <| CA |なので、点Cは点Bに近い。 

三次元距離測定

数式を直接入力します。興味のある生徒は自分で描画して描画できます。

|  AB |  = \ sqrt {\ left(x_ {B}-x_ {A} \ right)^ {2} + \ left(y_ {B}-y_ {A} \ right)^ {2} + \ left(z_ {B }-z_ {A} \ right)^ {2}}

3次元距離の式は、2次元距離の式に基づいて垂直寸法zを追加するだけであることに注意してください。

各次元間の距離は、差の2乗として計算され、すべての次元の差の2乗が合計され、最後に平方根が算出されます。

3Dが立方体のルーツだとは思わないでください!

n次元の距離測定:ユークリッド距離の式

3次元を超えると直感的な描画で距離を表現することが難しくなります。計算方法は?

最初のステップでは、1D、2D、3D中点の座標をベクトル表現に抽象化する必要があります。

\ boldsymbol {a} = \ begin {pmatrix} a_ {1} \\ a_ {2} \\ a_ {3} \\ ... \\ a_ {n} \\ \ end {pmatrix}   、 \ boldsymbol {b} = \ begin {pmatrix} b_ {1} \\ b_ {2} \\ b_ {3} \\ ... \\ b_ {n} \\ \ end {pmatrix}

ここでも、ベクトルは小文字で表さ行列は大文字で表さます

1次元の前に\ boldsymbol {a} = \ begin {pmatrix} a_ {1} \ end {pmatrix} =(0)例、\ boldsymbol {b} = \ begin {pmatrix} b_ {1} \ end {pmatrix} =(5)、、\ boldsymbol {c} = \ begin {pmatrix} c_ {1} \ end {pmatrix} =(2)

|  AB |  = \ sqrt {\ left(a_ {1}-b_ {1} \ right)^ {2}} = \ sqrt {\ left(0- 5 \ right)^ {2}} = 5

2次元の前に\ boldsymbol {a} = \ begin {pmatrix} a_ {1} \\ a_ {2} \ end {pmatrix} = \ begin {pmatrix} 0 \\ 0 \ end {pmatrix}例、\ boldsymbol {b} = \ begin {pmatrix} b_ {1} \\ b_ {2} \ end {pmatrix} = \ begin {pmatrix} 3 \\ 4 \ end {pmatrix}、、\ boldsymbol {c} = \ begin {pmatrix} c_ {1} \\ c_ {2} \ end {pmatrix} = \ begin {pmatrix} 5 \\ 2 \ end {pmatrix}

|  AB |  = \ sqrt {\ left(a_ {1}-b_ {1} \ right)^ {2} + \ left(a_ {2}-b_ {2} \ right)^ {2}} = \ sqrt {\ left (0- 3 \ right)^ {2} + \ left(0- 4 \ right)^ {2}} = 5

三次元で

|  AB |  = \ sqrt {\ left(a_ {1}-b_ {1} \ right)^ {2} + \ left(a_ {2}-b_ {2} \ right)^ {2} + \ left(a_ {3 }-b_ {3} \ right)^ {2}}

n次元に一般化すると、距離の式は次のようになります。

|  AB |  = \ sqrt {\ left(a_ {1}-b_ {1} \ right)^ {2} + \ left(a_ {2}-b_ {2} \ right)^ {2} + \ left(a_ {3 }-b_ {3} \ right)^ {2} + ... + \ left(a_ {n}-b_ {n} \ right)^ {2}} = \ sqrt {\ sum_ {i = 1} ^ {n} \左(a_ {i}-b_ {i} \右)^ {2}}

これはユークリッド距離の式です。

このセクションの元の分類問題に戻ります。

ユークリッド距離の公式を使用して、点Aから散布図の各点までの距離を取得できます。

距離が取れたら?次のセクションの説明をご覧ください。

 

まとめ

散布図の直感的な解決策:より近い点を見つけます。

ユークリッド距離の式:

|  AB |  = \ sqrt {\ left(a_ {1}-b_ {1} \ right)^ {2} + \ left(a_ {2}-b_ {2} \ right)^ {2} + \ left(a_ {3 }-b_ {3} \ right)^ {2} + ... + \ left(a_ {n}-b_ {n} \ right)^ {2}} = \ sqrt {\ sum_ {i = 1} ^ {n} \左(a_ {i}-b_ {i} \右)^ {2}}

一次元では:

|  AB |  = |  a-b |

2次元では:

|  AB |  = \ sqrt {\ left(a_ {x}-b_ {x} \ right)^ {2} + \ left(a_ {y}-b_ {y} \ right)^ {2}}

三次元では:

|  AB |  = \ sqrt {\ left(a_ {x}-b_ {x} \ right)^ {2} + \ left(a_ {y}-b_ {y} \ right)^ {2} + \ left(a_ {z }-b_ {z} \ right)^ {2}}

 

私のCSDNブログの列:https://blog.csdn.net/yty_7

Githubアドレス:https://github.com/yot777/

この章があなたに役立つと思うなら、フォローして、コメントして、いいね!Githubはあなたのフォローとスターを歓迎します!

公開された55元の記事 ウォン称賛16 ビュー6111

おすすめ

転載: blog.csdn.net/yty_7/article/details/105464008