1、作业题目
原生python实现knn算法
2、算法设计
3、源代码
import random
import time
import math
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
class MyKNN:
def __init__(self, n_neighbors):
'''指定近邻个数'''
self.n_neighbors = n_neighbors # 近邻数
# self.x_new = [] # 预测数据集
def predict(self, x_new):
'''预测模型'''
targetList = [] # 存储预测数据的预测所属类
for i in range(len(x_new)):
tp = x_new[i]
#print(tp)
distList = self.get_deftDist(tp) # 获取此时测试数据x_new[i]与预先序列的距离
for j in range(len(self.x_train)):
Lmax = max(distList)
L = 0
for k in range(len(self.x_train[j])):
L += (tp[k]-self.x_train[j][k])**2 # 遍历训练集,计算当前x_new[i]训练集与x_train[j]的距离
L =