监督学习_最近邻算法(KNN, k-近邻算法)
来源:互联网 发布:数据可视化培训 编辑:程序博客网 时间:2024/06/06 09:27
在模式识别领域中,最近邻居法(KNN算法,又译K-近邻算法)是将在特征空间中最接近的训练样本进行分类的方法。
最近邻居法采用向量空间模型来分类,概念为相同类别的案例,彼此的相似度高,而可以借由计算与已知类别案例之相似度,来评估未知类别案例可能的分类。
摘自:维基百科
举个例子,手写数字识别,假设0-9的数字可以用特征向量(a,b,c,...)表示,那么现在有一个数字X,它的特征向量可以表示为(x,y,z,...),那么可以用特征向量之间的距离(欧氏距离)来表示它们的相似度,即d=sqrt( (x-a)^2+(y-b)^2+(z-c)^2+... ),d越小则表示X与哪个数字的的距离越近,即X是该数字的可能性越大! 在这里(a,b,c,...)可以被看作是训练集(有很多个训练集,比如10000个,0-9分别各有1000个),(x,y,z,...)可以被看作是测试集,那么就拿(x,y,z,...)分别和10000个(a,b,c,...)计算相似度(欧氏距离),并记录与每个(a,b,c,...)的相似度(欧氏距离),找出其中最小的d(最大的相似度),就表示(x,y,z,...)就是那个数字。
那K是怎么回事呢???
我们计算出了10000个相似度(欧氏距离),我们找出K个相似度(欧氏距离)最高的d,然后统计K个d对应的数字,哪个数字出现的次数最多,就说(x,y,z,...)是谁;比如,令K=10, 统计出有5个d对应的数字为1,3个对应的数字为2,2个对应的数字为8,那我们就说(x,y,z,...)是1,类似于投票先村长,谁的票数多,谁就是村长。如果令K=1呢?那就是上述的例子了,就是只找一个相似度最高的即可。
优点:精度高、对异常值不敏感、无数据输入假定
缺点:计算复杂度高、空间复杂度高(确实是超高,每判断一个样本就需要遍历整个训练样本(10000次))
适用数据范围:数值型和标称型(就是离散型数据,变量的结果只在有限目标集中取值)
- 监督学习_最近邻算法(KNN, k-近邻算法)
- KNN K最近邻算法
- K最近邻算法(kNN)
- k最近邻算法(kNN)
- 监督学习之K近邻算法(KNN)
- k近邻算法(knn) 学习
- K最近邻算法(KNN,K-NearestNeighbor)
- k-近邻算法(kNN)
- k-近邻算法(kNN)
- k近邻算法(kNN)
- KNN(K近邻)算法
- KNN(k近邻算法)
- K-近邻算法(KNN)
- KNN ( K近邻算法 )
- k近邻算法(kNN)
- K-近邻算法:KNN
- k-近邻算法(kNN)
- kNN-k近邻算法
- C语言如何调用不同文件的方法(同一命名空间)
- ubuntu 10.04 使用wifi连接网络
- vim配置及插件安装管理(超级详细)
- WPF子窗口关闭时更新父窗口数据
- Simplify Path
- 监督学习_最近邻算法(KNN, k-近邻算法)
- 在sublime text2\3中安装svn插件
- Shellcode的编写
- vc6.0 不能打开文件的问题
- novaclient代码解析之----novaclient创建过程
- JS中使用JSTL
- python知识点(一):python检测代码效率常用方法
- HDU 3861 Prison Breake 状态压缩dp+BFS+二分答案
- 从房东那儿迁来的网线如何用路由器