|
|
|
@ -1178,13 +1178,26 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"集成算法GBDT的效果更好,这里由于参数只使用默认的,对SVM等这种参数影响较大的模型不太公平。\n",
|
|
|
|
|
"随机森林跟集成算法GBDT的效果较好,这里由于参数只使用默认的,对SVM等这种参数影响较大的模型不太公平。\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"当然,从这些结果,我们可以得出结论,机器学习是适用的,因为所有的模型都显著地优于基线!\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"这里我们还没有使用XGBoost/LightGBM,从算法公式层面来讲,XGBoost/LightGBM是优于GBDT,也是GB以及GBDT基础上的优化和改进,下面我们也小试一下XGBoost还有LightGBM。当然,这里是以GBDT作为提升算法的代表。"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"注:为什么随机森林模型没有像GBDT一样不断优化发展出新算法,随机森林有如下局限性\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"* 1.构建方式:随机森林使用自助采样(Bootstrap Sampling)和随机特征选择来构建多个决策树,然后进行平均或投票来获得最终的预测。相比之下,GBDT使用迭代的方式,每次迭代都试图纠正前一轮的误差,因此更复杂。\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"* 2.算法性质:GBDT是一个梯度提升算法,它在每轮迭代中学习如何修正先前模型的错误。这种性质使得它更容易实现各种优化技巧,如自动特征选择、提前停止等。\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"* 3.随机性差异:虽然随机森林在构建树时引入了随机性,但相对于GBDT,其模型的构建过程较为稳定。GBDT的迭代过程更加灵活,但也更容易过拟合,因此需要更多的正则化和优化。"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 21,
|
|
|
|
@ -2432,7 +2445,7 @@
|
|
|
|
|
],
|
|
|
|
|
"metadata": {
|
|
|
|
|
"kernelspec": {
|
|
|
|
|
"display_name": "Python 3",
|
|
|
|
|
"display_name": "Python 3 (ipykernel)",
|
|
|
|
|
"language": "python",
|
|
|
|
|
"name": "python3"
|
|
|
|
|
},
|
|
|
|
@ -2446,7 +2459,7 @@
|
|
|
|
|
"name": "python",
|
|
|
|
|
"nbconvert_exporter": "python",
|
|
|
|
|
"pygments_lexer": "ipython3",
|
|
|
|
|
"version": "3.7.3"
|
|
|
|
|
"version": "3.10.9"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"nbformat": 4,
|
|
|
|
|