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...