随机森林
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.
• • • • • • •
> > > > >
library(randomForest) y<y<-read.table("train.txt" ,head=TRUE) y set.seed(17) y.rf <- randomForest(type ~ .,data = y, <mtry = 2, importance = TRUE, do.trace = 100) > print(y.rf)
用read.table()函数可读入数据,如 read.table()函数可读入数据,如 • > rt <- read.table("houses.data") <此时变量rt是一个数据框,其格式与纯文本 此时变量rt是一个数据框,其格式与纯文本 文件"houses.data"格式相同 文件"houses.data"格式相同
t
• 当生成一棵分类树时,通常需要防止出现
过拟合现象。过拟合指的是分类树太复杂 以至于包含了太多的噪声,对于测试数据 工作得很好而对测试数据的分类性能很差。 一种常见的方法是令分类树充分生长,然 后利用剪枝技术对树进行修剪。
• 自助法重采样
在统计量重采样技术中,一种新方法是自 助法(bootstrap)。自助法是从原始的样 助法(bootstrap)。自助法是从原始的样 本容量为N的训练样本集合中随机抽取N 本容量为N的训练样本集合中随机抽取N个 样本生成新的训练样本集,抽样方法为有 放回抽样,这样重新采样的数据集不可避 免地存在着重复的样本。独立抽样k 免地存在着重复的样本。独立抽样k次,生 成k个相互独立的自助样本集。
• 单棵树生长方法
生长单棵分类树的原则是递归分区。最简单的 树是二叉树,即树中每个节点最多有两个分支节 点(见图)。分类树按照不纯度最小的原则,首 先找到一个特征把全部训练样本分成两组,然后 按照同样的规则对节点处的样本进行再次分类。 在二叉树中,根节点包含全部训练数据,按照分 支生成规则分裂为左孩子节点和右孩子节点,它 们分别包含训练数据的一个子集,孩子节点可以 继续分裂。这样依次进行,直到满足分支停止规 则停止生长为止。这时每个终端节点称为叶节点。 分支节点是判断特征是否满足 m ≤ M T是每个节 ( 点处判断的阈值),并按照节点不纯度最小的原 则生成。节点n 则生成。节点n上的分类数据如果都来自于同一类 别,则此节点的不纯度i (n)=0;如果分类数据服 别,则此节点的不纯度i (n)=0;如果分类数据服 从均匀分布,则不纯度很大。常见的不纯度的度 量有3种:误分类不纯度,熵不纯度和Gini不纯度。 量有3种:误分类不纯度,熵不纯度和Gini不纯度。
scan( )函数 )函数
• scan( )函数可以直接读纯文本文件数据。 )函数可以直接读纯文本文件数据。
如: > w <- scan("weight.data") <• 也可以将由scan( )读入的数据存放成矩阵 也可以将由scan( )读入的数据存放成矩阵 格式,如果将"weight.data"中的数据放在 格式,如果将"weight.data"中的数据放在 一个10行20列的矩阵中,其命令格式为 一个10行20列的矩阵中,其命令格式为 • > X <- matrix(scan("weight.data", 0), <nrow=10, ncol=20, byrow=TRUE) >X
• 随机森林通过在每个节点处随机选择特征
进行分支,最小化了各棵分类树之间的相 关性,提高了分类精确度。因为每棵树的 生长很快,所以随机森林的分类速度很快, 并且很容易实现并行化。
• 随机森林算法作为一种新的组合学习算法,其良好
的分类能力和快速的运算能力都得到了充分 的体现。由于简单有效, 随机森林算法会在生物信 息学领域中有更广泛的应用前景, 例如预测蛋白质 的亚细胞定位、膜蛋白的类型、转录起始点以及 蛋白质同源寡聚体分类等。
随机森林
• 建立随机森林的基本思想是,通过自助法 建立随机森林的基本思想是,
(boot-strap)重采样技术, (boot-strap)重采样技术,不断生成训练样本 和测试样本, 和测试样本,由训练样本生成多个分类树组 成随机森林, 成随机森林,测试数据的分类结果按分类树 投票多少形成的分数而定。随机森林有两 个重要参数, 个重要参数,一是树节点预选的变量个数 mtry,二是随机森林中树的个数ntree,一般默 mtry,二是随机森林中树的个数ntree,一般默 认mtry= mall (mall为所有变量的个 (mall为所有变量的个 数),ntree =500。算法通过R语言编制的程 =500。算法通过R 序实现。
• > rt<-read.table("exam1.txt“,head=TRUE); rt rt<-read.table("exam1.txt“ •
> lm.sol<-lm(Weight, data=rt) lm.sol<> summary(lm.sol) 文件的第一行是读文件exam1.txt;并认为文本文件 文件的第一行是读文件exam1.txt;并认为文本文件 exam1.txt中的第一行是文件的头head=TRUE exam1.txt中的第一行是文件的头head=TRUE ;否则 (FALSE)文件中的第一行作为数据处理。并将读出的 FALSE)文件中的第一行作为数据处理。并将读出的 内容放在变量rt中。第二个rt是显示变量的内容(如果 内容放在变量rt中。第二个rt是显示变量的内容(如果 一行执行多个命令,需用分号(;)隔开) 第二行是对数据rt中的重量作线性回归,其计算结果放 第二行是对数据rt中的重量作线性回归,其计算结果放 置在变量lm.sol中 置在变量lm.sol中 第三行是显示变量lm.sol的详细内容 第三行是显示变量lm.sol的详细内容
• • •
随机森林算法
• 随机森林算法是Leo Breiman于2001年提出
的一种新型分类和预测模型,它具有需要调 整的参数较少、不必担心过度拟合、分类 速度很快, 能高效处理大样本数据、能估计 哪个特征在分类中更重要以及较强的抗噪 音能力等特点, 因此, 在基因芯片数据挖掘、 代谢途径分析及药物筛选等生物学领域得 到应用并取得了较好的效果。该方法是基 于决策树(decision tree) 的分类器集成算 法。
简单介绍: 简单介绍:
• > x <- c(1,2,3) <• > x #输出x #输出x • “#”号是说明语句字符, #后面的语句是说明 号是说明语句字符, #后面的语句是说明
语句; <-表示赋值,c()表示数组,X<语句; <-表示赋值,c()表示数组,X<-c() 即表 示将一组数据赋给变量X 示将一组数据赋给变量X; >号是计算机提 示符
随机森林算法基本原理
• 随机森林是通过一种新的自助法重采样技术生成
很多个树分类器, 其步骤如下: 1. 从原始训练数据中生成k个自助样本集, 每个 自助样本集是每棵分类树的全部训练数据。 2. 每个自助样本集生长为单棵分类树。在树的每 个节点处从M个特征中随机挑选m个特征 (m《M), 按照节点不纯度最小的原则从这个m 特征中选出一个特征进行分支生长。这棵分类树 进行充分生长, 使每个节点的不纯度达到最小, 不 进行通常的剪枝操作。
• 链接嵌入R软件的数据库,可以用data()函数调用这 链接嵌入R软件的数据库,可以用data()函数调用这
些数据库与软件包。如: > data(iris) R软件中提供了iris数据 ,调用iris数据集 软件中提供了iris数据 ,调用iris数据集 library()为调用程序包命令。如: library()为调用程序包命令。如: > library(randomForest) 调用随机森林程序包 set.seed(2) 括号中的2 括号中的2叫做随机数种子,在设定好了随机数 种子后,你每次重新运行这个程序时得到的随机 数都是相同的。然后把set.seed(2)这句话去掉, 数都是相同的。然后把set.seed(2)这句话去掉, 再运行两遍,结果是不一样的。
• •
读数据的方式
• 读纯文本文件 • 读纯文本文件有两个函数,一个是
read.table()函数,另一个是scan()函数 read.table()函数,另一个是scan()函数
read.table()函数 read.table()函数
• read.table()函数是读表格形式的文件。利 read.table()函数是读表格形式的文件。利
ห้องสมุดไป่ตู้
R软件
• R语言提供了一系列的统计工具(如线性和
非线性模型,统计检验,时间序列分析, 分类,聚类,回归,……) 分类,聚类,回归,……) • R 是一个程式语言,R 语言的基本要素是向 量 (vector), 不是数目 (scalar). 因此, 以向 量或矩阵的运算来说, 在 R 中通常只需 1 行程式码就可以解決.
2. • > library(randomForest) • > y<-read.table("train.txt",head=TRUE) y<• > set.seed(71) • > y.rf <- randomForest(type ~ ., data=y, <importance=TRUE,proximity=TRUE) • > print(y.rf)
• 3. 根据生成的多个树分类器对新的数据进
行预测,分类结果按每个树分类器的投票多 少而定。每次抽样生成自助样本集, 全体样 本中不在自助样本中的剩余样本称为袋外 数据(out-of-bag,OOB),OOB数据被用来预 测分类正确率, 每次的预测结果进行汇总来 得到错误率的OOB估计, 用于评估组合分类 器的正确率。