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)
该数据集需要根据条件进行分割。在Weight=30的情况下分割数据集,将产生一个熵=0的数据集,它不需要进一步分割。
数据集1的代码是print(df.where(df['Weight']==30))。
另一个数据集是
数据集2代码为print (df.where (df['Weight']!=30))
它可以根据颜色进一步分割,新的数据集的熵为零,不需要进一步分割。
数据集--3 代码 - print (df[(df.Weight == 20) & (df.Colour =='Green')])
另一个数据集是
数据集 - 4 代码 - 打印 (df[(df.Weight == 20) & (df.Colour =='Red')])
它可以在 "天气 "上进一步拆分,它将产生两个熵为0的数据集。
数据集 - 5 代码 - print (df[(df.Weight == 20) & (df.Colour =='Red') & (df.Weather =='Cold')])
代码 - 打印 (df[(df.Weight == 20) & (df.Colour =='Red') & (df.Weather =='Hot')])
数据集 - 6
因此,使用上述条件可以形成一棵决策树(No-1)(绿色-真实路径,红色-错误路径)
<图像>。
另一个决策树(No-2)可以根据以下条件形成
数据集7代码 - print (df[(df.Colour=='Red')])
数据集8--代码--打印(df[(df.Colour=='Green')])
数据集9 代码 - 打印 (df[(df.Colour =='Red') & (df.Weather =='Hot')])
数据集10代码--打印(df[(df.Colour =='Red') & (df.Weather =='Cold')])
数据集11代码--打印(df[(df.Colour =='Green') & (df.Weather =='Hot')])
数据集12代码--打印(df[(df.Colour =='Green') & (df.Weather =='Cold')])
然而,另一个决策树(No-3)可以根据以下条件形成
全局数据集
<图像>
数据集13代码--打印(df[(df.Weather =='Hot')])
数据集14代码--打印(df[(df.Weather =='Cold')])。
数据集15代码--打印(df[(df.Weather =='Hot') & (df.Colour =='Red')])
数据集16代码 - 打印(df[(df.Weather =='Hot') & (df.Colour =='Green')])
数据集17代码 - 打印(df[(df.Weather =='Cold') & (df.Colour =='Red')])
数据集18代码--打印(df[(df.Weather =='Cold') & (df.Colour =='Green')])
我们可以使用这三个单独的决策树创建一个随机森林。
如何使用随机森林?
如果一张照片或任何其他图像有几个可用的数据点,可以用所有3个决策树进行验证,并得出可能的结果。
例如,给一张蔬菜的照片进行验证,其数据是重量=18克,颜色=红色,没有其他数据。
<图像>。
搜索操作的步骤
- 在根节点的第一个决策树中,因为它的重量是18克,所以它不符合条件(如果重量=30),采取错误的路径(数据集-2),由于颜色数据的存在,它跳转到数据集-4。它采取了默认的真实路径(在寒冷的天气下生长),得出了 "胡萝卜 "的值。
- 在第二个决策树的根节点上,由于数据集的红色,它选择了数据集7,并采用了默认的真实路径(在炎热的天气下生长)数据集9,得出的结果为 "番茄"。
- 在第三个决策中,该树在根节点采取默认的真实路径(在寒冷的天气中生长),并达到数据集14。在这个节点上,由于颜色数据的可用性,它采用了数据集17。17号数据集导致了 "胡萝卜"。
- 大部分的值是胡萝卜,因此,最终的结果是由于分类方法。
- 回归方法中使用了一种平均方法,它也预测出了 "胡萝卜 "的结果。
为了获得更好的结果
- 在全局集合中拥有更多的数据。大数据总是产生准确的结果。
- 创建更多的决策树,覆盖所有的条件
- 使用python提供的包来创建决策树和搜索操作。
结论
随机森林具有非常高的可预测性,需要很少的时间来展开,在最快的时间内提供准确的结果。
推荐文章
这是一个关于python中的随机森林的指南。在这里,我们讨论了随机森林的工作原理以及例子和代码。你也可以看看下面的文章,以了解更多信息
The postRandom forest in pythonappeared first onEDUCBA.