理论教育 Python计算思维-决策树与随机森林

Python计算思维-决策树与随机森林

时间:2023-11-22 理论教育 版权反馈
【摘要】:决策树利用已知事件的发生概率,以图解法实现问题的求解,因图解结果类似树状,故称决策树。当由多棵树按众数作为分类决策时,就被称为随机森林。

Python计算思维-决策树与随机森林

决策树利用已知事件的发生概率,以图解法实现问题的求解,因图解结果类似树状,故称决策树。当由多棵树按众数作为分类决策时,就被称为随机森林。

1.决策树

sklearn中的tree包提供了决策树Decision TreeClassifier类,使用过程与前面提到的支持向量机算法非常类似。对鸢尾花数据库的分类,使用决策树算法的代码如下:

程序:决策树

from sklearn import datasets

from sklearn import tree

iris=datasets.load_iris( )

X=iris.data

y=iris.target

from sklearn.model_selection import train_test_split

data_train,data_test,target_train,target_test=train_test_split(X,y)

dtree=tree.Decision TreeClassifier( )

model=dtree.fit(data_train,target_train)

pred=model.predict(data_test)

error=pred-target_test

print(target_test)

print(error)

程序运行结果如下:

[0 2 2 2 2 2 1 1 0 1 2 2 2 1 1 2 2 0 1 1 0 1 0 1 0 0 1 1 2 0 2 0 1 2 0 2 1 1]

[0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

2.随机森林

随机森林,顾名思义,是存在多棵树的一种判决系统,其输出的类别由不同树输出类别的众数而定。Leo Breiman和Adele Cutler提出随机森林的算法,而“Random Forests”是他们的商标。(www.daowen.com)

sklearn的ensemble包中包含随机森林算法,使用时通过如下语句引用:

from sklearn.ensemble import RandomForestClassifier

采用10棵树形成的随机森林作为判别树,判断鸢尾花数据库的代码如下:

程序:森林

from sklearn import datasets

from sklearn.ensemble import Random ForestClassifier

iris=datasets.load_iris( )

X=iris.data

y=iris.target

from sklearn.model_selection import train_test_split

data_train,data_test,target_train,target_test=train_test_split(X,y)

dtree=RandomForestClassifier(10) #10棵树

model=dtree.fit(data_train,target_train)

pred=model.predict(data_test)

error=pred-target_test

print(target_test)

print(error)

程序运行的结果如下:

[0 0 1 2 2 1 1 1 2 1 2 0 0 1 0 2 1 1 2 1 2 0 0 1 2 0 1 1 2 2 1 0 2 2 0 2 2 1]

[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0-1 0 0 0 0 0 0 0 0 0 0 0 0 0]

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈