基礎不牢,地動山搖 K近鄰演算法 KNN

2021-09-25 15:40:03 字數 2097 閱讀 2093

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 種的knn
from 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倍的...