一、原理部分:

图片形式~

二、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)的更多相关文章

  1. 机器学习:集成学习:随机森林.GBDT

    集成学习(Ensemble Learning) 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测 ...

  2. 机器学习--集成学习(Ensemble Learning)

    一.集成学习法 在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好) ...

  3. 机器学习——集成学习(Bagging、Boosting、Stacking)

    1 前言 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(errorrate < ...

  4. [机器学习]集成学习--bagging、boosting、stacking

    集成学习简介 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务. 如何产生"好而不同"的个体学习器,是集成学习研究的核心. 集成学习的思路是通过 ...

  5. python大战机器学习——集成学习

    集成学习是通过构建并结合多个学习器来完成学习任务.其工作流程为: 1)先产生一组“个体学习器”.在分类问题中,个体学习器也称为基类分类器 2)再使用某种策略将它们结合起来. 通常使用一种或者多种已有的 ...

  6. 吴裕雄 python 机器学习——集成学习随机森林RandomForestRegressor回归模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...

  7. 吴裕雄 python 机器学习——集成学习随机森林RandomForestClassifier分类模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...

  8. 吴裕雄 python 机器学习——集成学习梯度提升决策树GradientBoostingRegressor回归模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...

  9. 吴裕雄 python 机器学习——集成学习AdaBoost算法回归模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...

  10. 吴裕雄 python 机器学习——集成学习AdaBoost算法分类模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...

随机推荐

  1. 使用正则表达式去除html标签

    不知道大家遇到这话总情况没有,从数据库读取数据,数据参杂着html标记<p>等,在显式的时候控制字符个数,这个时候就会出现页面样式串行,使用正则表达式去除html标记就不会有还这个问题. ...

  2. vim自定义配置之nerdTree

    vimConfig/plugin/nerdTree-setting.vim let g:NERDTree_title="[NERDTree]" nmap <F2> :N ...

  3. C# 如何捕获一个USB设备发送到PC的数据

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  4. HyperLogLog(不精确的去重计数方案)

    pfadd 用法和sadd一样 pfcount 用法和scard一样 127.0.0.1:6379> get lan (nil) 127.0.0.1:6379> pfadd lan js ...

  5. java之压缩流(ZipOutputStream)

    一.文件压缩,是很有必要的,我们在进行文件,传输过程中,很多时候都是,都是单个文件单个文件发送接收,但是当数据量特别大,或者文件数量比较多的时候,这个时候就可以考虑文件压缩. 二.优势:文件压缩过后, ...

  6. 用shp制作geoJson格式地图数据(shp convert to geoJson)

    本文紧接前文,简单说明利用shp数据制作Echarts支持的geoJson格式的地图数据.本文以北京市通州区各镇的shp数据为例进行说明. 软件环境: ArcGIS 10.2 (ArcGIS 10.2 ...

  7. jsp获取请求头信息

    <%@ page language="java" import="java.util.*" contentType="text/html; ch ...

  8. ThreadCachedInt

    folly/ThreadCachedInt.h High-performance atomic increment using thread caching. folly/ThreadCachedIn ...

  9. 好久不见(致win7)

    7月8号,电脑上装了pgp,然后说让重启,重启之后蓝屏,自此,就一直蓝屏了 电脑装了双系统,工作时用centos,我不愿重装系统,怕centos受影响 网上说安装模式下可以卸载软件,可我在安全模式下, ...

  10. Ubuntu 升级内核版本

    查看当前内核版本 sch01ar@ubuntu:~$ uname -r Ubuntu 内核地址:https://kernel.ubuntu.com/~kernel-ppa/mainline/ 打开这个 ...