python中的随机森林

329 阅读6分钟

Random forest in python

python中的随机森林简介

Python中的随机森林提供了一种使用数据子集预测结果的准确方法,它从全局数据集中分割出来,使用多种条件,利用手头的可用数据流经许多决策树,并为分类或回归案例提供了一个完美的无监督数据模型平台;它处理高维数据,不需要对初始数据进行任何预处理或转换,并允许并行处理以获得更快的结果。

Python中的随机森林简介。

随机森林的独特功能是监督学习。它的意思是,数据根据条件被隔离成多个单元,并形成多个决策树。这些决策树具有最小的随机性(低熵),为结构化的数据搜索和验证进行了整齐的分类和标记。要使数据模型在各种决策树中活跃起来,所需的训练很少。

随机森林如何工作?

随机森林的成功取决于数据集的大小。越多越好。大的数据量会导致搜索结果和验证的准确预测。大量的数据必须被逻辑地分割成数据子集,使用的条件必须详尽地涵盖数据的所有属性。

决策树将不得不使用这些数据子集和列举的条件来建立。这些树应该有足够的深度,使节点的随机性最小或为零,其熵值应该达到零。 节点应该有明确的标签,并且通过节点运行和验证任何数据应该是一项简单的任务。

我们需要建立尽可能多的决策树,明确定义条件,真实或错误的路径流。任何决策树的末端节点都应该导致一个独特的值。 每一棵决策树都要经过训练并获得结果。随机森林因其强大的数据模型和子集方法,即使在数据缺失的情况下也能返回准确的结果而闻名。

任何搜索或验证都应涵盖所有的决策树,并对结果进行汇总。如果有任何数据缺失,则假定该条件的真实路径,搜索流程继续进行,直到所有节点被消耗。在分类方法的情况下,假定结果的多数值,在回归方法的情况下,取平均值作为结果。

实例

为了解释随机森林的概念,我们使用Python Panda数据框架创建了一个关于蔬菜的全球数据集。这个数据集具有高熵,这意味着高随机性和不可预测性。

创建该数据集的代码是

# Python code to generate a new data set
    
import pandas as pd

vegdata = {'Name': ['Carrot','Brinjal','Spinach','Spinach','Carrot','Tamato','Tamato','Carrot','Brinjal','Spinach','Tamato','Carrot','Carrot','Brinjal','Brinjal'], 'Colour': ['Red','Green','Green','Green','Red','Red','Red','Red','Green','Green','Red','Red','Red','Green','Green'],'Weather':['Cold','Hot','Cold','Cold','Cold','Hot','Hot','Cold','Hot','Cold','Hot','Cold','Cold','Hot','Hot'],'Weight':[20,20,30,30,20,20,20,20,20,30,20,20,20,20,20] }

df = pd.DataFrame(vegdata, columns = ['Name','Colour','Weather','Weight'])

print (df)
 
The result is (Global Data set)

Random forest in python output 1

该数据集需要根据条件进行分割。在Weight=30的情况下分割数据集,将产生一个熵=0的数据集,它不需要进一步分割。

数据集1的代码是print(df.where(df['Weight']==30))。

Random forest in python output 2

另一个数据集是

数据集2代码为print (df.where (df['Weight']!=30))

Random forest in python output 3

它可以根据颜色进一步分割,新的数据集的熵为零,不需要进一步分割。

数据集--3 代码 - print (df[(df.Weight == 20) & (df.Colour =='Green')])

Random forest in python output 4

另一个数据集是

数据集 - 4 代码 - 打印 (df[(df.Weight == 20) & (df.Colour =='Red')])

Random forest in python output 5

它可以在 "天气 "上进一步拆分,它将产生两个熵为0的数据集。

数据集 - 5 代码 - print (df[(df.Weight == 20) & (df.Colour =='Red') & (df.Weather =='Cold')])

Random forest in python output 6

代码 - 打印 (df[(df.Weight == 20) & (df.Colour =='Red') & (df.Weather =='Hot')])

数据集 - 6

Random forest in python output 7

因此,使用上述条件可以形成一棵决策树(No-1)(绿色-真实路径,红色-错误路径)

<图像>。

另一个决策树(No-2)可以根据以下条件形成

数据集7代码 - print (df[(df.Colour=='Red')])

Random forest in python output 8

数据集8--代码--打印(df[(df.Colour=='Green')])

output 9

数据集9 代码 - 打印 (df[(df.Colour =='Red') & (df.Weather =='Hot')])

output 10

数据集10代码--打印(df[(df.Colour =='Red') & (df.Weather =='Cold')])

output 11

数据集11代码--打印(df[(df.Colour =='Green') & (df.Weather =='Hot')])

output 12

数据集12代码--打印(df[(df.Colour =='Green') & (df.Weather =='Cold')])

output 13

然而,另一个决策树(No-3)可以根据以下条件形成

全局数据集

<图像>

数据集13代码--打印(df[(df.Weather =='Hot')])

output 14

数据集14代码--打印(df[(df.Weather =='Cold')])。

output 15

数据集15代码--打印(df[(df.Weather =='Hot') & (df.Colour =='Red')])

output 16

数据集16代码 - 打印(df[(df.Weather =='Hot') & (df.Colour =='Green')])

output 17

数据集17代码 - 打印(df[(df.Weather =='Cold') & (df.Colour =='Red')])

output 18

数据集18代码--打印(df[(df.Weather =='Cold') & (df.Colour =='Green')])

output 19

我们可以使用这三个单独的决策树创建一个随机森林。

如何使用随机森林?

如果一张照片或任何其他图像有几个可用的数据点,可以用所有3个决策树进行验证,并得出可能的结果。

例如,给一张蔬菜的照片进行验证,其数据是重量=18克,颜色=红色,没有其他数据。

<图像>。

搜索操作的步骤

  1. 在根节点的第一个决策树中,因为它的重量是18克,所以它不符合条件(如果重量=30),采取错误的路径(数据集-2),由于颜色数据的存在,它跳转到数据集-4。它采取了默认的真实路径(在寒冷的天气下生长),得出了 "胡萝卜 "的值。
  2. 在第二个决策树的根节点上,由于数据集的红色,它选择了数据集7,并采用了默认的真实路径(在炎热的天气下生长)数据集9,得出的结果为 "番茄"。
  3. 在第三个决策中,该树在根节点采取默认的真实路径(在寒冷的天气中生长),并达到数据集14。在这个节点上,由于颜色数据的可用性,它采用了数据集17。17号数据集导致了 "胡萝卜"。
  4. 大部分的值是胡萝卜,因此,最终的结果是由于分类方法。
  5. 回归方法中使用了一种平均方法,它也预测出了 "胡萝卜 "的结果。

为了获得更好的结果

  1. 在全局集合中拥有更多的数据。大数据总是产生准确的结果。
  2. 创建更多的决策树,覆盖所有的条件
  3. 使用python提供的包来创建决策树和搜索操作。

结论

随机森林具有非常高的可预测性,需要很少的时间来展开,在最快的时间内提供准确的结果。

推荐文章

这是一个关于python中的随机森林的指南。在这里,我们讨论了随机森林的工作原理以及例子和代码。你也可以看看下面的文章,以了解更多信息

  1. Python中的回溯
  2. 磕磕绊绊的问题 Python
  3. 语法和语法分析
  4. Python中的插入式排序

The postRandom forest in pythonappeared first onEDUCBA.