机器学习—集成学习(GBDT)
一、原理部分:
图片形式~
二、sklearn实现:
可以看看这个:https://blog.csdn.net/han_xiaoyang/article/details/52663170
1、分类:
- from sklearn.ensemble import GradientBoostingClassifier
- from sklearn.datasets import load_digits
- from sklearn.model_selection import train_test_split
- from sklearn.model_selection import GridSearchCV
- from sklearn.preprocessing import StandardScaler
- from sklearn.metrics import accuracy_score
- import numpy as np
- digits = load_digits()
- x_data = digits.data
- y_data = digits.target
- x_train,x_test,y_train,y_test = train_test_split(x_data,y_data,random_state = 1)
- #第一轮,确定n=90
- gbdt = GradientBoostingClassifier()
- model_gbdt1 = GridSearchCV(gbdt,param_grid=({'n_estimators':np.arange(50,200,10)}),cv=5)
- model_gbdt1.fit(x_train,y_train)
- print(model_gbdt1.best_params_)
- y_hat1 = model_gbdt1.predict(x_test)
- print(accuracy_score(y_hat1,y_test))
- #第二轮
- gbdt = GradientBoostingClassifier(n_estimators=90)
- model_gbdt2 = GridSearchCV(gbdt,param_grid=({'learning_rate':[0.01,0.03]}),cv=5)
- model_gbdt2.fit(x_train,y_train)
- print(model_gbdt2.best_params_)
- y_hat2 = model_gbdt2.predict(x_test)
- print(accuracy_score(y_hat2,y_test))
- #第三轮,确定层数:2
- gbdt = GradientBoostingClassifier(n_estimators=90,learning_rate=0.3,subsample=0.8)
- model_gbdt3 = GridSearchCV(gbdt,param_grid=({'max_depth':[2,4]}),cv=5)
- model_gbdt3.fit(x_train,y_train)
- print(model_gbdt3.best_params_)
- y_hat3 = model_gbdt3.predict(x_test)
- print(accuracy_score(y_hat3,y_test))
- #第四轮,确定降采样
- gbdt = GradientBoostingClassifier(n_estimators=90,learning_rate=0.3,max_depth=2)
- model_gbdt4 = GridSearchCV(gbdt,param_grid=({'subsample':[0.8,0.9]}),cv=5)
- model_gbdt4.fit(x_train,y_train)
- print(model_gbdt4.best_params_)
- y_hat4 = model_gbdt4.predict(x_test)
- print(accuracy_score(y_hat4,y_test))
最后结果,结果也是很好,跟svm差不多吧。可能是我调参不够好,不过暂时不纠结这个
{'subsample': 0.8}
0.986666666667
机器学习—集成学习(GBDT)的更多相关文章
- 机器学习:集成学习:随机森林.GBDT
集成学习(Ensemble Learning) 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测 ...
- 机器学习--集成学习(Ensemble Learning)
一.集成学习法 在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好) ...
- 机器学习——集成学习(Bagging、Boosting、Stacking)
1 前言 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(errorrate < ...
- [机器学习]集成学习--bagging、boosting、stacking
集成学习简介 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务. 如何产生"好而不同"的个体学习器,是集成学习研究的核心. 集成学习的思路是通过 ...
- python大战机器学习——集成学习
集成学习是通过构建并结合多个学习器来完成学习任务.其工作流程为: 1)先产生一组“个体学习器”.在分类问题中,个体学习器也称为基类分类器 2)再使用某种策略将它们结合起来. 通常使用一种或者多种已有的 ...
- 吴裕雄 python 机器学习——集成学习随机森林RandomForestRegressor回归模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- 吴裕雄 python 机器学习——集成学习随机森林RandomForestClassifier分类模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- 吴裕雄 python 机器学习——集成学习梯度提升决策树GradientBoostingRegressor回归模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- 吴裕雄 python 机器学习——集成学习AdaBoost算法回归模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- 吴裕雄 python 机器学习——集成学习AdaBoost算法分类模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
随机推荐
- SQL Server 查询表的主键的两种方式
方式1: select b.column_name from information_schema.table_constraints a inner join information_schema. ...
- yii2 memcache 跨平台交互 键和值不一样
1 首先在配置文件中加载 web\basic\config\web.php ........ 'components' => [ 'request' => [ // !!! insert ...
- java wab----遇到经常用到集合list/map/
List与Vector的区别: vector适用:对象数量变化少,简单对象,随机访问元素频繁 list适用:对象数量变化大,对象复杂,插入和删除频] List首先是链表,它的元素不是连续的.vecto ...
- mysql-11元数据
我的mysql是用docker配置的,服务器状态和服务器配置变量都未设置,报错正常.
- mysql 5.6.15升级到5.6.43
今天闲来无事,观察测试环境的zabbix服务器,发现内存泄漏严重,于是重启了,想起了前几天写的帖子发生了严重的内存泄漏可以把mysql升级到最新的小版本 于是乎就试着升级 old version:5. ...
- 超简单的制作win7 U盘启动
我感觉真的太简单,操作so简单 第一个下载这个工具,这是微软官方提供的,用这个工具可以把win7的iso文件刻录到u盘中,u盘就可以作为系统启动盘来使用了 Windows 7 USB DVD Down ...
- canvas设置repeat
canvas设置repeat 方法 ctx.createPattern(img, 'repeat'); repeat repeat-x repeat-y no-repeat 重复图片 const ca ...
- 常规Java工具,算法,加密,数据库,面试题,源代码分析,解决方案
原文链接:http://www.tvtvso.top/?thread-5.htm 有家杂志曾对全国60岁以上的老人进行了这样一次问卷调查:你最后悔什么? 列出10项人们生活中容易后悔的事情,供被调查者 ...
- Rhythmk 一步一步学 JAVA (19): 注解 annotation
在编写注解的时候需要了解的四种注解: @Target 表示该注解可以用于什么地方,可能的ElementType参数有: CONSTRUCTOR:构造器的声明 FIELD:域声明(包括enum实例) L ...
- Rhythmk 学习 Hibernate 08 - Hibernate annotation 关联关系注解
1.一对一 (One to One) 共三种情况: 1.1 主键共享 1.2 外键共享 1.3 中间表关联 1.1 code: @Entity public class arti ...