统计学习方法笔记(三)
2016-07-19 14:16
218 查看
K近邻法:(分类回归方法)
k 近邻算法简单、直观给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k 个3比例,这k 个实例的多数属于某个类,就把该输入实例分为这个类。
当K=1时,又称为最近邻算法,这时候就是将训练数据集中与x最邻近点作为x的类。
k近邻法主要考虑三个基本要素——距离度量(就是两个点之间怎么才算相似呢,要给出个距离计算公式),k值(要考虑近邻多少个点),分类决策规则(找出这个k个点之后,怎么确定x最终属于哪个分类)
1,距离度量
一般来说用的比较多的是欧式距离,当然也可以用别的,这没什么好说的。
这里就给出一张书里的图,表示的是取不同距离时,与原点的距离为1的点的图形,
从图中,也可看出,对于不同的距离计算公式,所得到的点也是不同的。
2,k值的选择
k 值的选择会对k 近邻法的结果产生重大影响。如果选择较小的k 值,就相当于用较小的邻域中的训练实例进行预测"学习"的近似误差(approximation error) 会减小,只有与输入实例较近的(相似的)训练实例才会对预测结果起作用但缺点是"学习"的估计误差(estimation error)会增大,预测结果会对近邻的实例点非常敏感山如果邻近的实例点恰巧是噪声,预测就会出错。
也就是说,k值月小,相当于模型越复杂,容易发生过拟合,当k=N的时候,那么无论输入什么,都是简单的预测特为含实例最多的类,模型太简单。
一般用交叉验证法来选取最优k指。
3,分类决策规则
一般都为多数表决,就是看k个近邻中的多数类。
这里提一下,多数表决等价于经验风险最小化。
4, 最后书中提到了kd树
kd树的用途是减少距离的计算次数。下面给出平衡kd树的构造过程和最近邻搜索算法
刚看算法比较难理解,书中还给出了例子。
构造平衡kd树,其实就是确定一个坐标轴后,以中位数为切分点将空间一分为2,再分别在2个字空间中,以另一坐标轴的中位数为切分点一份为2,一直这样,知道分出来的字空间中没有实例点为止。
而搜索方法,就是对于输入点S,先找到包含S的叶节点D,画一个以S为中心,SD为半径的圆,先放着,然后再回到D节点的父节点B,在B的另一个区域(不是一分为2了吗,就是没有D的另一半)找是否有比D更接近S的点(就看另一半区域与圆是否相交,有相交点就说明,有其他点比D更接近S,更新那个点为最近点),就这样一步步找父节点。
k 近邻算法简单、直观给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k 个3比例,这k 个实例的多数属于某个类,就把该输入实例分为这个类。
当K=1时,又称为最近邻算法,这时候就是将训练数据集中与x最邻近点作为x的类。
k近邻法主要考虑三个基本要素——距离度量(就是两个点之间怎么才算相似呢,要给出个距离计算公式),k值(要考虑近邻多少个点),分类决策规则(找出这个k个点之后,怎么确定x最终属于哪个分类)
1,距离度量
一般来说用的比较多的是欧式距离,当然也可以用别的,这没什么好说的。
这里就给出一张书里的图,表示的是取不同距离时,与原点的距离为1的点的图形,
从图中,也可看出,对于不同的距离计算公式,所得到的点也是不同的。
2,k值的选择
k 值的选择会对k 近邻法的结果产生重大影响。如果选择较小的k 值,就相当于用较小的邻域中的训练实例进行预测"学习"的近似误差(approximation error) 会减小,只有与输入实例较近的(相似的)训练实例才会对预测结果起作用但缺点是"学习"的估计误差(estimation error)会增大,预测结果会对近邻的实例点非常敏感山如果邻近的实例点恰巧是噪声,预测就会出错。
也就是说,k值月小,相当于模型越复杂,容易发生过拟合,当k=N的时候,那么无论输入什么,都是简单的预测特为含实例最多的类,模型太简单。
一般用交叉验证法来选取最优k指。
3,分类决策规则
一般都为多数表决,就是看k个近邻中的多数类。
这里提一下,多数表决等价于经验风险最小化。
4, 最后书中提到了kd树
kd树的用途是减少距离的计算次数。下面给出平衡kd树的构造过程和最近邻搜索算法
刚看算法比较难理解,书中还给出了例子。
构造平衡kd树,其实就是确定一个坐标轴后,以中位数为切分点将空间一分为2,再分别在2个字空间中,以另一坐标轴的中位数为切分点一份为2,一直这样,知道分出来的字空间中没有实例点为止。
而搜索方法,就是对于输入点S,先找到包含S的叶节点D,画一个以S为中心,SD为半径的圆,先放着,然后再回到D节点的父节点B,在B的另一个区域(不是一分为2了吗,就是没有D的另一半)找是否有比D更接近S的点(就看另一半区域与圆是否相交,有相交点就说明,有其他点比D更接近S,更新那个点为最近点),就这样一步步找父节点。
相关文章推荐
- nodejs实现获取某宝商品分类
- php通过分类列表产生分类树数组的方法
- asp飞飞无限级分类v1.0 Asp+sql+存储过程+ajax提供下载
- Oracle表的分类以及相关参数的详解
- Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
- WordPress中用于获取文章信息以及分类链接的函数用法
- 深入浅析PHP无限极分类的案例教程
- 详解WordPress中分类函数wp_list_categories的使用
- php实现无限级分类查询(递归、非递归)
- PHP实现无限级分类(不使用递归)
- PHP实现递归无限级分类
- Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
- Android仿美团分类下拉菜单实例代码
- php+mysql实现无限分类实例详解
- thinkphp实现无限分类(使用递归)
- WordPress中获取指定分类及其子分类下的文章数目
- 详解WordPress开发中用于获取分类及子页面的函数用法
- JavaScript+CSS无限极分类效果完整实现方法
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning