定義事件ejl
(jϵ(
0,
1...k)
)e_^ (j\epsilon(0,1...k))
ejl(j
ϵ(0,
1...
k)) 為對於標籤 l,k個鄰居中包換j個這個標籤,則 e為乙個 k*n 的矩陣,每一行為距離該例項的樣本中每個標籤的數量,則[c_(l)]向量是e矩陣的最後一行,表示距離為k時的各個標籤數量。
則我們需要的是在已知e矩陣的前提下求得每個標籤是否存在的最大概率
y x=
argm
axp(
hbl∣
ecx(
l)l)
(bϵ(
0,1)
)y_=argmax\; p(h_b^l | e_^l) (b\epsilon (0,1))
yx=ar
gmax
p(hb
l∣e
cx(
l)l
)(bϵ
(0,1
))通過貝葉斯公式可以得到yx=
argm
axp(
ecx(
l)l∣
hbl)
p(hb
l)(b
ϵ(0,
1)
)y_=argmax\ p(e_^l|h_b^l)p(h_b^l) (b\epsilon (0,1))
yx=ar
gmax
p(ec
x(l
)l∣
hbl
)p(h
bl)
(bϵ(
0,1)
) 其中 [p(h_b^l)] 代表例項是否具有標籤l 的先驗概率,可以用標籤l 在整體資料上的出現次數得到:p(h
1l)=
∑i=1
myxi
mp(^}) = \frac^ y_}
p(h1l
)=m∑
i=1m
yxi
用標籤l存在的數量除以總數量。
後驗概率:
p (e
ctll
∣hbl
)=c[
j]∑p
=0kc
[p
]p(e_}^l|h_b^l) = \frac^c[p]}
p(ect
ll∣
hbl
)=∑p
=0k
c[p]
c[j]
其中從c[j]中的ctl
c_tct
l,即例項的距離為k時有標籤的數量。
c的意思時: 若[ x_n ] 的k』鄰居內有 α
\alpha
α個標籤[l],那麼c[α
\alpha
α] +1 (x
nx_n
xn為全部個體)
表示為計算總體樣本內對於每乙個個體都進行一邊計算,對於乙個標籤是乙個1*k的向量,每乙個元素是整體資料中 如果對於這個個體自己本身有這個標籤並且在距離為[』]內有α
\alpha
α個個體有這個標籤,那麼就在這個向量的第[』]個元素加1,[』]從0到k
c[j]表示的就是所有向量中,k鄰居內有j個元素並且自己有該標籤。(後驗概率的後驗就在這個j,因為對於每個標籤c向量時和整體有關)
∑ p=
0kc[
p]
\sum_^c[p]
∑p=0k
c[p]
為對於該標籤 距離從0到k所有的帶標籤並且自己有標籤的數量總和,那麼我們要求的是距離為k時有α
\alpha
α個的情況。從後驗概率的方面考慮,我們認為對於乙個個體的乙個標籤,對他造成影響的時距離為k以為的k個個體,那麼我們已經知道了在不同距離上有標籤的數量對於個體標籤的影響(如果距離越近有標籤的數量越多那麼可以認為距離對標籤時正相關),c[p]為k以內的對於個體標籤有影響的所有情況,我們要的時k時所佔的比例。
計算出後驗概率以後,我們只需看b=中哪種情況使得這個乘積值最大,若b=1時最大則有標籤,反之則沒有。
機器學習 KNN
posted on 2015 05 21 20 34 in ml 0 comment views 3195 原始碼 決策樹和基於規則的分類器都是積極學習方法 eager learner 的例子,因為一旦訓練資料可用,他們就開始學習從輸入屬性到類標號的對映模型。乙個相反的策略是推遲對訓練資料的建模,直...
機器學習 kNN
0.載入相關模組 import numpy as np import matplotlib.pyplot as plt import pandas as pd import seaborn as sns from sklearn.model selection import train test s...
機器學習 KNN
1 import numpy as np 2from sklearn.neighbors import kneighborsclassifier 3from sklearn.model selection import train test split 4from sklearn.preproces...