【数据挖掘】-KNN算法+sklearn代码实现(六)
【摘要】 目录介绍算法的例子KNN算法原理KNN算法的关键:算法的优点:算法的缺点:关于k值的选取代码实现总结KNN(K-Nearest Neighbor)最邻近分类算法是数据挖掘分类(classification)技术中最简单的算法之一,其指导思想是”近朱者赤,近墨者黑“,即由你的邻居来推断出你的类别。介绍算法的例子小河的左侧是有钱人的别墅,右侧是普通的居民,如果左侧搬来了一家房屋,能确定他是有钱...
目录
KNN(K-Nearest Neighbor)最邻近分类算法是数据挖掘分类(classification)技术中最简单的算法之一,其指导思想是”近朱者赤,近墨者黑“,即由你的邻居来推断出你的类别。
介绍算法的例子
小河的左侧是有钱人的别墅,右侧是普通的居民,
如果左侧搬来了一家房屋,能确定他是有钱人吗?
KNN算法原理
KNN最邻近分类算法的实现原理:为了判断未知样本的类别,以所有已知类别的样本作为参照,计算未知样本与所有已知样本的距离,从中选取与未知样本距离最近的K个已知样本,根据少数服从多数的投票法则(majority-voting),将未知样本与K个最邻近样本中所属类别占比较多的归为一类。
一句话解释KNN算法原理:
KNN算法的关键:
(1) 样本的所有特征都要做可比较的量化
若是样本特征中存在非数值的类型,必须采取手段将其量化为数值。例如样本特征中包含颜色,可通过将颜色转换为灰度值来实现距离计算。
(2) 样本特征要做归一化处理
样本有多个参数,每一个参数都有自己的定义域和取值范围,他们对距离计算的影响不一样,如取值较大的影响力会盖过取值较小的参数。所以样本参数必须做一些 scale 处理,最简单的方式就是所有特征的数值都采取归一化处置。
(3) 需要一个距离函数以计算两个样本之间的距离
通常使用的距离函数有:欧氏距离、余弦距离、汉明距离、曼哈顿距离等,一般选欧氏距离作为距离度量,但是这是只适用于连续变量。在文本分类这种非连续变量情况下,汉明距离可以用来作为度量。通常情况下,如果运用一些特殊的算法来计算度量的话,K近邻分类精度可显著提高,如运用大边缘最近邻法或者近邻成分分析法。
算法的优点:
算法的缺点:
关于k值的选取
K值的选取会影响到模型的效果
K越小的时候容易过拟合,K越大的时候容易欠拟合。
合适的K值需要根据经验和效果去进行尝试。
代码实现
先导入sklearn的数据集。
和sklearn的KNN模块。
获取数据集,并且对数据集进行分类为训练集和测试集。
输出测试的结果:
Accuracy: 0.9
总结
1、介绍了KNN分类算法原理和重点。
2、从一个例子开始,引入了它的原理,并希望你能了解它的优缺点写出了一段简单的代码。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)