网站建设大赛,网站套餐可以分摊吗吗,网站ui设计报价单,国家高新技术企业的好处1算法概述KNN: 全名K-NearestNeighbor#xff0c;K近邻算法#xff0c;简单讲就是每个样本都可以用最接近的k个邻居表示#xff0c;或者说共享同一个标签。KNN是一种分类(classification)算法#xff0c;它输入基于实例的学习#xff08;instance-based learning…1算法概述 KNN: 全名K-NearestNeighborK近邻算法简单讲就是每个样本都可以用最接近的k个邻居表示或者说共享同一个标签。KNN是一种分类(classification)算法它输入基于实例的学习instance-based learning属于懒惰学习lazy learning也就是说没有学习过程而是事先就已经准备好分类和特征值可以直接对新样本进行处理分类。 如图所示绿点为测试样本我们需要判断它是属于红色标签还是蓝色标签r/b。如果k1r:b 2:1测试样本为红色如果k2r:b2:3测试样本为蓝色; 如果k3,r:b6:5测试样本为红色。很显然k的取值对样本影响重大下文将提及k值选取。2算法流程 1计算测试数据与各个训练数据之间的距离 2按照距离的递增关系进行排序 3选取距离最小的K个点 4确定前K个点所在类别的出现频率 5返回前K个点中出现频率最高的类别作为测试数据的预测分类3算法实现 3.1准备数据#scatter详解链接如下CSDN-专业IT技术社区-登录 数据可视化后生成的图如上其中横轴是肿块大小纵轴是发现时间。每个点代表不同病人的肿瘤大小和发病时间根据颜色判断肿瘤是良性还是恶性。 现给出测试样本判断点x [8.90933607318, 3.365731514]属于哪种情况。 3.2计算距离 距离可以采用欧氏距离或马氏距离计算此处采用欧几里得距离计算。 √(∑_(i1)^n▒(x_i-y_i )^2 ) 使用函数argsort对数组distances进行排序距离由近到远返回值为索引。 3.3选取k值 k值选取要适宜k过大会导致模型简化而失去意义k值过小则会将模型复杂化并产生过拟合现象。且k最好为奇数以免出现结果相等的尴尬情况。 在实际应用中K值一般取一个比较小的数值例如采用交叉验证法简单来说就是一部分样本做训练集一部分做测试集来选择最优的K值。有点复杂此处跳过。 暂且选择k值为6找出最近的6个点并记录他们的标签值。 3.3决策 统计所选点的标签得到多的一个标签值是多少即为测试点x的标签。 输出一个字典“”前面是数组中的值后面是统计的数量我们可以用most_common()方法找出预测值。 至此我们得到了测试点x的标签值为1。4自实现完整工程代码5算法优缺点KNN的主要优点有理论成熟思想简单既可以用来做分类也可以用来做回归天然解决多分类问题也可用于回归问题和朴素贝叶斯之类的算法比对数据没有假设准确度高对异常点不敏感由于KNN方法主要靠周围有限的邻近的样本而不是靠判别类域的方法来确定所属类别的因此对于类域的交叉或重叠较多的待分样本集来说KNN方法较其他方法更为适合KNN的主要缺点有计算量大效率低。即使优化算法效率也不高。高度数据相关样本不平衡的时候对稀有类别的预测准确率低相比决策树模型KNN模型可解释性不强维度灾难随着维度的增加“看似相近”的两个点之间的距离越来越大而knn非常依赖距离#参考链接机器学习的敲门砖kNN算法上mp.weixin.qq.com机器学习-KNN算法 - 数月亮 - 博客园www.cnblogs.com