k近鄰是最為基礎的分類和回歸演算法!他的基本原則就是:對給定的訓練例項點和輸入例項點,首先確定輸入例項點的k
kk個最近鄰訓練例項點,然後利用這k
kk個訓練例項點的類的多數來**輸入例項點的類。簡單的說就是近朱者赤,近墨者黑。該點周圍的k個點絕大部分是紅色的,那麼它是紅色的概率也大。如果絕大部分是黑色的,那麼它也極有可能是黑色的!
kk近鄰法三要素有:
k
kk設特徵空間x
xx是n
nn維實數向量空間 ,xi,
xj∈x
x_, x_ \in \mathcal
xi,xj
∈x,xi=
(xi(
1),x
i(2)
,⋯,x
i(n)
)tx_=\left(x_^, x_^, \cdots, x_^\right)^}
xi=(x
i(1)
,xi
(2)
,⋯,x
i(n)
)t,xj=
(xj(
1),x
j(2)
,⋯,x
j(n)
)tx_=\left(x_^, x_^, \cdots, x_^\right)^}
xj=(x
j(1)
,xj
(2)
,⋯,x
j(n)
)t ,則:x
ix_i
xi,x
jx_j
xj的l
pl_p
lp距離定義為:
l p(
xi,x
j)=(
∑i=1
n∣xi
(i)−
xj(l
)∣p)
1pl_\left(x_, x_\right)=\left(\sum_^\left|x_^-x_^\right|^\right)^}
lp(xi
,xj
)=(
∑i=1
n∣∣
∣xi
(i)
−xj(
l)∣
∣∣p
)p1
p =1
p= 1
p=1 曼哈頓距離
p =2
p= 2
p=2 歐氏距離
p =i
nfp= inf
p=in
f 閔式距離
python實現距離度量
import math
from itertools import combinations
defl
(x, y, p=2)
:# x1 = [1, 1], x2 = [5,1]
iflen
(x)==
len(y)
andlen
(x)>1:
sum=
0for i in
range
(len
(x))
:sum
+= math.
pow(
abs(x[i]
- y[i]
), p)
return math.
pow(
sum,
1/ p)
else
:return
0
scikit-learning 種的knnfrom sklearn.neighbors import kneighborsclassifier
clf_sk = kneighborsclassifier()
clf_sk.fit(x_train, y_train)
clf_sk.score(x_test, y_test)
整體的流 基礎不牢,地動山搖 最小二乘法
第一次聽到最小二乘法是在讀書期間,主要是用來應付期末考試。深入了解它是在擬合曲線的過程中,有的 對最小二乘法進行改進,增加了很多的正則項,以提高擬合度。總的來說,最小二乘法就是最一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配。實現函式的擬合。比如下圖 可以通過最小二乘法計算出函式的...
時間複雜度的計算(基礎不牢,地動山搖)
if foundation is not strong,earth will move and mountain will shake.這個知識點開始沒有太重視,因為做題的時候,肯定會寫自己覺得最優最好的方法啊,就算計算複雜度,過不了,但是這已經是我能寫出的最好的方法了啊,計算了有什麼用呢?但是如果...
C語言(四 指標) 基礎不牢地動山搖!!!
1 指標是什麼?將位址形象化的稱為指標,即位址就是指標,指標就是位址。指標變數是變數 指標變數裡放位址。2 指標定義 指標的定義方式是 type 3 指標 整數 type 指標加1,其實所加的是指標所指向type的大小 即 int p p 1 p sizeof type 指標加n,其實所加的是n倍的...