数据分析与挖掘 - R语言:贝叶斯分类算法(案例三)

案例三比较简单,不需要自己写公式算法,使用了R自带的naiveBayes函数。

代码如下:

> library(e1071)> classifier<-naiveBayes(iris[,1:4], iris[,5])
#或写成下面形式,都可以。
> classifier<- naiveBayes(Species ~ ., data = iris)    #其中Species是类别变量

#预测
> predict(classifier, iris[1, -5])

预测结果为:

[1] setosa
Levels: setosa versicolor virginica

和原数据一样!

*********************************这里是分割线**************************************

我们再拿这个方法来预测一下案例一中的样本。

#样本数据集:
mydata <- matrix(c("sunny","hot","high","weak","no",
                 "sunny","hot","high","strong","no",
                 "overcast","hot","high","weak","yes",
                 "rain","mild","high","weak","yes",
                 "rain","cool","normal","weak","yes",
                 "rain","cool","normal","strong","no",
                 "overcast","cool","normal","strong","yes",
                 "sunny","mild","high","weak","no",
                 "sunny","cool","normal","weak","yes",
                 "rain","mild","normal","weak","yes",
                 "sunny","mild","normal","strong","yes",
                 "overcast","mild","high","strong","yes",
                 "overcast","hot","normal","weak","yes",
                 "rain","mild","high","strong","no"), byrow = TRUE, nrow=14, ncol=5)

#添加列名:
colnames(mydata) <-  c("outlook","temperature","humidity","wind","playtennis")

#贝叶斯算法:
m<-naiveBayes(mydata[,1:4], mydata[,5])
#或使用下面的方法
m<- naiveBayes(playtennis ~ ., data = mydata)    #报错:Error in sum(x) : invalid ‘type‘ (character) of argument 无效的类型,只能是数字?

#创建预测数据集:
new_data = data.frame(outlook="rain", temperature="cool", humidity="normal", wind="strong", playtennis="so")

#预测:
predict(m, new_data)

在使用naiveBayes函数时报错:Error in sum(x) : invalid ‘type‘ (character) of argument

我们看一下官方文档,对data有这样一句描述:

data  Either a data frame of predictors (categorical and/or numeric) or a contingency table.

data是一个数字类型的数据框。

时间: 2024-11-08 20:28:18

数据分析与挖掘 - R语言:贝叶斯分类算法(案例三)的相关文章

下载零基础数据分析与挖掘R语言实战课程(R语言)

随着大数据在各行业的落地生根和蓬勃发展,能从数据中挖金子的数据分析人员越来越宝贝,于是很多的程序员都想转行到数据分析,挖掘技术哪家强?当然是R语言了,R语言的火热程度,从TIOBE上编程语言排名情况可见一斑.于是善于学习的程序员们开始了R语言的学习之旅.对于有其他语言背景的程序员来说,学习R的语法小菜一碟,因为它的语法的确太简单了,甚至有的同学说1周就能掌握R语言,的确如此.但是之后呢?……好像进行不下去了!死记硬背记住了两个分析模型却不明其意,输出结果如同天书不会解读,各种参数全部使用缺省值,

零基础数据分析与挖掘R语言实战课程(R语言)

随着大数据在各行业的落地生根和蓬勃发展,能从数据中挖金子的数据分析人员越来越宝贝,于是很多的程序员都想转行到数据分析, 挖掘技术哪家强?当然是R语言了,R语言的火热程度,从TIOBE上编程语言排名情况可见一斑.于是善于学习的程序员们开始了R语言的学习 之旅.对于有其他语言背景的程序员来说,学习R的语法小菜一碟,因为它的语法的确太简单了,甚至有的同学说1周就能掌握R语言,的确如 此.但是之后呢?……好像进行不下去了!死记硬背记住了两个分析模型却不明其意,输出结果如同天书不会解读,各种参数全部使用缺

数据分析与挖掘 - R语言:贝叶斯分类算法(案例二)

接着案例一,我们再使用另一种方法实例一个案例 直接上代码: #!/usr/bin/Rscript library(plyr) library(reshape2) #1.根据训练集创建朴素贝叶斯分类器 #1.1.生成类别的概率 ##计算训练集合D中类别出现的概率,即P{c_i} ##输入:trainData 训练集,类型为数据框 ## strClassName 指明训练集中名称为 strClassName列为分类结果 ##输出:数据框,P{c_i}的集合,类别名称|概率(列名为 prob) cla

数据分析与挖掘 - R语言:KNN算法

一个简单的例子!环境:CentOS6.5Hadoop集群.Hive.R.RHive,具体安装及调试方法见博客内文档. KNN算法步骤:需对所有样本点(已知分类+未知分类)进行归一化处理.然后,对未知分类的数据集中的每个样本点依次执行以下操作:1.计算已知类别数据集中的点与当前点(未知分类)的距离.2.按照距离递增排序3.选取与当前距离最小的k个点4.确定前k个点所在类别的出现频率5.返回前k个点出现频率最高的类别作为当前点的预测类别 编写R脚本: #!/usr/bin/Rscript #1.对i

2015lopdev生态联盟开发者大会:股市中的R语言量化算法模型

前言 记得10年前还在上学的时候,总是参加IBM的大会,看着各种新技术从实验室创造,特别地神奇.今天我也有机会站在了IBM大会的讲台上,给大家分享我所研究的R语言技术,对我来说也是一件非常有纪念意义的事情. 感谢IBM主办方的邀请,也真心希望有机会与IBM建立合作机会. 目录 我的演讲主题:股市中的R语言量化算法模型 会议体验和照片分享 整体文章:http://blog.fens.me/meeting-lopdev-20150922/

2015WOT移动互联网开发者大会:股市中的R语言量化算法模型

前言 大会历时两天,以"洞察移动互联网用户行为 分享移动应用研发实践"为主题,共设立"架构与设计"."平台与技术"."MDSA创新与创业"."移动游戏"."算法分析"."HTML5专场"."运维安全"."新浪微博技术"等八大技术专场,并垂直整合了技术和体验,深度服务于参会者与讲师.同时,在内容上也深度结合了目前移动互联网环境,通

R语言 神经网络算法

人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经网络由大量的人工神经元联结进行计算.大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统.现代神经网络是一种非线性统计性数据建模工具,常用来对输入和输出间复杂的关系进行建模,或用来探索数据的模式. 人工神经网络从以下四个方面去模拟人的智能行为: 物理结构:人工神经元将模拟生物神经元的功能 计算模拟:人脑的神经元有局部计算和存储的功能,通过连接构成一个系统.人工神经网络中也有大量

R语言高性能编程(三)

一.使用并行计算加倍提升性能1.数据并行 VS 任务并行实现数据并行的算法scoket 并行性注意并行计算时间并不与执行任务的计算资源数目成正比(计算机核心),amdahl定律:并行代码的速度受限于串行执行的部分,包括并行性带来的开销在非windows系统中,parallel支持分叉集群(交叉法),新的work进程会从父R进程分叉出来,并拷贝数据.好处是不需要显示的创建和销毁集群实现任务并行的算法 2.计算机集群并行执行多个任务只有基于socket的集群可以做到这一点,因为进程不可能被分叉到另外

R语言与概率统计(三) 多元统计分析

> #############6.2一元线性回归分析 > x<-c(0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.20,0.21,0.23) > y<-c(42.0,43.5,45.0,45.5,45.0,47.5,49.0,53.0,50.0,55.0,55.0,60.0) > plot(x~y) > lm.sol<-lm(y ~ x) > summary(lm.sol) Call: lm(formul