k近邻算法

1、主要思想:

有一个给定的训练集(即含有标签),对于一个输入的待分类的数据,计算该数据与训练集中每个样本的距离,选择距离最近的前k个样本,这k个样本中哪个类别最多,待分类数据就属于哪个类别。

2、特点:

1)无参数

2)监督学习

3、需要考虑:

1)k如何选择:

通过多次尝试,否则会发生过拟合或欠拟合的问题。

2)距离如何算:

欧式距离、曼哈顿距离、切比雪夫距离、马氏距离等

3)除了少数服从多数,还有其它方法吗?

4)对于给定的标签数据训练集、测试集的比例

5)查找前k个的算法:

除了简单的线性查找,还有其它算法,如kd树,BBF算法,​

4、缺点:

1)如果训练集很大,占据空间

2)如果特征维数多,占据时间​,产生维数灾难