龙空技术网

物以类聚-十分钟掌握K近邻算法

爱数据的小司机 426

前言:

现在我们对“k近邻算法有几个参数构成”大概比较珍视,我们都想要剖析一些“k近邻算法有几个参数构成”的相关知识。那么小编在网上汇集了一些关于“k近邻算法有几个参数构成””的相关文章,希望各位老铁们能喜欢,同学们一起来了解一下吧!

K近邻算法(KNN,K-NearestNeighbors)是一种非常简单的机器学习方法,它既可以处理分类问题,也可以处理回归问题,而且它的执行效果非常好。用来这么多次数,这次我们来捋一捋算法原理及过程

算法原理:(物以类聚)

如果一个样本在特征空间中的k个最相近(即是在特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

比较常用的差异性计算方法为欧式距离。欧式距离:样本

与样本

之间的欧式距离为:

算法优缺点:

优点:算法准确性高,对异常值和噪声有较高的容忍度,

缺点:计算量比较大,对内存需求比较大,每次对一个未标记的样本进行分类时,需要全部计算一边距离

算法的变种:

1,可以增加近邻的权重,在默认的情况下,计算距离时都是使用相同权重,我们可以针对不同距离的近邻指定不同的权重,比如,距离越近权重越高,可以通过算法的weights参数设定

2,使用一定半径的点取代距离最近的K个点

算法流程:

1,求预测样本与训练样本之间的相似性,

2,依据相似性排序

3,选择前K个最为相似的样本对应的类别,

4,得到预测的分类结果

问题:近邻间的距离可能会被大量的不相关属性所支配。

解决方法:当计算两个实例间的距离时对每个属性加权。

重要参数:

n_neighbors:查询近邻的个数,n_neighbors,值越大,模型的偏差越大,对噪声数据不敏感,很大时可能造成欠拟合,越小,模型的方差越大,太小时可能会造成模型过拟合,默认为:5

weights:'uniform' : 统一的权重。每个邻居的权重都是相等的。

'distance' : 权重是由它们的距离的倒数。在这种情况下,更近的邻居权重越大

Python接口--sklearn.neighbors.KNeighborsClassifier

数据源:自带额鸢尾花卉数据集

模型评估:准确率,分类报告(查准率,召回率,f1值),混淆矩阵

模型优化:超参数优化器使用网格搜索找出最佳的超参数值,

具体代码如下:

标签: #k近邻算法有几个参数构成