格斯文档网

您现在的位置是:格斯文档网 > 心得体会 >

数据挖掘之随机森林算法实验报告

 太原师范学院

 实 实

 验

 报

 告 告

 Experimentation Report of Taiyuan Normal University

  系

 部

 计算机系

  年

 级

 大三

 课

 程

 大数据分析

  姓

 名

 XXX

 同组者

 日

 期

  项 项

 目

 数据挖掘 之 随机森林算法

 一、 实验目的 1. 了解随机森林。随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。

 2. 掌握随机森林的相关知识,信息、熵、信息增益等的概念。

 3. 掌握随机森林中数据分析的几种基本方法,决策树算法,CART 算法等。

 4. 了解集成学习的定义和发展。

 5. 掌握随机森林的生成规则,随机森林的生成方法,随机森林的特点等相关知识。

 二、 实验内容 1. 结合老师上课所讲内容及课本知识,通过查找相关资料,报

 告

 内

 容

 一、实验目的

 四、实验方法

  二、实验原理

 五、实验记录及数据处理 三、实验仪器及材料

 六、误差分析及讨论

 学习与决策树,随机森林相关的知识。

 2. 查找相关例题,深入理解随机森林的各种算法。

 3. 找一个数据集,利用随机森林的相关算法训练随机森林,对样本进行判段并计算其判断的准确度。

 三、 实验仪器及平台 计算机一台 MATLAB 2018a 四、 实验原理 1. 随机森林的基本概念:

 通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。随机森林的名称中有两个关键词,一个是“随机”,一个就是“森林”。“森林”我们很好理解,一棵叫做树,那么成百上千棵就可以叫做森林了,这样的比喻还是很贴切的,其实这也是随机森林的主要思想--集成思想的体现。

 2. 决策树 2.1 信息、熵、信息增益 这三个基本概念是决策树的根本,是决策树利用特征来分类时,确定特征选取顺序的依据。

 2.2 决策树算法 决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可

 读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。

 3. CART 算法 Classification And Regression Tree,即分类回归树算法,简称 CART 算法,它是决策树的一种实现。

 CART 算法是一种二分递归分割技术,把当前样本划分为两个子样本,使得生成的每个非叶子结点都有两个分支, 因此 CART 算法生成的决策树是结构简洁的二叉树。由于 CART 算法构成的是一个二叉树,它在每一步的决策时只能是“是”或者“否”,即使一个 feature 有多个取值,也是把数据分为两部分。

 4. 决策树 C4.5 一种分类算法,目标是将具有 p 维特征的 n 个样本分到 c 个类别中去。相当于做一个投影,c=f(n),将样本经过一种变换赋予一种类别标签。决策树为了达到这一目的,可以把分类的过程表示成一棵树,每次通过选择一个特征 pi来进行分叉。

 5. 随机森林的生成规则 (1)

 如果训练集大小为 N,随机且有放回地从训练集中抽 取 N 个训练样本,构成一个新的样本集(含重复的训练样本)。

 (2)如果每个样本的特征维度为 M ,指定一个常数 m,且

 m< M,随机地从 M 个特征中选取 m 个特征子集,每次树进行分裂时,从这 m 个特征中选择最优的,决策树成长期间 m的大小始终不变。(注意:此处采用无放回的选择)

 (3)每棵树都尽可能最大程度地(完全地)生长,并且没 有剪枝过程。

 (将预测结果累加起来从而得到整个随机森林的预测果)

 通过之前的三步就可以得到一棵决策树,重复 X 次这样的 过程那么就能得到 X 棵决策树。来一个测试样本就对它分类一遍,就得到 X 个分类结果。使用简单的投票机制(或用最终分类结果)来判别该样本的所属类。

 注意:两类随机性的引入对随机森林的生成至关重要。

 6. 随机森林的简单实例分析 根据已有的训练集已经产生了对应的随机森林,随机森林如何利用某一个人的年龄(Age)、性别(Gender)、教育情况(Hinhest Educational Qualification)、工作领域(Industry)以及住宅地(Residence)共 5 个字段来预测他的收入层次。

 表 1

 收入层次

  Band1 Below$40000 Band 2 $40000 – 150000 Band3 More

 than $150000

 随机森林中每一棵树都可以看做是一棵 CART (分类回归树),这里假设森林中有 5 棵 CART 树,总特征个数 N=5, 取m=1 (m 为建立决策树时,随机选取的特征个数,这里假设每个 CART 树对应一个不同的特征)。(表格中的百分数指的是在不同条件下的数据样本占对应类别的比例)

  假如要预测的某个人的信息如下:

 1. Age : 35 years ; 2. Gender : Male ; 3. Highest Educational Qualification : Diploma holder; 4. Industry :Manufacturing; 5. Residence : Metro. 根据这五棵 CART 树的分类结果,可以针对此人的信息建立收入层次的分布情况:

  最后,我们得出结论:这个人的收入层次 70%是一等,24%是二等,6%是三等。所以我们得出结论:这个人的收入层次是一等(小于$40000)。

 五、 实验流程 1. 寻找数据集。从 UCI 数据集网站下载了红葡萄酒品质的数据集。

 2. 打开 MATLAB 2018a,清空工作区变量。

 3. 导入数据集。把下载好的数据集导入进来。

 4. 按照写好的代码,利用数据集训练并生成随机森林,计算随机森林判断样本类别的准确率。

 六、随机森林实现代码 %清空环境变量 clear all clc warning off

 %导入数据

 %1.随机产生训练集 测试集 a=randperm(1599); Train=winequalityred(a(1:1200),:);

  %产生 1200 个训练集 Test=winequalityred(a(1201:end),:);

  %剩下的是测试集 399个 %2.训练数据 P_train=Train(:,1:11); T_train=Train(:,12);

 %3.测试数据 P_test=Test(:,1:11); T_test=Test(:,12);

 %调用 Random Forest 算法 btree=TreeBagger(50,P_train,T_train,"NVarToSample","all","Method","classification"); [pred_labels,scoresl]=predict(btree,Test); predict_label=cellfun(@(x)str2double(x),pred_labels);

 %将 cell 类型的 pred_labels 转化为 double 型的 predict_label T_test1=table2cell(T_test);

 %将 table 型的 T_test 转化为 cell 型的 T_test1 T_test2=cell2mat(T_test1);

  %将 cell 型的 T_test 转化为 double 型的 T_test2 accuray=sum(T_test2( :,1)==predict_label( :,1))/399;

  %计算测试集数据的标签预测准确率 六、 实验结果分析

  七、 心得体会 训练随机森林时一定要多次实验,选取不同的参数,以求得预测的最大准确率。

 将 table 型数据通过 cell 型数据才能转换为 double 类型的数据。

推荐访问:算法 数据挖掘 随机

版权所有:格斯文档网 2010-2024 未经授权禁止复制或建立镜像[格斯文档网]所有资源完全免费共享

Powered by 格斯文档网 © All Rights Reserved.。浙ICP备19042928号