我是靠谱客的博主 单纯鼠标,最近开发中收集的这篇文章主要介绍决策树,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

决策树(Decision Tree)

每个节点上对某个特征进行判断,根据结果转向某个分支,如图是一个决策树示意图,每个节点根据某个条件分裂节点

1.在Python中调用决策树算法

from sklearn import tree
#决策树分类
dt=tree.DecisionTreeClassifier()
#决策树回归
dt=tree.DecisionTreeRegressor()

2.iris数据集上应用决策树分类

from sklearn import tree
#设定X,y值
features=[ 'SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm']
X=iris[features]
from sklearn.preprocessing import LabelEncoder
le=LabelEncoder()
le.fit(iris[ 'Species'])
y=le.transform(iris[ 'Species'])
#设定模型
dt=tree.DecisionTreeClassifier()
#训练模型,并得到准确率
from sklearn.model_selection import cross_val_score
score=cross_val_score(dt,X,y,cv= 5,scoring= 'accuracy')
print(np.mean(score))
#和KNN分类的结果进行比较,你会发现什么结论?

3.iris数据集上应用决策树回归

from sklearn import tree
#重新设定X,y值,回归对象是iris花的PetalWidthCm
features=[ 'SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm']
X=iris[features]
y=iris[ 'PetalWidthCm']
#设定决策树回归的模型
dt=tree.DecisionTreeRegressor()
from sklearn.model_selection import cross_val_score
scores=-cross_val_score(dt,X,y,scoring= 'neg_mean_squared_error')
print(np.mean(scores))
#复习之前的课程中关于linear regression的内容,比较KNN回归、线性回归的结果和决策树回归的结果有什么不同

随机森林

随机森林算法可以用于解决分类和回归问题,在决策树的基础上,引入了多棵决策树,并综合所有决策树,根据少数服从多数(majority voting)或者求平均值等原则,得出结果,下图是随机森林的示意图:

一般而言,随机森林的分类和回归的效果会比KNN、Decision Tree更好

集成学习:构建多个模型,使用某种策略将多个结果集成起来,作为最终结果,随机森林也属于集成学习,随机森林回归可以通过对各个模型结果加权平均得到结果,随机森林分类可以通过majority voting原则来决定结果

1.Python调用随机森林算法

from sklearn import ensemble
#随机森林分类
rf=ensemble.RandomForestClassifier(决策树数)
#随机森林回归
rf=ensemble.RandomForestRegressor(决策树数)
rf.fit(X,y)

2.iris数据集上应用随机森林分类

from sklearn import ensemble
#设定随机森林分类模型
rf=ensemble.RandomForestClassifier( 10)
from sklearn.model_selection import cross_val_score
#随机森林分类,X,y可以根据你想探究的字段之间的关系进行设置
features=[ 'SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm']
X=iris[features]
from sklearn.preprocessing import LabelEncoder
le=LabelEncoder()
le.fit(iris[ 'Species'])
y=le.transform(iris[ 'Species'])
#评估分类模型性能
score=cross_val_score(rf,X,y,cv= 5,scoring= 'accuracy')
print(np.mean(score))
#随机森林的计算时间和决策树(基分类器)的数量成正比,尝试调整随机森林中的决策树的数量,看看分类的准确率是如何变化的
#将结果和KNN、DecisionTree分类的结果进行比较,看看你能得出什么结论

3.iris数据集上随机森林回归

from sklearn import ensemble
#设定随机森林回归模型
rf=ensemble.RandomForestRegressor( 10)
#随机森林分类,X,y可以根据你想探究的字段之间的关系进行设置
features=[ 'SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm']
X=iris[features]
y=iris[ 'PetalWidthCm']
#评估模型性能
score=-cross_val_score(rf,X,y,cv= 5,scoring= 'neg_mean_squared_error')
print(np.mean(score))
#随机森林的计算时间和决策树(基分类器)的数量成正比,但是基分类器的数量和结果准确率却不一定成正比,尝试调整随机森林中的决策树的数量,看看分类的准确率是如何变化的
#将结果和KNN、DecisionTree分类的结果进行比较,看看你能得出什么结论

决策树(Decision Tree)

每个节点上对某个特征进行判断,根据结果转向某个分支,如图是一个决策树示意图,每个节点根据某个条件分裂节点

1.在Python中调用决策树算法

from sklearn import tree
#决策树分类
dt=tree.DecisionTreeClassifier()
#决策树回归
dt=tree.DecisionTreeRegressor()

2.iris数据集上应用决策树分类

from sklearn import tree
#设定X,y值
features=[ 'SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm']
X=iris[features]
from sklearn.preprocessing import LabelEncoder
le=LabelEncoder()
le.fit(iris[ 'Species'])
y=le.transform(iris[ 'Species'])
#设定模型
dt=tree.DecisionTreeClassifier()
#训练模型,并得到准确率
from sklearn.model_selection import cross_val_score
score=cross_val_score(dt,X,y,cv= 5,scoring= 'accuracy')
print(np.mean(score))
#和KNN分类的结果进行比较,你会发现什么结论?

3.iris数据集上应用决策树回归

from sklearn import tree
#重新设定X,y值,回归对象是iris花的PetalWidthCm
features=[ 'SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm']
X=iris[features]
y=iris[ 'PetalWidthCm']
#设定决策树回归的模型
dt=tree.DecisionTreeRegressor()
from sklearn.model_selection import cross_val_score
scores=-cross_val_score(dt,X,y,scoring= 'neg_mean_squared_error')
print(np.mean(scores))
#复习之前的课程中关于linear regression的内容,比较KNN回归、线性回归的结果和决策树回归的结果有什么不同

随机森林

随机森林算法可以用于解决分类和回归问题,在决策树的基础上,引入了多棵决策树,并综合所有决策树,根据少数服从多数(majority voting)或者求平均值等原则,得出结果,下图是随机森林的示意图:

一般而言,随机森林的分类和回归的效果会比KNN、Decision Tree更好

集成学习:构建多个模型,使用某种策略将多个结果集成起来,作为最终结果,随机森林也属于集成学习,随机森林回归可以通过对各个模型结果加权平均得到结果,随机森林分类可以通过majority voting原则来决定结果

1.Python调用随机森林算法

from sklearn import ensemble
#随机森林分类
rf=ensemble.RandomForestClassifier(决策树数)
#随机森林回归
rf=ensemble.RandomForestRegressor(决策树数)
rf.fit(X,y)

2.iris数据集上应用随机森林分类

from sklearn import ensemble
#设定随机森林分类模型
rf=ensemble.RandomForestClassifier( 10)
from sklearn.model_selection import cross_val_score
#随机森林分类,X,y可以根据你想探究的字段之间的关系进行设置
features=[ 'SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm']
X=iris[features]
from sklearn.preprocessing import LabelEncoder
le=LabelEncoder()
le.fit(iris[ 'Species'])
y=le.transform(iris[ 'Species'])
#评估分类模型性能
score=cross_val_score(rf,X,y,cv= 5,scoring= 'accuracy')
print(np.mean(score))
#随机森林的计算时间和决策树(基分类器)的数量成正比,尝试调整随机森林中的决策树的数量,看看分类的准确率是如何变化的
#将结果和KNN、DecisionTree分类的结果进行比较,看看你能得出什么结论

3.iris数据集上随机森林回归

from sklearn import ensemble
#设定随机森林回归模型
rf=ensemble.RandomForestRegressor( 10)
#随机森林分类,X,y可以根据你想探究的字段之间的关系进行设置
features=[ 'SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm']
X=iris[features]
y=iris[ 'PetalWidthCm']
#评估模型性能
score=-cross_val_score(rf,X,y,cv= 5,scoring= 'neg_mean_squared_error')
print(np.mean(score))
#随机森林的计算时间和决策树(基分类器)的数量成正比,但是基分类器的数量和结果准确率却不一定成正比,尝试调整随机森林中的决策树的数量,看看分类的准确率是如何变化的
#将结果和KNN、DecisionTree分类的结果进行比较,看看你能得出什么结论

最后

以上就是单纯鼠标为你收集整理的决策树的全部内容,希望文章能够帮你解决决策树所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部