「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战」。
决策树与随机森林
前文
本文为在学习机器学习过程中的一些笔记及知识的总结,作为初学者内容难免有错误或不准确之处,还请见谅。
决策树与随机森林
首先来了解一下决策树与随机森林分别指的是什么内容。
所谓决策树,通俗的讲类似于猜对方心理的一种概念。该算法主要是通过if/else的判断方式,根据每一个决策树树叶分支的内容进行结果的判断。经过对训练样本进行多层的决策树训练,可以把样本区分成目标的种类。随着决策树的层数越深,训练的结果相对准确度也会越高。当然,决策树算法也会有其本身的弊端,也就是容易出现过拟合的问题。
随机森林可以认为是在决策树基础上进行改进的一种算法,也就是为了解决决策树容易出现的过拟合问题,随机森林将若干个决策树打包到一块,而每个决策树的参数设置为完全不同。通过对于几棵决策树的结果平均处理,得到一个相对降低过拟合风险的结果。这也就是随机森林算法的主要内容。
随机森林是目前最常用的算法之一,它继承了决策树算法的优点,又最大可能的避免了过拟合的问题,不需要过于注意决策树参数的调节。但同样的,它也无法在对于高维数据集处理的处理中取得良好的表现。随机森林算法由于内存的消耗会具有较慢的速度。
最后来简单看一个决策树算法的代码示例:
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# 选取前两个特征
X = load_wine().data[:,:2]
y = load_wine().target
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state = 8)
# 决策树算法
clf = DecisionTreeClassifier(max_depth = 1)
# 数据拟合
clf.fit(X_train,y_train)
print(clf.score(X_train,y_train))
print(clf.score(X_test,y_test))
后记
- 千古兴亡多少事?悠悠。不尽长江滚滚流。