R语言 使用并行计算的随机森林
R编程中的随机森林基本上是一种分袋技术。从这个名字我们可以清楚地解释,这个算法基本上是用大量的树来创建森林。它是一种有监督的分类算法。
在一般情况下,如果我们在一个森林里有更多的树,它就会给所有人带来最好的美感,并被算作是最好的森林。在随机森林分类器中也是如此,树的数量越多,准确率就越高,因此它被认为是一个更好的模型。在随机森林中,你在决策树中使用的相同方法,即熵和信息增益不会被使用。在随机森林中,我们从训练集中抽取随机引导样本。
随机森林的优点
- 有利于处理大数据集。
- 学习速度快,并提供高精确度。
- 可以同时处理大量的变量。
- 过度拟合在这个算法中不是一个问题。
随机森林的劣势
- 复杂性是一个主要问题。由于该算法创建了许多树,并结合其输出以产生最佳输出,因此需要更多的计算时间和资源。
- 由于随机森林产生大量的树,所以通常训练随机森林模型的时间会更长。
并行计算
并行计算基本上是指在同一实例中使用两个或更多的核心(或处理器)来获得一个现有问题的解决方案。这里的主要目标是将任务分解成更小的子任务,并同时完成。
一个简单的数学例子将清楚地说明并行计算背后的基本理念。
假设我们有下面的表达式需要评估。
其中, a=1,b=2,c=9,d=5。
没有并行计算的正常过程将是。
第1步: 输入变量的值。
第2步: 对表达式进行评估。
第3步
第4步
第5步
第6步
在并行计算的情况下,同样的表达式评估将如下。
第1步: 输入变量的值。
第2步: 对表达式进行评估。
第3步 。
所以我们可以看到上面的区别,在第二种情况下,表达式的评估要快得多。
所以,我采取了一个雷达数据集。它总共由35个属性组成。第35个属性是目标变量,即 “g “或 “b”。这个目标变量主要代表电离层中的自由电子。”g “代表好的 “雷达回波是那些显示电离层中某种类型结构的证据,”b “代表坏的 “回波是那些没有的;它们的信号通过电离层。所以基本上,这是一个二进制分类任务。让我们从编码部分开始。
加载所需的库
读取数据集
将目标变量转换为标签为0和1的因子变量,同时检查是否有缺失的值。
由于没有缺失值,我们有一个干净的数据集。因此,进入模型构建部分。将数据集按80:20的比例分成,即训练集和测试集。
无并行计算的随机森林的实现
现在,我们将正常建立一个模型,并记录所需的时间。
输出
用并行计算实现随机森林
现在用并行计算的概念建立模型,在R中加载do Parallel库(这里我们已经在开始时加载了它,所以不需要再加载)。我们可以看到函数makePSOCKcluster(),它创建了一组并行运行的R副本并通过套接字进行通信。stopCluster()在cl中停止集群中的引擎节点。我们还将记录通过这种方法建立模型所需的时间。
输出
时间差的比较表
因此,现在制定一个表格,向我们展示这两种方法的时间。
因此,从上表中,我们可以得出结论,使用并行计算,建模过程比普通方法快 2. 200323(=13.62/6.19) 倍。