KNN

一.简述

KNN三要素

  • k值的选取(交叉验证超参搜索)
  • 距离度量的方式(欧式距离,曼哈顿距离)
  • 决策规则
    • KNN做分类预测时,一般是选择多数表决法,即训练集里和预测的样本特征最近的K个样本,预测为里面有最多类别数的类别;
    • KNN做回归时,一般是选择平均法,即最近的K个样本的样本输出的平均值作为回归预测值

二. 实现方式:

  • 1.蛮力:不适用于特征多,样本量大的数据
  • 2.KD🌲

三. 优缺点

  • KNN的主要优点有:
    • 1) 理论成熟,思想简单,既可以用来做分类也可以用来做回归
    • 2) 可用于非线性分类
    • 3) 训练时间复杂度比支持向量机之类的算法低,仅为O(n)
    • 4) 和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感
    • 5) 由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合
    • 6)该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分
  • KNN的主要缺点有:
    • 1)计算量大,尤其是特征数非常多的时候
    • 2)样本不平衡的时候,对稀有类别的预测准确率低
    • 3)KD树,球树之类的模型建立需要大量的内存
    • 4)使用懒散学习方法,基本上不学习,导致预测时速度比起逻辑回归之类的算法慢
    • 5)相比决策树模型,KNN模型可解释性不强

四. 参考

0

java learn7

抽象

抽象类:表达概念而无法构造出实体的类(无法实例化),可包含抽象方法和普通方法 抽象方法:表达概念而无法实现具体代码的函数(不能有大括号即方法体),必须由子类重写实现 java的重载和重写区别:https://blog.csdn.net/dingliang33608/article/details/69062405

数据与表现分离

接口:极度抽象的抽象类,即抽象类(interface 接口)中的方法全部是抽象方法 接口与抽象类:https://www.cnblogs.com/dolphin0520/p/3811437.html
0