深入理解KNN算法
来源:互联网 发布:godaddy域名申请 编辑:程序博客网 时间:2024/06/03 18:26
1. KNN是个"消极"算法, y = f(x1,x2,........xp, x),其中x1,x2,........xp是训练数据,x是待分类或回归查询实例,y是分类或回归结果.整个过程中没有建立任何数学模型.
2. 与"积极"算法的一个关键差异: KNN可以为不同的待分类查询实例建立不同的目标函数逼近.
3. KNN的唯一假设,函数f是平滑的.
4. KNN算法的理论上限:当我们的训练集中观测点的数目很大的时候,可以证明1-NN的误分的概率不劣于我们知道每个类的精确的概率密度函数时误分概率的2倍.换句话说,如果有大量的数据及充分复杂的分类规则,我们最多能减少划分错误到用简单的1-NN规则时的一半.
5. 相比1-NN,高一点的K值(KNN)的优点是提供平滑的分类,避免过拟合到训练数据中的噪声数据.典型应用中,K取值从几到十几,很少成百上千.6. KNN 的缺点:
1) 训练集的大小随着尾数的增长以指数增长.
2) 当维数很多时,真正对分类有用的维度可能被淹没在其中了,造成维度灾难.
3) 在大训练集中寻找最近邻太费时间,可以通过以下方法进行优化:
a. 通过降维技术来减少维数,如主成分分析,从而减少计算距离的时间;
b.用复杂的数据结构,如搜索树去加速最近邻的确定。这个方法经常通过设定“几乎是最近邻”的目标去提高搜索速度;
c.编辑训练数据去减少在训练集中的冗余和几乎是冗余的点,从而加速搜索最近邻.
0 0
- 深入理解KNN算法
- KNN算法理解
- KNN算法理解
- KNN算法理解
- KNN算法理解
- KNN算法理解
- KNN 算法理解
- KNN算法理解
- KNN算法理解
- KNN算法理解
- KNN算法理解
- KNN算法理解
- KNN算法理解
- KNN算法的个人理解
- KNN算法理解和应用
- 机器学习之深入理解K-means、与KNN算法区别及其代码实现
- opencv2.4.9中KNN算法理解
- 十大算法之-------Knn理解
- Lazarus 将gb2312的MemoryStream转换成String
- 关于Spring RestTemplate乱码问题解决
- linux .so 的使用
- HTML5总结系列(二)--新增表单标签及表单属性
- Gym 100803 B Miscalculation
- 深入理解KNN算法
- 传说中的800句记7000词
- 对于数据库死锁
- 计数排序、桶排序和基数排序
- 根目录vmlinux的编译过程
- 【Android】SwipeRefreshLayout的简单使用教程。下拉刷新控件炫酷效果。
- vs2010运行错误[0xc000007b]-第三方使用opencv库文件
- Count of Smaller Numbers After Self
- Unique Paths II