R语言与机器学习学习笔记(分类算法)(1)K-近邻算法

本文介绍了使用R语言实现K-近邻算法进行数据挖掘,特别是手写数字识别的应用。首先讲解了K-近邻算法的基本原理和R中的kknn包,然后通过鸢尾花数据集展示了算法的正确分类。最后,作者通过一个手写数字识别的例子,展示了5-近邻算法在实际问题中的误差率约为2%。
摘要由CSDN通过智能技术生成

前言

     最近在学习数据挖掘,对数据挖掘中的算法比较感兴趣,打算整理分享一下学习情况,顺便利用R来实现一下数据挖掘算法。

     数据挖掘里我打算整理的内容有:分类,聚类分析,关联分析,异常检测四大部分。其中分类算法主要介绍:K-近邻算法,决策树算法,朴素贝叶斯算法,支持向量机,神经网络,logistic回归。

    写这份学习笔记主要以学校data mining课程的课件为主,会参考一堆的baidu,一堆的google,一堆的blog,一堆的book以及一堆乱七八糟的资料,由于精力有限,恕不能一一列出,如果有认为有侵权行为欢迎与我联系,保证及时删除。

    这篇文章是我博客数据挖掘系列的第一篇文章,介绍分类算法中最基本的算法——k近邻算法。

算法一:K-近邻算法

  原理及举例

      工作原理:我们知道样本集中每一个数据与所属分类的对应关系,输入没有标签的新数据后,将新数据与训练集的数据对应特征进行比较,找出“距离”最近的k(通常k<20)数据,选择这k个数据中出现最多的分类作为新数据的分类。

算法描述:

(1)      计算已知类别数据及中的点与当前点的距离;

(2)      按距离递增次序排序

(3)      选取与当前点距离最小的k个点

(4)      确定前K个点所在类别出现的频率

(5)      返回频率最高的类别作为当前类别的预测

        距离计算方法有"euclidean"(欧氏距离),”minkowski”(明科夫斯基距离), "maximum"(切比雪夫距离), "manhattan"(绝对值距离),"canberra"(兰式距离), 或 "minkowski"(马氏距离)等.

        分析学的知识告诉我们Rn上范数之间是等价的,所以我们也没必要太过纠结选谁,毕竟范数之间都是可以相互控制的。

         这里我们使用最常见欧氏距离作为衡量标准,以鸢尾花数据集为例来说明K-近邻算法:

         鸢尾花数据集包含150个数据,测量变量为花瓣,花萼的长度与宽度,分类变量为setosa, versico

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值