knn演算法原理

2021-09-24 18:50:53 字數 1319 閱讀 6820

import pandas as pd

import numpy as np

def distance(v1, v2):

"""自實現距離計算

:param v1: 點v1

:param v2: 點v2

:return: 距離

"""# 法一

# ndim = len(v1)

# summary = 0

# for i in range(ndim):

# summary += (v1[i]-v2[i])**2

# dist = np.sqrt(summary)

# 法二

# 借助power進行距離計算

dist = np.sqrt(np.sum(np.power(v1-v2,2)))

return dist

def knn(train, k, test):

"""進行knn自實現

:param train: 訓練集

:param k: 取前幾個

:param test: 測試集

:return: 電影型別**的類別

"""# 進行相似度計算 ---》距離計算

index_num = train.shape[0]

for i in range(index_num):

dist = distance(train.iloc[i, 1:4], test[1:])

# print(dist)

train.ix[i, '歐氏距離'] = dist

train = train.sort_values(by='歐氏距離').iloc[:k, :]

# 對前k行進行眾數統計分析

# print(train['電影型別'].mode()[0])

# print(train)

return train['電影型別'].mode()[0]

# 載入資料

mov = pd.read_excel('電影分類資料.xlsx')

# print(mov)

train = mov.iloc[:, 1:6]

# print(train)

test = mov.columns[-4:]

test = np.array(test)

# print(test)

# 取前5個樣本

k = 5

# 進行knn自實現

y_predict = knn(train, k, test)

print('knn演算法**值:', y_predict)

KNN演算法原理

knn演算法的計算過程 knn演算法的優點和缺點 k最近鄰 k nearest neighbor,knn 演算法核心思想是如果乙個樣本在特徵空間中的k個最臨近的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別。k通常是不大於20的整數。三要素為 k值的選取,距離度量的方式和分類決策規則。對於k值...

KNN演算法原理

k nearestneighbor,翻譯為k最近鄰演算法,是資料探勘演算法中最簡單的一種演算法。我們先用乙個例子體會下。我們很容易知道,這些電影的型別,那麼當有一部新電影出現的時候,可不可以對其進行自動分類了?我們可以把打鬥次數看成 x 軸,接吻次數看成 y 軸,然後在二維的座標軸上,對這幾部電影進...

KNN演算法原理與實現

knn k nearest neighbors 演算法不需要訓練過程,直接利用樣本之間的距離進行分類。演算法的基本過程是 給定乙個測試樣例,分別計算它與訓練集中所有樣本之間的距離,選取距離最小的k個訓練樣本對測試樣例的類別進行投票,最後將得票最多 在k個樣本中最多的類別 作為測試樣例的 類別。需要注...