@@ -151,13 +151,13 @@ True
151
151
152
152
参考文献
153
153
154
- | [[ B2001]] ( #id9 ) |
154
+ | [[ B2001]] ( #id9 ) |
155
155
156
156
1 . Breiman, “Random Forests”, Machine Learning, 45(1), 5-32, 2001.
157
157
158
158
|
159
159
160
- | [[ B1998]] ( #id7 ) |
160
+ | [[ B1998]] ( #id7 ) |
161
161
162
162
1 . Breiman, “Arcing Classifiers”, Annals of Statistics 1998.
163
163
@@ -243,7 +243,7 @@ AdaBoost 既可以用在分类问题也可以用在回归问题中:
243
243
244
244
| [[ ZZRH2009]] ( #id18 ) | J. Zhu, H. Zou, S. Rosset, T. Hastie. “Multi-class AdaBoost”, 2009. |
245
245
246
- | [[ D1997]] ( #id19 ) |
246
+ | [[ D1997]] ( #id19 ) |
247
247
248
248
1 . Drucker. “Improving Regressors using Boosting Techniques”, 1997.
249
249
@@ -348,28 +348,28 @@ Note
348
348
GBRT 可以认为是以下形式的可加模型:
349
349
350
350
> ``` py
351
- >
351
+ >
352
352
> 
353
- >
353
+ >
354
354
> ```
355
355
356
356
其中  是基本函数,在提升算法场景中它通常被称作 _weak learners_ 。梯度树提升算法(Gradient Tree Boosting)使用固定大小 的 [decision trees](tree.html# tree) 作为弱分类器,决策树本身拥有的一些特性使它能够在提升过程中变得有价值, 即处理混合类型数据以及构建具有复杂功能模型的能力.
357
357
358
358
与其他提升算法类似, GBRT 利用前向分步算法思想构建加法模型:
359
359
360
360
> ```py
361
- >
361
+ >
362
362
> 
363
- >
363
+ >
364
364
> ```
365
365
366
366
在每一个阶段中,基于当前模型  和拟合函数  选择合适的决策树函数  ,从而最小化损失函数  。
367
367
368
368
> ```py
369
- >
369
+ >
370
370
> 
372
- >
372
+ >
373
373
> ```
374
374
375
375
初始模型  是问题的具体,对于最小二乘回归,通常选择目标值的平均值.
@@ -381,19 +381,19 @@ Note
381
381
梯度提升(Gradient Boosting)尝试通过最速下降法以数字方式解决这个最小化问题.最速下降方向是在当前模型  下的损失函数的负梯度方向,其中模型  可以计算任何可微损失函数:
382
382
383
383
> ```py
384
- >
384
+ >
385
385
> 
387
- >
387
+ >
388
388
> ```
389
389
390
390
其中步长  通过如下方式线性搜索获得:
391
391
392
392
> ```py
393
- >
393
+ >
394
394
> 
396
- >
396
+ >
397
397
> ```
398
398
399
399
该算法处理分类和回归问题不同之处在于具体损失函数的使用。
414
414
415
415
# ## 1.11.4.6\. Regularization(正则化)
416
416
417
- # ### 1.11.4.6.1\. 收缩率 ( Shrinkage)
417
+ # ### 1.11.4.6.1\. 收缩率 ( Shrinkage)
418
418
419
419
[[F2001]](# f2001) 提出一个简单的正则化策略,通过一个因子  来衡量每个弱分类器对于最终结果的贡献:
420
420
424
424
425
425
在训练一定数量的弱分类器时,参数 `learning_rate` 和参数 `n_estimators` 之间有很强的制约关系。 较小的 `learning_rate` 需要大量的弱分类器才能维持训练误差的稳定。经验表明数值较小的 `learning_rate` 将会得到更好的测试误差。 [[HTF2009 ]](# htf2009) 推荐把 `learning_rate` 设置为一个较小的常数 (例如: `learning_rate <= 0.1` )同时通过提前停止策略来选择合适的 `n_estimators` . 有关 `learning_rate` 和 `n_estimators` 更详细的讨论可以参考 [[R2007]](#r2007).
426
426
427
- # ### 1.11.4.6.2\. 子采样 ( Subsampling)
427
+ # ### 1.11.4.6.2\. 子采样 ( Subsampling)
428
428
429
429
[[F1999]](# f1999) 提出了随机梯度提升,这种方法将梯度提升(gradient boosting)和 bootstrap averaging(bagging) 相结合。在每次迭代中,基分类器是通过抽取所有可利用训练集中一小部分的 `subsample` 训练得到的子样本采用无放回的方式采样。 `subsample` 参数的值一般设置为 0.5 。
430
430
@@ -499,7 +499,7 @@ array([ 0.11, 0.1 , 0.11, ...
499
499
>> > clf = GradientBoostingClassifier(n_estimators = 100 , learning_rate = 1.0 ,
500
500
... max_depth = 1 , random_state = 0 ).fit(X, y)
501
501
>> > features = [0 , 1 , (0 , 1 )]
502
- >> > fig, axs = plot_partial_dependence(clf, X, features)
502
+ >> > fig, axs = plot_partial_dependence(clf, X, features)
503
503
504
504
```
505
505
@@ -511,7 +511,7 @@ array([ 0.11, 0.1 , 0.11, ...
511
511
>> > mc_clf = GradientBoostingClassifier(n_estimators = 10 ,
512
512
... max_depth = 1 ).fit(iris.data, iris.target)
513
513
>> > features = [3 , 2 , (3 , 2 )]
514
- >> > fig, axs = plot_partial_dependence(mc_clf, X, features, label = 0 )
514
+ >> > fig, axs = plot_partial_dependence(mc_clf, X, features, label = 0 )
515
515
516
516
```
517
517
@@ -546,19 +546,19 @@ array([[ 2.46643157, 2.46643157, ...
546
546
547
547
| [F2001] | _([1 ](# id26), [2](#id27), [3](#id28))_ J. Friedman, “Greedy Function Approximation: A Gradient Boosting Machine”, The Annals of Statistics, Vol. 29, No. 5, 2001. |
548
548
549
- | [[F1999]](# id31) |
549
+ | [[F1999]](# id31) |
550
550
551
551
1 . Friedman, “Stochastic Gradient Boosting”, 1999
552
552
553
553
|
554
554
555
- | [[HTF2009 ]](# id29) |
555
+ | [[HTF2009 ]](# id29) |
556
556
557
557
1 . Hastie, R. Tibshirani and J. Friedman, “Elements of Statistical Learning Ed. 2”, Springer, 2009 .
558
558
559
559
|
560
560
561
- | [[R2007]](# id30) |
561
+ | [[R2007]](# id30) |
562
562
563
563
1 . Ridgeway, “Generalized Boosted Models: A guide to the gbm package”, 2007
564
564
@@ -568,7 +568,7 @@ array([[ 2.46643157, 2.46643157, ...
568
568
569
569
`VotingClassifier` (投票分类器)的原理是结合了多个不同的机器学习分类器,并且采用多数表决(majority vote)(硬投票) 或者平均预测概率(软投票)的方式来预测分类标签。 这样的分类器可以用于一组同样表现良好的模型,以便平衡它们各自的弱点。
570
570
571
- # ## 1.11.5.1\. 多数类标签 ( 又称为 多数/硬投票)
571
+ # ## 1.11.5.1\. 多数类标签 ( 又称为 多数/硬投票)
572
572
573
573
在多数投票中,对于每个特定样本的预测类别标签是所有单独分类器预测的类别标签中票数占据多数(模式)的类别标签。
574
574
@@ -720,4 +720,4 @@ Accuracy: 0.95 (+/- 0.05) [Ensemble]
720
720
```py
721
721
>> > eclf = VotingClassifier(estimators = [(' lr' , clf1), (' rf' , clf2), (' gnb' , clf3)], voting = ' soft' , weights = [2 ,5 ,1 ])
722
722
723
- ```
723
+ ```
0 commit comments