import csv
import random
import math
import operator
#导入数据,并分为训练集和测试集
def loadDataset(filename, split, trainingSet = [], testSet = []):
with open(filename, 'rt') as csvfile:
lines = csv.reader(csvfile)
dataset = list(lines)
for x in range(len(dataset)-1):
for y in range(4):
dataset[x][y] = float(dataset[x][y])
if random.random() < split:
trainingSet.append(dataset[x])
else:
testSet.append(dataset[x])
#求欧拉距离
def euclideanDistance(instance1, instance2, length):
distance = 0
for x in range(length):
distance += pow((instance1[x]-instance2[x]), 2)
return math.sqrt(distance)
#计算最近邻(K个数据集),testInstance是实例
def getNeighbors(trainingSet, testInstance, k):
distances = []
length = len(testInstance)-1
for x in range(len(trainingSet)):
#testinsta
最近邻分类算法KNN实现--参考麦子学院彭亮机器学习基础4.2
最新推荐文章于 2020-11-30 03:56:35 发布
本文深入探讨了最近邻分类算法KNN,基于彭亮在麦子学院的机器学习基础课程4.2部分,详细解释了KNN的工作原理、算法流程,并提供了实现示例。
摘要由CSDN通过智能技术生成