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的算法过程是是这样的: 从上图中我们可以看到,图中的数据集是良好的数据,即都打 ...
随机推荐
- mongodb关机重启
正确关闭 mongodb 查看 mongodb 进程 ps -ef | grep mongodb # 或者 ps -aux | grep mongodb 杀掉 mongodb 进程(不推荐) kill ...
- crontab Do you want to retry the same edit? (y/n)
crontab: installing new crontab "/tmp/crontab.tEoCzO":2: bad day-of-month errors in cronta ...
- 130道基础OJ编程题之: 89~107
130道基础OJ编程题之: 89~107 @ 目录 130道基础OJ编程题之: 89~107 89. BC101 班级成绩输入输出 99. BC102 矩阵元素定位 100. BC103 序列重组矩阵 ...
- 漏洞编号CVE-2022-27191 漏洞公告 ALINUX3-SA-2024:0050: container-tools:rhel8 安全和BUG修复更新
基于Debian的系统(如Ubuntu),使用apt sudo apt-get update sudo apt-get install --only-upgrade container-selinux ...
- Sql 字符串截取
注意 不同数据库内置函数名称或有差异,可参考 1.从左至右截取 ①使用left()函数可以从左至右对字符串进行截取 语法:LEFT(str,length) str是要进行截取的字符串,length是要 ...
- 【WinForm】WinForm 生成单文件程序
WinForm 生成单文件程序 零.解决 安装 Costura.Fody 安装好这个库后生成的就是单文件了. .Net 3.5 NuGet控制台 NuGet\Install-Package Costu ...
- 推荐Linux命令行运维工具: Wowkey--实现自动化批量化标准化
WowKey命令行运维工具,Linux设备的自动化.批量化.标准化的运维解决方案,解放运维人,提升企业运维效率和质量. 有人能理解做设备的运营维护工作的痛苦所在吗? 如果你的运维工作中,只维护个位数数 ...
- Flex布局教程:语法篇--css中的display:Flex
先用一句话秒懂display:Flex;这句css代码,如图: 放个目录先: 目录 一.Flex布局是什么? 二.基本概念 三.容器的属性 3.1 flex-direction属性(主轴的方向) 3. ...
- [笔记]PHP里类的申明和对象的实例化(笔记)
1.申明类 class 类名{ //属性---------- public 属性 = 值: public 属性: //方法----------- function 方法名($n1,$n2){ ...
- 经典常用SQL查询语句和常见问题
一.基础 1.常用sql: ------------------------ // mysql改root密码 mysqladmin -u用户名 -p旧密码 password 新密码 # ---more ...