Boosting方法是使用同一组数据集进行反复学习,得到一系列简单模型,然后组合这些模型构成一个预测性能十分强大的机器学习模型。显然,Boosting思想提高最终的预测效果是通过不断减少偏差的形式,与Bagging有着本质的不同。在Boosting这一大类方法中,笔者主要介绍两类常用的Boosting方式:Adaptive Boosting 和 Gradient Boosting 以及它们的变体Xgboost、LightGBM以及Catboost。
Boosting的本质在于如何将多个弱分类器构建成一个强分类器,要做到这点有两个问题要解决:
- 第一个是每一轮学习应该如何改变数据的概率分布
- 第二个是如何将各个弱分类器组合起来
Adaboost相应的方案:
- 提高那些被前一轮分类器错误分类的样本的权重,而降低那些被正确分类的样本的权重。
- 各个弱分类器的组合是通过采取加权多数表决的方式,具体来说,加大分类错误率低的弱分类器的权重
contour函数
是来绘制等高线的,contour和contourf都是画三维等高线图的,不同点在于contour() 是绘制轮廓线,contourf()会填充轮廓。除非另有说明,否则两个版本的函数是相同的。
参数: X,Y:类似数组,可选
为Z中的坐标值
当 X,Y,Z 都是 2 维数组时,它们的形状必须相同。如果都是 1 维数组时,len(X)是 Z 的列数,而 len(Y) 是 Z 中的行数。(例如,经由创建numpy.meshgrid())
Z:类似矩阵
绘制轮廓的高度值
levels:int或类似数组,可选
确定轮廓线/区域的数量和位置
其他参数: aalpha:float ,可选
alpha混合值,介于0(透明)和1(不透明)之间。
cmap:str或colormap ,可选
Colormap用于将数据值(浮点数)从间隔转换为相应Colormap表示的RGBA颜色。用于将数据缩放到间隔中看 。
[分类模型决策边界中的np.meshgrid()与np.c_[]两个函数的使用]
- np.r_:是按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等,类似于pandas中的concat()。
- np.c_:是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等,类似于pandas中的merge()。