详解机器学习算法基础--K近邻算法

K近邻算法属于监督学习。

监督学习是指给定我们的数据集是含有lable的,比如著名的iris数据集,就给定了我们每一个数据所属的类别,通俗一点讲,我们拿到一个数据,对应一个特征。

K近邻算法我们可以认为是一个不需要训练过程的算法,也就是说,我们不需要去训练模型,从某种意义上来说,算法即是模型本身

K近邻算法是什么?用来做什么?

K近邻算法就是通过distance来寻找最近的样本,获取我们传入数据的label,也就是说,谁离我们传入的数据最近,我们就选那个最近数据的lable作为我们传入数据的特征。

详解机器学习算法基础--K近邻算法_第1张图片

 

 K近邻算法天然就适合解决分类问题,尤其可以解决多分类问题,我们可以通过谁离我们最近,就选谁作为我们的lable。

K近邻算法的K值

K近邻算法的K值就是决定离我们最近的数据确定几个,也就是说选几个离我们最近的距离作为分类指标。比如K=3,就寻找离我们最近的三个样本,即数据作为我们的分类指标。

详解机器学习算法基础--K近邻算法_第2张图片

 K近邻算法的distance

 衡量我们样本之间的距离,使用什么距离呢?当然,我们可以选取欧式距离,也就是使用最普遍的距离衡量,但是distance属于一个超参数,也就是说我们可以指定distance,我们可以改变,比如使用余弦距离,或者闵可夫斯基距离

 K近邻算法的缺点

1.效率比较低,每次我们都要将训练数据与传入数据做一次相减求出距离,这样相比较于其他算法,效率较低

2.高度数据相关,我们求得的结果与我们传入的训练样本,存在高度数据相关,也就是说,我们得到什么结果,与我们的训练数据息息相关

3.维度灾难,当我们涉及到高纬度的时候,K近邻算法几乎会变得运算复杂,但是我们可以通过降维解决这一问题

 

你可能感兴趣的:(机器学习,机器学习,算法,近邻算法)