K近鄰演算法

2021-09-16 22:40:42 字數 2441 閱讀 1735

一、特點

(1)思想極度簡單

(2)應用數學知識少

(3)效果好

(4)可以解釋機器學習演算法使用過程中的很多細節問題

(5)更完整的刻畫機器學習應用的流程

二、相關概念

1、尤拉距離:

2、曼哈頓距離:

3、明可夫斯基距離(p是乙個超引數):

4、(1)k近鄰演算法是非常特殊的,可以被認為是沒有模型的演算法。

(2)為了和其他演算法統一,可以認為訓練資料集就是模型本身。

5、、分類的準確度:accuracy

6、、(1)超引數:在演算法執行前需要決定的引數

(2)模型引數:演算法過程中學習的引數

(3)knn演算法沒有模型引數

(4)knn演算法中的k 就是典型的超引數

三、資料歸一化

(1)最值歸一化:把所有資料對映到0-1之間

(2)最值歸一化適用於分布有明顯邊界的情況,受outlier(邊界)影響較大

(3)均值方差歸一化:把所有資料歸一到均值為0方差為1 的分布中

(4)均值方差歸一化適用於分布沒有明顯邊界的情況,即可能存在極端資料值

四、k鄰近演算法的實現

import numpy as np

import matplotlib.pyplot as plt

from math import sqrt

from collections import counter

raw_data_x=[[

3.393533211

,2.331273381],

[3.110073483

,1.781539638],

[1.343808831

,3.368360954],

[3.582294042

,4.679179110],

[2.280362439

,2.866990263],

[7.423436942

,4.969522875],

[5.745051997

,3.533989803],

[9.172168622

,2.511101045],

[7.792783481

,3.424088941],

[7.939820817

,0.791637231]]

raw_data_y=[0

,0,0

,0,0

,1,1

,1,1

,1]x_train=np.array(raw_data_x)

y_train=np.array(raw_data_y)

x=np.array(

[8.093607318

,3.365731514])

#繪製散點圖

plt.scatter(x_train[y_train==0,

0],x_train[y_train==0,

1],color=

'g')

plt.scatter(x_train[y_train==1,

0],x_train[y_train==1,

1],color=

'r')

plt.scatter(x[0]

,x[1

],color=

'b')

plt.show(

)#找到最鄰近的點

distances=

[sqrt(np.

sum(

(x_train-x)**2

))for x_train in x_train]

nearest=np.argsort(distances)k=6

topk_y=

[y_train[i]

for i in nearest[

:k]]

#計算不同點的個數

votes=counter(topk_y)

#找到票數最多的點

votes.most_common(1)

#找到**的值

predict_y=votes.most_common(1)

[0][

0]

k 近鄰演算法

此文章參考機器學習實戰一書,具體的理論知識可以參考該書。本文的初衷只是為了做乙個複習,將學過的知識加以整理,其中不免有一定的錯誤。2.k 近鄰演算法的原理介紹 k 近鄰演算法通過測量不同的特徵值之間的距離進行分類。它的工作原理如下 存在乙個樣本的資料集合,也成為訓練樣本集合。並且樣本集中的每個資料都...

K 近鄰演算法

k 近鄰演算法採用測量不同特徵值之間的距離方法進行分類。優點 精度高 對異常值不敏感 無資料輸入假定 缺點 計算複雜度高 空間複雜度高 適用資料範圍 數值型和標稱型 工作原理 存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入...

K 近鄰演算法

首先,我們將 k 近鄰演算法的基本理論 其次我們將使用python從文字檔案中匯入並解析資料 再次,討論當存在許多資料 的時,如何避免計算距離時可能碰到的一些常見錯誤 最後,利用實際的例子講解如何使用k 近鄰演算法改進約會 1.1 knn演算法 工作原理 存在乙個樣本資料集合,也稱作訓練樣本集,並且...