最近邻分类算法解析

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

特别适合于多分类问题(multi-modal,对象具有多个类别标签),例如 根据基因特征来判断其功能分类,kNN比SVM的表现要好
对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方 法更为适合。
➢ 优缺点
2、缺点
懒惰算法,就是说直到预测阶段采取处理训练数据。 对测试样本分类时的计算量大,内存开销大,评分慢。 可解释性较差,无法给出决策树那样的规则。 由于没有涉及抽象过程,kNN实际上并没有创建一个模型,预测时
➢ 行业应用
客户流失预测、欺诈侦测等(更适合于稀有事件的分类 问题)
对垃圾邮件的筛选拦截;
可以用于推荐:这里我们不用KNN来实现分类,我们使用KNN
最原始的算法思路,即为每个内容寻找K个与其最相似的内容,并 推荐给用户。
源自文库
➢谢 谢 观 看!
间较长。
该算法在分类时有个主要的不足是,当样本不平衡时, 如一个类的样本容量很大,而其他类样本容量很小时, 有可能导致当输入一个新样本时,该样本的K个邻居中 大容量类的样本占多数。
➢ 改进
分组快速搜索近邻法
其基本思想是:将样本集按近邻关系分解成组,给出每组质心的位 置,以质心作为代表点,和未知样本计算距离,选出距离最近的一 个或若干个组,再在组的范围内应用一般的knn算法。由于并不是 将未知样本与所有样本计算距离,故该改进算法可以减少计算量, 但并不能减少存储量
如果训练数据大部分都属于某一类,投票算法就有很大问题了。这 时候就需要考虑设计每个投票者票的权重了。
加权投票法:根据距离的远近,对近邻的投票进行加权, 距离越近则权重越大(权重为距离平方的倒数)
若样本到测试点距离为d,则选1/d为该邻居的权重(也就是得到了 该邻居所属类的权重),接下来统计统计k个邻居所有类标签的权 重和,值最大的那个就是新数据点的预测类标签。
数据挖掘算法
——K最近邻分类(KNN)
➢ K最近邻分类(KNN)
该方法的思路是:如果一个样本在特征空间中的k个最相近(即特征 空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于 这个类别。即—“近朱者赤,近墨者黑”,由你的邻居来推断出你 的类别。
用下面的谚语最能说明:“如果走像鸭子,叫像鸭子,看起来还像鸭 子,那么它很可能就是一只鸭子。”
➢ K值选取
k值通常是采用交叉检验来确定(以k=1为基准)
交叉验证的概念:将数据样本的一部分作为训练样本,一部分作为测试样本,比如选择95%作 为训练样本,剩下的用作测试样本。通过训练数据训练一个模型,然后利用测试数据测试其误 差率。 cross-validate(交叉验证)误差统计选择法就是比较不同K值时的交叉验证平均误差率, 选择误差率最小的那个K值。例如选择K=1,2,3,... , 对每个K=i做100次交叉验证,计算出平均 误差,然后比较、选出最小的那个。
样本 4.重复步骤2、3、4,直到未知样本和所有训练样本的
距离都算完 5.统计K个最近邻样本中每个类别出现的次数
注意:
该算法不需要花费时间做模型的构建。其他大多数分类 算法,如决策树等都需要构建模型的阶段,而且该阶段 非常耗时,但是它们在分类的时候非常省时。
➢ 类别的判定
投票决定:少数服从多数,近邻中哪个类别的点最多就 分为该类。
➢ 示例:
如图,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形? 如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三
角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被 赋予蓝色四方形类。
1、优点
➢ 优缺点
简单,易于理解,易于实现,无需估计参数,无需训练
适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%, 构造流失预测模型)
也称欧几里得距离,它是一个采用的距离定义,他是在 维空间中两个点之间的真实距离。
二维的公式:d (x1 x2)2 (y1 y2)2
➢ 计算步骤如下:
1.计算未知样本和每个训练样本的距离dist 2.得到目前K个最临近样本中的最大距离maxdist 3.如果dist小于maxdist,则将该训练样本作为K-最近邻
经验规则:k一般低于训练样本数的平方根。
需要指出的是:取k=1常常会得到比其他值好的结果,特别是在小 数据集中。
不过仍然要注意:在样本充足的情况下,选择较大的K值能提高抗 躁能力。
➢ 欧氏距离
计算距离有许多种不同的方法,如欧氏距离、余弦距离、 汉明距离、曼哈顿距离等等,传统上,kNN算法采用的 是欧式距离。
相关文档
最新文档