機器學習一百天 K近鄰演算法

2021-09-17 04:41:21 字數 1643 閱讀 9587

這裡介紹的略簡單了一些,稍後會補上

k近鄰演算法是一種簡單但也最常用的分類演算法,他也可以應用於回歸計算。k-nn是無引數學習,它是基於例項並在乙個有監督的學習環境中使用。

k-nn 用於分類是,輸出是乙個類別,這種方法有三個關鍵因素:一組標記的物件,例如:一組已儲存的記錄、物件之間的距離以及k的值-最近鄰的數量

若要對未標記的物件進行分類,則會計算出該物件標記的物件之間的距離,確定其k近鄰點,然後使用周邊數量最多的最近鄰點的類標籤來確定物件的類標籤。對於實際中輸入的變數,最常用的距離度量是歐氏距離。

歐氏距離被計算為乙個新點和乙個現有點在所有輸入屬性上的差的平方之和的平方根。

歐幾里得距離 - 維基百科,自由的百科全書 歐幾里得距離

求k的值並不是很容易。k值小意味著雜訊會對結果產生較大的影響。而k值大則會使計算成本變高。

#匯入相關庫

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

#匯入資料集

dataset = pd.read_csv('social_network_ads.csv')

x = dataset.iloc[:,[2,3]].values

y = dataset.iloc[:, 4].values

#將資料劃分成訓練集和測試集

from sklearn.model_selection import train_test_split

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size = 0.25,random_state = 0)

#特徵縮放

from sklearn.preprocessing import standardscaler

sc = standardscaler()

x_train = sc.fit_transform(x_train)

x_test = sc.transform(x_test)

#使用k-nn對訓練集資料進行訓練

from sklearn.neighbors import kneighborsclassifier

classifier = kneighborsclassifier(n_neighbors=5,metric='minkowski',p = 2)

classifier.fit(x_train,y_train)

#對測試集進行**

y_pred = classifier.predict(x_test)

#生成混淆矩陣

from sklearn.metrics import confusion_matrix

cm = confusion_matrix(y_test,y_pred)

機器學習 k 近鄰演算法

一.k 近鄰演算法概述 簡單地說,k 近鄰演算法採用測量不同特徵值之間的距離方法進行分類。k 近鄰演算法 knn 它的工作原理是 存在乙個樣本資料集,也稱訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將資料的每個特徵與樣本集合中資...

機器學習 K近鄰演算法

用例一 from sklearn.neighbors import nearestneighbors import numpy as np x np.array 1,1 2,1 3,2 1,1 2,1 3,2 nbrs nearestneighbors n neighbors 2,algorithm...

機器學習 K近鄰演算法

工作原理 存在乙個訓練樣本資料集合,每組資料對應乙個標籤及分類 比如下邊例子為前兩個資料都為a類 輸入測試樣本後通過計算求出測試樣本與訓練樣本的歐氏距離d,取前k個最小的值,這k組資料對應的標籤分類最多的那種,就是測試樣本的標籤。訓練樣本資料 1.0,1.1 1.0,1.0 0,0 0,0.1 歐氏...