knn演算法 k近鄰演算法demo 5 距離權重

2021-10-25 02:20:26 字數 1517 閱讀 6219

knn演算法 加上距離權重

from sklearn import datasets#引入資料集,sklearn包含眾多資料集

from sklearn.model_selection import train_test_split#將資料分為測試集和訓練集

from sklearn.neighbors import kneighborsclassifier#利用鄰近點方式訓練資料\

from sklearn.metrics import accuracy_score

import matplotlib as mpl

import matplotlib.pyplot as plt

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

digits=datasets.load_digits()

# print(digits.keys())

# print(digits.descr)

x=digits.data

y=digits.target

# some_digit=x[666]

# some_digit_image=some_digit.reshape(8,8)

# plt.imshow(some_digit_image,cmap=mpl.cm.binary)

# plt.show()

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2)#利用train_test_split

# myknn=kneighborsclassifier(n_neighbors=3)

# myknn.fit(x_train,y_train)

# y_predict=myknn.predict(x_test)

## print(sum(y_predict == y_test)/len(y_test))

# print(accuracy_score(y_test,y_predict))

best_method=""

best_score=0.0

best_k=-1

for method in ["uniform","distance"]:

for k in range(1,11):

knn_clf=kneighborsclassifier(k,weights=method)

knn_clf.fit(x_train,y_train)

score=knn_clf.score(x_test,y_test)

if score>best_score:

best_k=k

best_score=score

best_method=method

print(method)

print(best_k)

print(best_score)`在這裡插入**片`

K NN演算法(K 近鄰演算法)

k nn 演算法是一種分類演算法。所謂 k近鄰演算法,即是 給定乙個 訓練資料集,對新的 輸入例項,在 訓練資料集中找到與 該例項最鄰近的 k個例項 也就是k個 鄰居 這k 個例項的多數屬於某個 類,就把該輸入 例項分類到 這個類中。例如 如果k 3,綠 色圓點的最近的3個 鄰居是2個 紅色小三角形...

K 近鄰演算法 KNN

knn k nearest neighbor 假設訓練集有記錄 r1 r2,rn共n條,訓練集的特徵向量及其對應的類別都是已知的,每個記錄的特徵向量為 t1 t2,tk共k個特徵,待測試的記錄為ru 1 計算ru 的特徵向量與訓練集的每條記錄 即r1 r2,rn 的特徵向量的歐式距離,選取距離最小的...

k近鄰演算法 kNN

核心思想 前k個最相似資料中出現次數最多的類別,作為新資料的類別。核心函式 計算距離函式,投票函式 coding utf 8 import random import sys from collections import counter from operator import itemgette...