K近鄰演算法理解及實現(python)

2021-09-02 00:23:46 字數 1096 閱讀 9796

knn的工作原理:給定乙個已知標籤類別的訓練資料集,輸入沒有標籤的新資料後,在訓練資料集中找到與新資料最鄰

近的k個例項,如果這k個例項的多數屬於某個類別,那麼新資料就屬於這個類別。可以簡單理解為:由那些離x最

近的k個點來投票決定x歸為哪一類。

在二維平面下:

在n維空間下,也就是n個特徵值來決定新輸入資料的分類:

其演算法步驟如下:

(1) 計算已知類別資料集中的點與當前點之間的距離;

(2) 按照距離遞增次序排序;

(3) 選取與當前點距離最小的k個點;

(4) 確定前k個點所在類別的出現頻率;

(5) 返回前k個點出現頻率最高的類別作為當前點的**類別。

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import pandas as pa

rowdata=

movie_data=pa.dataframe(rowdata)

def movie_classify(judge_data,movie_data,k):

result=

dist = list((((movie_data.iloc[:6, 1:3] - new_data) ** 2).sum(1)) ** 0.5)

dist_l = pa.dataframe()

dr = dist_l.sort_values(by='dist')[:k]

re = dr.loc[:, 'labels'].value_counts()

return result

str1=input('請輸入該部電影中的打鬥鏡頭次數:')

str2=input('請輸入該部電影中的接吻鏡頭次數:')

new_data=[int(str1),int(str2)]

predicetion=movie_classify(new_data,movie_data,4)

print('這是一部:',predicetion)

k近鄰演算法 理解和使用場景

數學知識歐式距離 使用k近鄰演算法的條件 1.你需要乙個訓練的資料集,這個資料集包含各種特徵值和對應的label值 在使用前需要將各種特徵值 歸一化處理。2.利用訓練的資料集來對要分類的資料進行分類 根據歐式距離計算出要 的資料與訓練資料集中距離最短的前k個值,然後根據前k個值對應的label 統計...

k近鄰演算法及python實現

k近鄰演算法是機器學習中最簡單的一種演算法,簡單粗暴,給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最鄰近的k個例項,把這k個例項中出現最多的類作為輸入例項的類。對於初學者可能會好奇,這個近鄰是什麼意思?例如調查一群人的資訊,會對研究目標調查多個特徵,記錄人的頭髮長度 身高 年齡 體...

k近鄰演算法matlab實現 K 近鄰演算法(一)

k 近鄰演算法是採用不同特徵之間的距離方法進行分類。優點 精度高 對異常值不敏感 無資料輸入假定 缺點 計算複雜度高 空間複雜度高 k 近鄰演算法的一般流程 1 收集資料集 可以使用任何方法 2 準備資料集 距離計算所需要的數值,最好是結構化的資料格式 3 分析資料 可以使用任何方法 4 訓練資料集...