前言:
现在我们对“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近邻算法有几个参数构成