调用sklearn库实现随机森林及AdaBoost

1. 随机森林

1.1 原理介绍

随机森林(Random Forest)是一种遵循bagging技术的集成机器学习算法。

Bagging算法 (英语:Bootstrap aggregating,引导聚集算法),又称装袋算法,是机器学习领域的一种团体学习算法。最初由Leo Breiman于1994年提出。Bagging算法可与其他分类、回归算法结合,提高其准确率、稳定性的同时,通过降低结果的方差,避免过拟合的发生。 给定一个大小为n的训练集 D,Bagging算法从中均匀、有放回地(即使用自助抽样法)选出m个大小为 n’的子集 D_{i},作为新的训练集。在这 m个训练集上使用分类、回归等算法,则可得到 m个模型,再通过取平均值、取多数票等方法,即可得到Bagging的结果。

随机森林中的“森林”表示整个模型中包含了很多决策树,“随机”表示森林中的每棵决策树都是随机从数据集中采样来训练。更多的原理介绍见 此篇博客

1.2 代码实现

数据集采用的是sklearn库提供的鸢尾花数据集,这个数据集用过很多次了,此处就不对该数据集作过多介绍。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier

# 1. 加载数据集
iris = load_iris()
X = iris.data  # 数据
y = iris.target  # 标签

# 2. 划分数据集
X_trainer, X_test, Y_trainer, Y_test = train_test_split(X, y, test_size=0.2)

# 3. RandomForestClassifier
clf = RandomForestClassifier(n_estimators=5, max_depth=4)
clf.fit(X_trainer, Y_trainer)
score = clf.score(X_test, Y_test)  # 模型得分
print("模型得分:", score)

输出结果:

模型得分: 0.9666666666666667

预测的效果还是很好的。下面对RandomForestClassifier的参数做一下说明:
n_estimators:设置决策树的数量,即想要创建几棵树;数值设置得越大预测结果越稳定,但太大就会使得速度慢了;
max_depth:设置每棵决策树的最大深度(树的层数)

2. Adaboost

2.1 原理介绍

自适应增强算法(Adaptive Boosting),这是boosting算法之一。其思想就是“前人栽树,后人乘凉”。更多的原理介绍见 此篇博客

2.2 代码实现
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import AdaBoostClassifier

# 1. 加载数据集
iris = load_iris()
X = iris.data  # 数据
y = iris.target  # 标签

# 2. 划分数据集
X_trainer, X_test, Y_trainer, Y_test = train_test_split(X, y, test_size=0.2)

# 3. AdaBoostClassifier
clf = AdaBoostClassifier()
clf.fit(X_trainer, Y_trainer)
score = clf.score(X_test, Y_test)  # 模型得分
print("模型得分:", score)

输出结果:

模型得分: 0.9666666666666667
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值