我正在做一个项目,我很难决定选择哪种算法regression
。我想知道在什么情况下应该选择linear regression
orDecision Tree regression
或Random Forest regression
?是否有数据的任何特定特征可以决定在上述树中采用特定算法?我应该在数据集中查看哪些特征来做出决定?即使可以通过 实现相同的正确性,是否有一些原因会让人们选择一种decision tree
或算法?random forest
linear regression
何时选择线性回归或决策树或随机森林回归?
让我用一些例子来解释它,以获得清晰的直觉:
您何时使用线性回归与决策树?
线性回归是一种线性模型,这意味着当数据具有线性形状时,它的效果非常好。但是,当数据具有非线性形状时,线性模型无法捕获非线性特征。
因此,在这种情况下,您可以使用决策树,它可以根据所提出的问题将空间划分为更小的子空间,从而更好地捕捉数据中的非线性。
您何时使用随机森林与决策树?
我想这里的Quora 答案会比我做得更好,解释它们和它们的应用程序之间的区别。让我为你引用:
假设你很优柔寡断,所以每当你想看电影时,你都会问你的朋友 Willow,她是否认为你会喜欢它。为了回答,Willow 首先需要弄清楚你喜欢什么电影,所以你给她一堆电影,并告诉她你是否喜欢每一部(即,你给她一个有标签的训练集)。然后,当你问她是否认为你会喜欢电影 X 时,她会与 IMDB 玩一个类似 20 个问题的游戏,问诸如“X 是一部浪漫电影吗?”、“约翰尼·德普出演 X 吗?”之类的问题。 , 等等。她首先问了更多信息丰富的问题(即,她最大化每个问题的信息增益),最后给你一个是/否的答案。
因此,Willow 是您电影偏好的决策树。
但是 Willow 只是人类,所以她并不总是很好地概括你的偏好(即,她过度拟合)。为了获得更准确的推荐,你想问一帮你的朋友,如果他们中的大多数人都说他们认为你会喜欢它,就去看电影 X。也就是说,您不仅要问 Willow,还想问 Woody、Apple 和 Cartman,他们会投票决定您是否喜欢一部电影(即,您构建了一个集成分类器,在这种情况下也称为森林)。
现在你不希望你的每个朋友都做同样的事情,给你同样的答案,所以你先给他们每个人稍微不同的数据。毕竟,你自己并不确定自己的喜好——你告诉 Willow 你喜欢泰坦尼克号,但也许那天你很开心,因为那天是你的生日,所以也许你的一些朋友不应该利用你的事实喜欢泰坦尼克号提出他们的建议。或者你告诉她你爱灰姑娘,但实际上你真的真的喜欢它,所以你的一些朋友应该给灰姑娘更多的重量。因此,不要给你的朋友你给 Willow 的相同数据,而是给他们稍微不安的版本。你不会改变你的爱/恨决定,你只是说你或多或少地爱/恨一些电影(你给你的每个朋友一个你的原始训练数据的引导版本)。例如,当你告诉 Willow 你喜欢黑天鹅和哈利波特,不喜欢阿凡达时,你告诉伍迪你非常喜欢黑天鹅,看了两遍,你不喜欢阿凡达,根本不提哈利波特。
通过使用这个合奏,你希望虽然你的每个朋友都给出了一些特殊的推荐(威洛认为你比你更喜欢吸血鬼电影,伍迪认为你喜欢皮克斯电影,卡特曼认为你只是讨厌一切),但错误会被消除在大多数。因此,您的朋友现在形成了您的电影偏好的袋装(引导聚合)森林。
但是,您的数据仍然存在一个问题。虽然您喜欢泰坦尼克号和盗梦空间,但这并不是因为您喜欢由莱昂纳多·迪卡普里奥主演的电影。也许您出于其他原因喜欢这两部电影。因此,您不希望您的朋友都根据 Leo 是否在电影中进行推荐。因此,当每个朋友向 IMDB 提出问题时,只允许可能问题的随机子集(即,当您构建决策树时,在每个节点上,您使用一些随机性来选择要拆分的属性,例如通过随机选择一个属性或通过从随机子集中选择一个属性)。这意味着您的朋友不得随时询问莱昂纳多·迪卡普里奥是否出现在电影中。因此,虽然之前您在数据级别注入了随机性,
所以你的朋友现在形成了一个随机森林。
据我所知,没有规则可以说明哪种算法适用于哪个数据集。只需确保您的数据集和感兴趣的变量满足运行每个算法的预先假设并试一试。例如,线性回归有一些前置假设,如结果的正态性、同方差性(响应变量的变异性在解释变量的所有水平上都相同)等。只需检查这些变量并尝试算法。
您可以使用点击软件查看结果,而无需参与代码和参数设置。如果你是 R 用户,在这个阶段,rattle 包将是一个非常有用的工具。您在点击模式下完成您的工作,并且您可以访问其背后的代码。