机器学习圈有个老梗:决策树是产品经理最爱的模型——能画图、能讲清楚每一步判断,老板听得懂,自己也能睡安稳。但真放到生产环境里,单棵树往往一碰就碎,新数据来了,预测飘得比KPI还离谱。
随机森林的解法很粗暴:既然一棵树靠不住,那就种一片。通常100棵起步,每棵树随机抽一部分数据、随机选一部分特征,各自独立生长。最后投票表决,少数服从多数。
这有点像让100个实习生分别做同一份调研,每人只采访部分用户、只看部分指标。单独一份报告可能漏洞百出,但把100份摆在一起,离谱答案会被对冲掉,共识自然浮现。用统计术语说,这叫"降低方差"——换句话说,用多样性换稳定性。
代价也明显。单棵树3分钟能跑完,森林可能要30分钟;以前能指着节点解释"为什么拒贷",现在只能摊手说"100棵树里87棵投了反对"。可解释性换准确率,这是笔多数团队愿意做的生意。
Scikit-learn里调参不算麻烦,n_estimators控制树的数量,max_features决定每棵树看多少列。但别指望调参能救命——数据本身脏的话,森林也就是一堆整齐排列的歪树。有个工程师在GitHub吐槽:「我试过500棵树,过拟合得更优雅了,但照样过拟合。」
热门跟贴