徑向基函式分類

2021-08-18 15:12:01 字數 1942 閱讀 2764

大多數情況下,利用二維控制項線性是無法分類的,這個時候就需要將維度提高,在更高階的維度進行分類,徑向基函式是變換到高緯度的方法之一。目前,最常用的徑向基函式是高斯核函式,其公式如下:

其中,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近則返回1

defnlclassify(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 特性的函式 都叫做徑向量函式,標準的一般使用歐氏距離,儘管其他距離函式也是可以的。...