一、KNN算法
二、算法过程
1.读取数据集
2.处理数据集数据 清洗,采用留出法hold-out拆分数据集:训练集、测试集
三、实现KNN算法类:
1)遍历训练数据集,离差平方和计算各点之间的距离
2)对各点的距离数组进行排序,根据输入的k值取对应的k个点
3)k个点中,统计每个点出现的次数,权重为距离的导数,得到值,该值的索引就是我们计算出的判定类别
四、kNN的python实现
import numpy as np #一个最简单的KNN class KNN(): def __init__(self): self.model = {}#存储各个类别的训练样本的特征,key为类别标签,value是一个list,元素为样本的特征向量 self.training_sample_num = {}#存储训练数据中,各个类别的数量 #训练模型,输入是标签列表,和对应的输入数据列表 def fit(self, X, Y): for i in range(len(Y)): #将训练数据按照类别分组 if Y[i] in self.model: self.model[Y[i]].append(X[i]) else: self.model[Y[i]] = [X[i]] #各个类别的样本总数 self.training_sample_num[Y[i]] = self.training_sample_num.get(Y[i], 0) + 1 #预测/判断一个样本的类别。这里模仿sklearn的风格,允许输入单个样本,也允许输入多个样本
好啦,这就是关于分类算法的使用了,如果大家对机器学习非常感兴趣的话,就可以好好学习关于这些内容了哦~