#Author:Anthony
import csv#读取数据用的
import random
import math
import operator
def loadDataset(filename,split,trainingSet=[],testSet=[]):#加载数据集,按概率划分数据集
with open(filename,'rb') as csvfile:#打开文件
lines=csv.reader(csvfile)#读取csv文件
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):#欧几里德距离计算,length为维度0到n
distance=0
for x in range(length):
distance+=pow((instance1[x]-instance2[x]),2)#两个实例中对应维度差的平方和
return math.sqrt(distance)#返回结果的平方根
def getNeighbors(trainingSet,testInstance,k):#测试集的每一个实例与训练集实例中的距离,并将最近的K个点返回
distances=[]
length=len(t
Python代码及注释:最邻近分类器KNN
最新推荐文章于 2023-05-08 16:00:45 发布
该博客介绍了一个使用Python实现KNN(最邻近分类器)的完整过程,包括读取数据、计算欧几里得距离、确定最近邻、分类投票以及评估准确率。通过loadDataset函数划分训练集和测试集,使用euclideanDistance计算距离,getNeighbors获取最近邻,getResponse进行分类决策,最后计算模型的准确性。
摘要由CSDN通过智能技术生成