概述
问题
在优化问题中,有一种常见的问题:已知样本集合,求拟合直线。拟合直线的一个选取原则是使样本点到拟合直线的距离最短。这里就是研究在 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|
OA∗z=(e+p)z=ez+pz=ez+0=ez=∣z∣∣e∣
这说明求得一个法向量
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=a−x
由于
0
=
W
T
(
X
+
W
∣
∣
W
∣
∣
2
b
)
0=W^T(X+frac{W}{||W||^2}b)
0=WT(X+∣∣W∣∣2Wb),所以直线的一个法向量为:
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=a−x=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||
WT∗XA=WTp+WTe=WTe=∣∣W∣∣∣∣e∣∣
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
WT∗XA=WT(a−x)=WTa−WTx=WTa+b
所以点到直线的距离为:
∣
W
T
+
b
∣
∣
∣
W
∣
∣
frac{|W^T+b|}{||W||}
∣∣W∣∣∣WT+b∣
最后
以上就是饱满萝莉为你收集整理的n维点到直线的距离问题解答的全部内容,希望文章能够帮你解决n维点到直线的距离问题解答所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复