GBDT和RF(梯度提升决策树和随机森林)

GBDT和随机森林的相同点:

1.都是由多棵树组成

2.最终的结果都是由多棵树一起决定

 

GBDT和随机森林的不同点:

1.组成随机森林的树可以是分类树,也可以是回归树;而GBDT只由回归树组成

2.组成随机森林的树可以并行生成;而GBDT只能是串行生成

3.对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来

4.随机森林对异常值不敏感,GBDT对异常值非常敏感;
5.随机森林对训练数据一视同仁,GBDT是基于权值的弱分类器的集成

6.随机森林是通过减少模型方差提高性能,GBDT是通过减少模型偏差提高性能

 

 

转自CSDN,author:keepreder,Orange先生

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面我会分别介绍bagging、GBDTRF算法,并使用这三种算法对iris数据进行分析。 1. Bagging算法 Bagging是Bootstrap Aggregating的简称,即自举汇聚法。它是一种基于数据随机重采样的集成学习方法,通过构建多个模型并将它们的结果进行平均或投票来提高模型的泛化能力。 在使用Bagging算法时,需要将原始数据进行随机重采样,构建多个模型,并将它们的结果进行平均或投票得到最终结果。常用的Bagging算法有随机森林(Random Forest)和Extra-Trees。 以下是使用sklearn库中的随机森林算法对iris数据进行分类的示例代码: ```python from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split # 加载数据 iris = load_iris() X, y = iris.data, iris.target # 划分数据集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) # 构建随机森林模型 rf = RandomForestClassifier(n_estimators=100) # 训练模型 rf.fit(X_train, y_train) # 预测结果 y_pred = rf.predict(X_test) # 输出准确率 print("Accuracy:", rf.score(X_test, y_test)) ``` 2. GBDT算法 GBDT是Gradient Boosting Decision Tree的简称,即梯度提升决策树。它是一种基于决策树的集成学习方法,通过逐步迭代地构建多个弱分类器并将它们的结果进行加权得到最终结果。 在使用GBDT算法时,需要先构建一个决策树作为初始模型,然后逐步迭代地构建多个决策树,并将它们的结果进行加权得到最终结果。常用的GBDT算法有XGBoost和LightGBM。 以下是使用sklearn库中的Gradient Boosting算法对iris数据进行分类的示例代码: ```python from sklearn.ensemble import GradientBoostingClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split # 加载数据 iris = load_iris() X, y = iris.data, iris.target # 划分数据集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) # 构建GBDT模型 gbdt = GradientBoostingClassifier(n_estimators=100) # 训练模型 gbdt.fit(X_train, y_train) # 预测结果 y_pred = gbdt.predict(X_test) # 输出准确率 print("Accuracy:", gbdt.score(X_test, y_test)) ``` 3. RF算法 RF是Random Forest的简称,即随机森林。它也是一种基于决策树的集成学习方法,通过构建多个决策树并将它们的结果进行平均或投票来提高模型的泛化能力。 在使用RF算法时,需要先随机选择一部分特征,然后构建多个决策树,并将它们的结果进行平均或投票得到最终结果。RF算法与Bagging算法的区别在于,RF算法在构建每棵决策树时都会随机选择一部分特征,以增加模型的多样性。 以下是使用sklearn库中的随机森林算法对iris数据进行分类的示例代码: ```python from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split # 加载数据 iris = load_iris() X, y = iris.data, iris.target # 划分数据集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) # 构建随机森林模型 rf = RandomForestClassifier(n_estimators=100) # 训练模型 rf.fit(X_train, y_train) # 预测结果 y_pred = rf.predict(X_test) # 输出准确率 print("Accuracy:", rf.score(X_test, y_test)) ``` 以上就是使用bagging、GBDTRF算法对iris数据进行分析的示例代码。需要注意的是,这里只是简单地使用了默认参数进行模型构建和训练,实际应用中需要根据具体情况进行参数调整和模型优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值