大多數情況下,利用二維控制項線性是無法分類的,這個時候就需要將維度提高,在更高階的維度進行分類,徑向基函式是變換到高緯度的方法之一。目前,最常用的徑向基函式是高斯核函式,其公式如下:
其中,xc為中心點座標,x為待分類的座標,
||x-xc||為歐幾里得距離,
σ為可調的寬度引數。
python**:
#徑向基函式,gamma=
1/(2*
σ)^2
defrbf(v1,v2,gamma=10):
dv=[v1[i]-v2[i]
fori
inrange
(len
(v1))]
l=veclength(dv)
returnmath.e**(-gamma*l)
#計算||x-xc||^2
defveclength(v):
returnsum
([p**
2forp
inv])
#計算偏移量defgetoffset(rows, gamma=10):
l0 =
l1 =
forrowinrows:
ifrow.match == 0:
else:
sum0 = sum(sum([rbf(v1, v2, gamma)forv1inl0])forv2inl0)
sum1 = sum(sum([rbf(v1, v2, gamma)forv1inl1])forv2inl1)
return(1.0 / (len(l1) ** 2)) * sum1 - (1.0 / (len(l0) ** 2)) * sum0
#分類,計算輸入點到每個類中各個點的徑向基函式,取均值。離count0近則返回0,離count1近則返回1defnlclassify(point, rows, offset, gamma=10):
sum0 = 0.0
sum1 = 0.0
count0 = 0
count1 = 0
forrowinrows:
ifrow.match == 0:
sum0 += rbf(point, row.data, gamma)
count0 += 1
else:
sum1 += rbf(point, row.data, gamma)
count1 += 1
y = (1.0 / count0) * sum0 - (1.0 / count1) * sum1 + offset
ify > 0:
return0
else:
return1
徑向基函式
徑向基函式 在說徑向基網路之前,先聊下徑向基函式 radical basis function,rbf 徑向基函式 radical basis function,rbf 方法是powell在1985年提出的。所謂徑向基函式,其實就是某種沿徑向對稱的標量函式。通常定義為空間中任一點x到某一中心c之間歐...
徑向基函式
徑向基函式是乙個取值僅僅依賴於離原點距離的實值函式,也就是 x x 或者還可以是到任意一點c的距離,c點稱為中心點,也就是 x,c x c 任意乙個滿足 x x 特性的函式 都叫做徑向基函式,標準的一般使用歐式距離 也叫做歐式徑向基函式 儘管其他距離函式也是可以的。在神經網路結構中,可以作為全連線層...
徑向基函式(RBF)
radial basis function 徑向基函式 徑向基函式是乙個取值僅僅依賴於離原點距離的實值函式,也就是 x x 或者還可以是到任意一點c的距離,c點成為中心點,也就是 x,c x c 任意乙個滿足 x x 特性的函式 都叫做徑向量函式,標準的一般使用歐氏距離,儘管其他距離函式也是可以的。...