我是靠谱客的博主 饱满萝莉,最近开发中收集的这篇文章主要介绍n维点到直线的距离问题解答,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

问题

在优化问题中,有一种常见的问题:已知样本集合,求拟合直线。拟合直线的一个选取原则是使样本点到拟合直线的距离最短。这里就是研究在 n n n维样本点 [ x 1 , x 2 , . . . , x n ] [x_1,x_2,...,x_n] [x1,x2,...,xn] n n n维直线的距离。我采用向量研究这个问题,向量在多维情形下易于理解。

解答

二维向量

先考虑二维向量的情形,即二维平面的的点 A ( x 0 , y 0 ) A(x_0,y_0) A(x0,y0)到直线 l : 0 = w 1 x + w 2 y + b l:0=w_1x+w_2y+b l:0=w1x+w2y+b的距离.原点 O ( 0 , 0 ) O(0,0) O(0,0),所以向量 O A = ( x 0 , y 0 ) OA=(x_0,y_0) OA=(x0,y0),如果把OA沿直线 l l l作正交分解,即分解为垂直于直线与平行直线两部分,那么 O A = e + p OA=e+p OA=e+p,其中 e e e垂直于 l l l p p p平行于 l l l. e e e的长度就是点到直线的距离。
现在假设直线l的一个法向量为z,那么ez平行,所以
O A ∗ z = ( e + p ) z = e z + p z = e z + 0 = e z = ∣ z ∣ ∣ e ∣ OA*z=(e+p)z=ez+pz=ez+0=ez=|z||e| OAz=(e+p)z=ez+pz=ez+0=ez=ze
这说明求得一个法向量 z z z,就可以得到点到直线的距离了。

n维向量

如下图所示,设有:
A : [ a 1 , a 2 , . . . , a n ] T = a A:[a_1,a_2,...,a_n]^T=a A:[a1,a2,...,an]T=a,
直线方程: W T X + b = 0 , W T = [ w 1 , w 2 , . . . , w n ] W^TX+b=0,W^T=[w_1,w_2,...,w_n] WTX+b=0,WT=[w1,w2,...,wn]
向量 O A = [ a 1 , a 2 , . . . , a n ] T OA=[a_1,a_2,...,a_n]^T OA=[a1,a2,...,an]T
向量 O X = [ x 1 , x 2 , . . . , x n ] = x OX=[x_1,x_2,...,x_n]=x OX=[x1,x2,...,xn]=x
则向量 X A = a − x XA=a-x XA=ax
由于 0 = W T ( X + W ∣ ∣ W ∣ ∣ 2 b ) 0=W^T(X+frac{W}{||W||^2}b) 0=WT(X+W2Wb),所以直线的一个法向量为: W T W^T WT
向量XA在直线的法向量 W T W^T WT上的投影即为A到直线的距离。
XA可分解为平行( p p p)和垂直( e e e)于直线的两部分: X A = a − x = p + e XA=a-x=p+e XA=ax=p+e
计算两个向量的点积:
W T ∗ X A = W T p + W T e = W T e = ∣ ∣ W ∣ ∣ ∣ ∣ e ∣ ∣ W^T*XA=W^Tp+W^Te=W^Te=||W||||e|| WTXA=WTp+WTe=WTe=We
W T ∗ X A = W T ( a − x ) = W T a − W T x = W T a + b W^T*XA=W^T(a-x)=W^Ta-W^Tx=W^Ta+b WTXA=WT(ax)=WTaWTx=WTa+b

所以点到直线的距离为:
∣ W T + b ∣ ∣ ∣ W ∣ ∣ frac{|W^T+b|}{||W||} WWT+b

在这里插入图片描述

最后

以上就是饱满萝莉为你收集整理的n维点到直线的距离问题解答的全部内容,希望文章能够帮你解决n维点到直线的距离问题解答所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部