Lecture 1 NN,KNN
INT305 Machine Learning
Lecture 1
Outline of this course
·Suprevised Learning
Nearest Neighbors 近邻
Decision Trees 决策树
Ensembles 集成学习
Linear Regression 线性回归
Logistic Regression 逻辑回归
Neural Networks 神经网络
SVMs 支持向量机
·Unsuprevised Learning
K-means
Mixture models
·Basic of Reinforcement Learning
Nearest Neighbors
用于解决Regression(回归)问题:taget(label) 是实数
用于解决Classification(分类)问题:taget(label) 是离散集的一个元素
近年来,taget(label) 常常是一个高度结构化的对象(如图片image)
·Input Vectors:实例特征向量
·计算距离(常用欧几里得距离或者曼哈顿距离)
找到距离向量x最近的实例向量,然后复制它的标签
·决策边界(Decision boundary)
我们可以通过Voronoi diagram(多边形)对分类进行可视化
最近邻分类器(NN)的优点:
不需要为训练集建立模型。
最近邻分类器可以生成任何形状的决策边界。
最近邻分类器的缺点:
容易受到噪声的影响。(NN sensitive to noise or mis-labeled data(class noise))
往往需要对训练集进行预处理才能使用。
每一次分类耗时长。
k-Nearest Neighbors k-近邻算法
k的选取
·Small k
good at capturing fine-grained(细粒度)patterns
may overfit,i.e. be sensitive to random idiosyncrasies in the training data 可能过拟合,即对训练数据中的随机特性敏感
·Large k
makes stabel predictions by averaging over lots of examples
may underfit,i.e. fail to capture important regularities
·Balance k
Optimal choice of k depends on number of data points n.c
Nice theoretical properties if k-->∞ and k/n-->0
Rule of thumb(经验): choose k < √n
We can choose k using validation set
we would like our algorithm to generalize to data it hasn't seen before.
我们希望我们的算法能够推广到以前从未见过的数据.
We can measure the genaralization error(泛化误差)(error rate on new examples)using a test data.
k 是一个超参数,不能作为算法学习的一部分
我们可以使用验证集(validation set)调优超参数

测试集只在最后使用,用来度量最终配置的泛化性能。
Conclusions
Simple algorithm that does all its work at test time - in a sense, no learning
Can control the complexity by varifying k
Suffers from the Curse of Dimensionality*
补充:
对k-近邻算法的说明
按距离加权的k-近邻算法是一种非常有效的归纳推理方法。它对训练数据中的噪声有很好的鲁棒性,而且当给定足够大的训练集合时它也非常有效。注意通过取k个近邻的加权平均,可以消除孤立的噪声样例的影响。
问题一:近邻间的距离会被大量的不相关属性所支配。
应用k-近邻算法的一个实践问题是,实例间的距离是根据实例的所有属性(也就是包含实例的欧氏空间的所有坐标轴)计算的。这与那些只选择全部实例属性的一个子集的方法不同,例如决策树学习系统。
比如这样一个问题:每个实例由20个属性描述,但在这些属性中仅有2个与它的分类是有关。在这种情况下,这两个相关属性的值一致的实例可能在这个20维的实例空间中相距很远。结果,依赖这20个属性的相似性度量会误导k-近邻算法的分类。近邻间的距离会被大量的不相关属性所支配。这种由于存在很多不相关属性所导致的难题,有时被称为维度灾难(curse of dimensionality*)。最近邻方法对这个问题特别敏感。
解决方法:当计算两个实例间的距离时对每个属性加权。
这相当于按比例缩放欧氏空间中的坐标轴,缩短对应于不太相关属性的坐标轴,拉长对应于更相关的属性的坐标轴。每个坐标轴应伸展的数量可以通过交叉验证的方法自动决定。
问题二:应用k-近邻算法的另外一个实践问题是如何建立高效的索引。因为这个算法推迟所有的处理,直到接收到一个新的查询,所以处理每个新查询可能需要大量的计算。
解决方法:目前已经开发了很多方法用来对存储的训练样例进行索引,以便在增加一定存储开销情况下更高效地确定最近邻。一种索引方法是kd-tree(Bentley 1975;Friedman et al. 1977),它把实例存储在树的叶结点内,邻近的实例存储在同一个或附近的结点内。通过测试新查询xq的选定属性,树的内部结点把查询xq排列到相关的叶结点。
Lecture 1 NN,KNN的更多相关文章
- paper 15 :整理的CV代码合集
这篇blog,原来是西弗吉利亚大学的Li xin整理的,CV代码相当的全,不知道要经过多长时间的积累才会有这么丰富的资源,在此谢谢LI Xin .我现在分享给大家,希望可以共同进步!还有,我需要说一下 ...
- [C2P3] Andrew Ng - Machine Learning
##Advice for Applying Machine Learning Applying machine learning in practice is not always straightf ...
- CS231n 2017 学习笔记01——KNN(K-Nearest Neighbors)
本博客内容来自 Stanford University CS231N 2017 Lecture 2 - Image Classification 课程官网:http://cs231n.stanford ...
- 编程英语之KNN算法
School of Computer Science The University of Adelaide Artificial Intelligence Assignment 2 Semes ...
- 股票价格涨跌预测—基于KNN分类器
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
- Kmeans算法与KNN算法的区别
最近研究数据挖掘的相关知识,总是搞混一些算法之间的关联,俗话说好记性不如烂笔头,还是记下了以备不时之需. 首先明确一点KNN与Kmeans的算法的区别: 1.KNN算法是分类算法,分类算法肯定是需要有 ...
- 深度学习与计算机视觉系列(2)_图像分类与KNN
作者: 寒小阳 &&龙心尘 时间:2015年11月. 出处: http://blog.csdn.net/han_xiaoyang/article/details/49949535 ht ...
- Cs231n课堂内容记录-Lecture 9 深度学习模型
Lecture 9 CNN Architectures 参见:https://blog.csdn.net/qq_29176963/article/details/82882080#GoogleNet_ ...
- Cs231n课堂内容记录-Lecture 8 深度学习框架
Lecture 8 Deep Learning Software 课堂笔记参见:https://blog.csdn.net/u012554092/article/details/78159316 今 ...
- KNN与K-Means的区别
KNN(K-Nearest Neighbor)介绍 Wikipedia上的 KNN词条 中有一个比较经典的图如下: KNN的算法过程是是这样的: 从上图中我们可以看到,图中的数据集是良好的数据,即都打 ...
随机推荐
- Golang Linux、Windows、Mac 下交叉编译
前言 Golang 支持交叉编译, 即同一份代码,在一个平台上生成,然后可以在另外一个平台去执行. 之前写过一篇 Golang windows下 交叉编译 感觉写的不够全面,这篇作为补充. 交叉编译 ...
- 文件转十六进制出现转义字符直接通过ASCII码逐字符展开的问题与修复
近日工作中遇到某品牌电子签章系统生成的PDF文件若直接使用十六进制查看器打开,会出现转义字符被直接以ASCII编码转换为16进制字符串的问题,导致提取的文件无法匹配ASN.1格式,无法进一步对签章有效 ...
- Mavros & Mavlink
博客地址:https://www.cnblogs.com/zylyehuo/ 参考 https://www.bilibili.com/video/BV1x841167uG?spm_id_from=33 ...
- dxTabbedMDIManager1关闭窗体
procedure TfrmJianKongXinXi.FormClose(Sender: TObject; var Action: TCloseAction);begin Action:=caFre ...
- 【Linux】远程连接Linux虚拟机(MobaXterm)
[Linux]远程连接Linux虚拟机(MobaXterm) 零.原因 有时候我们在虚拟机中操作Linux不太方便,比如不能复制粘贴,不能传文件等等,我们在主机上使用远程连接软件远程连接Linux虚拟 ...
- 【逆向】修改LightCycler® 96文件Summary日期
修改LightCycler 96文件Summary日期 零.需求 来自我的一个朋友 她是要准备改某个软件(LightCycler 96)保存的数据(时间和日期),当时得知此意图后心里已经判了8成不能改 ...
- Windows 鼠标右键失效
突然有一天...小邋遢他变了... 哦不是...鼠标右键/键盘菜单键莫名其妙失效了. 解决办法 运行 regedit 打开注册表编辑器 依次展开 HKEY_CURRENT_USER\Software\ ...
- Windows 系统授权服务信息
cmd 中输入命令 slmgr.vbs /dlv 后查看输出信息 据说,OEM和RETAIL可以正常升级到Windows10,并永久激活
- MySQL 的默认字符集为什么是 latin1?
是处于历史原因还是其他? 为什么至今不选择utf-8? West European Character Sets
- Dubbo 中的集群容错
前言 在微服务架构中,服务间的依赖关系复杂且动态,任何一个服务的故障都可能引发连锁反应,导致系统雪崩.一个好的容错设计可以避免这些问题发生: 服务雪崩效应:单个服务崩溃或响应延迟可能导致调用链上的所有 ...