如果我们尝试建一个基本线性模型来用 x预测 y,我们需要作一条直线来平分 log (x)。但如果我们使用随机森林,能得到一条接近 log (x)的曲线,看起来更像实际的函数。
你可能认为随机森林对 log (x)函数过度拟合了。不管怎么说,我觉得它很好地说明了随机森林不受线性约束的限制。 用途 特征选择 随机森林的最佳使用实例之一是特征选择(feature selection)。尝试许多决策树变量(variations)带来的副产品之一是,你可以检验每棵树中哪个变量最相关/无关。 当一棵树使用某个变量,而另一棵不用这个时,你可以比较包含/排除该变量时丢失或得到的值。在下面的例子中,atv,我们试图找出哪些变量在将酒分类为红酒和白酒的任务中最重要。
分类 随机森林也很擅长分类任务。它能用于对具有多个可能值的类别进行预测,直播,也能被校准来输出概率。需要注意的是过拟合(overfitting)。随机森林可能容易过拟合,尤其是使用相对小型的数据集时。如果你的模型在我们的测试集中表现“太好”,就应该怀疑过拟合了。 引起过拟合的原因之一是在模型中只使用真正相关的特征。虽然不是固定的方式,但使用一些特征选择技术(例如前文提到的)可以避免过拟合。
回归 我发现随机森林——不像其他算法——在学习分类变量或分类变量和真实变量的结合时真的很有效。高基数的分类变量处理起来很棘手,因此随机森林会大有帮助。 一个 Python 实现的例子 Scikit-Learn 对开始使用随机森林非常好。Scikit-Learn API 在各种算法中都非常一致,因此可以很容易地在模型之间进行比较和切换。多数时候我会从简单的地方开始,再转移到随机森林。 随机森林在 scikit-learn 中实现得最好的特征之一是 n_jobs 参数。它会根据你想要使用的核的数量自动并行拟合随机森林。这里有一个关于如何在 20 节点的 EC2 簇中训练随机森林的演示:https://vimeo.com/63269736。
按照如上代码,你应该能看到如下的结果。由于我们使用随机选择的数据,因此确切的值每次都会有不同。
总结 随机森林非常强大而且相当容易使用。与任何模型训练一样,要警惕过拟合。 编译来源: :COO、执行总编、主编、高级编译、主笔、运营总监、客户经理、咨询总监、行政助理等 9 大岗位全面开放。 简历投递:j[email protected] HR 微信:13552313024 (责任编辑:本港台直播) |