数据挖掘-分类算法-最近邻分类

最近邻算法

基本思路:近朱者赤,近墨者黑
定义:以全部训练样本作为代表点,计算未知样本与所有训练样本的距离,并以最近邻者的类别作为决策未知样本类别的唯一依据
缺陷:对噪声数据过于敏感

K-最近邻算法(KNN)

目的:解决最近邻算法的缺陷
解决思路:把位置样本周边的多个最近样本计算在在,扩大参与决策的样本量,避免个别数据直接决定决策结果。ps:民主决策
基本思路:选择距离未知样本一定范围内确定个数的K个样本,该K个样本大多数属于某一类型,该未知样本判定为该类型。
实现步骤

  1. 初始化距离为最大值
  2. 计算未知样本与每个训练样本的距离dist
    连续性自变量:欧氏距离(通常)
    分类变量:Jaccard距离或者基于简单匹配系数的距离等
  3. 得到前K个最邻近样本中的最大距离maxdist
  4. 如果dist<maxdist,则将该训练样本作为K-最近邻样本
  5. 重复234,直到未知样本和所有训练样本的距离都算完
  6. 统计K个最近邻样本中每个类别出现的次数
  7. 选择出现频率最大的类别作为该未知样本的类别
    缺陷及改进策略
    样本不平衡-----附加权值-----和该样本距离小的邻居权值大,和该样本距离大的邻居权值则相对较小
    需要进行繁重的距离计算----分组快速搜随近邻法-----将样本集按近邻关系分解成组,给出每组质心的位置,以质心作为代表点,和未知样本计算距离,选出距离最近的一个或若干个组,再在组的范围内应用一般的knn算法。
    需要进行全部样本的存储-----压缩紧邻算法-----采取一定的算法产生一个新的样本集,该样本集拥有比原样本集少的多的样本数量,但仍然保持有对未知样本进行分类的能力。

R代码举例

发布了0 篇原创文章 · 获赞 0 · 访问量 11

猜你喜欢

转载自blog.csdn.net/weixin_45804816/article/details/105301627
今日推荐