数据挖掘算法R语言实现KNN、朴素贝叶斯、决策树

引言:本文是数据挖掘中的一些常用算法介绍。

目录

knn算法

首先选择合适的K

朴素贝叶斯 算法

决策树算法

代码汇总


knn算法

K近邻(K-Nearest Neighbor, KNN)是一种最经典和最简单的有监督学习方法之一。K-近邻算法是最简单的分类器,没有显式的学习过程或训练过程,是懒惰学习(Lazy Learning)。当对数据的分布只有很少或者没有任何先验知识时,K 近邻算法是一个不错的选择。

思想和步骤:先选择一个合适的K,再计算未知样本到已知训练样本的距离,然后按照少数服从多数原则,选择最近距离的K个训练样本中个数最多属于同一个类别,此时该未知样本就属于那一类。

就用R中最常用的数据集iris来举例吧

首先选择合适的K

rm=(list=ls())   # 清除变量       
library(class)  #导入KNN算法的包 可以用install.packages(“class”)下载包
n=12              #先规定K的最大范围

 #利用十折交叉验证
N = nrow(iris)
k_acc = c()
for(k in 1:n){
  allACC = c()
  for(c in 1:10){
    test.idx = seq(c,N,by = 10)
    train.idx = setdiff(1:N,test.idx)
    test.data = iris[test.idx,]
    train.data = iris[train.idx,]
    p = knn(train = train.data[,1:4],test = test.data[,1:4],cl = train.data[,5],k = k)
    tl = table(truth = test.data[,5],predict = p)
    acc = sum(diag(tl))/sum(tl)
    allACC =append(allACC,acc)
  }
  k_acc = rbind(k_acc,mean(allACC))
}
k_final = which.max(k_acc)

计算得到K=7精度最高

利用得到的K进行预测

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
#Something about the data mining 数据挖掘(Data mining):是数据库知识发现(英语:Knowledge-Discovery in Databases,简称:KDD)中的一个步骤。数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器 学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。 数据分析十大经典算法: 1.Apriori :是一种最有影响的挖掘布尔关联规则频繁项集的算法。 2.C4.5:是机器学习算法中的一种分类决策树算法,其核心算法是 ID3 算法。 3. Naive Bayes:在众多分类方法中,应用最广泛的有决策树模型和朴素贝叶斯(Naive Bayes) 4. K-means 算法:是一种聚类算法 5. SVM:一种监督式学习方法,广泛应用于统计分类以及回归分析中 6.CART:分类与回归树,下面有两个关键的思想,第一个是关于递归地划分自变量空间的想法,第二个是用验证数据进行减枝 7. KNN:是一个理论上比较成熟的的方法,也是最简单的机器学习方法之一。 8. Pagerank:是 google 算法的重要内容。 9. adaboost:是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器然后把弱分类器集合起来,构成一个更强的最终分类器。 10. EM:最大期望值法。 注意:十大算法大概分类: KNN决策树(以 C4.5)为例,SVM,AdaBoost,CART,Naive Bayes 都是分类作为目的的算法 而 K-means 是最常见的聚类算法;Apiori 是关联规则挖掘算法;EM 是一种概率模型参数的算 法;PageRank 是一种链接分析的算法,主要用于图数据里,对结点重要性进行排名.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值