欢迎来到我们的7部分数据科学和应用机器学习迷你课程!
在上一章中,您学习了几种不同的启发式方法来进行有效的特征工程。这些包括利用领域知识和分组稀疏类。
本指南将解释 机器学习的算法选择。
然而,我们不是用选项轰炸你,而是直接跳到最佳实践。
我们将在现代算法中引入两种强大的机制:正则化和集成。正如您将看到的,这些机制“修复”了旧方法中的一些致命缺陷,这导致了它们的普及。
让我们开始吧!
如何选择ML算法
在本课程中,我们将为回归任务介绍5种非常有效的机器学习算法。他们每个人都有分类对应物。
是的,现在只有5。我们的目标是解释一些基本概念(例如正则化,集成,自动特征选择),而不是为您提供一长串算法,这些概念将教您 为什么 某些算法往往比其他算法表现更好。
在应用机器学习中,应根据哪个算法最适合问题和数据集来交换单个算法。因此,我们将专注于 直觉 和 实际利益而 不是数学和理论。
为什么线性回归是有缺陷的
为了介绍一些高级算法的推理,我们首先讨论基本的线性回归。线性回归模型非常常见,但存在严重缺陷。
简单的线性回归模型适合“直线”(技术上是一个 超平面, 取决于特征的数量,但它是相同的想法)。在实践中,他们很少表现良好。我们实际上建议为大多数机器学习问题跳过它们。
它们的主要优点是易于理解和理解。但是,我们的目标不是研究数据并撰写研究报告。我们的目标是建立一个可以做出准确预测的模型。
在这方面,简单的线性回归有两个主要缺陷:
- 它容易过度配合许多输入功能。
- 它不能轻易表达非线性关系。
让我们来看看我们如何解决第一个漏洞。
机器学习中的规范化
这是提高模型性能的第一个“先进”策略。在许多ML课程中它被认为是非常“先进”的,但它真的很容易理解和实现。
线性模型的第一个缺陷是它们容易过度配合许多输入特征。
让我们举一个极端的例子来说明为什么会发生这种情况:
- 假设您的训练数据集中有100个观测值。
- 假设您还有100个功能。
- 如果您将线性回归模型与所有这100个特征相匹配,则可以完美地“记忆”训练集。
- 每个系数只会记住一个观察结果。该模型对训练数据具有完美的准确性,但对看不见的数据表现不佳。
- 它没有学到真正的潜在模式; 它只记忆训练数据中的噪音。
正则化是一种用于通过人为惩罚模型系数来防止过度拟合的技术。
- 它可以阻止大系数(通过抑制它们)。
- 它还可以完全删除功能(通过将其系数设置为0)。
- 惩罚的“力量”是可调的。(明天更多......)
规范化回归算法
有3种常见类型的正则化线性回归算法。
套索回归(Lasso regression)
套索或套索,代表 大号东 一 bsolute 小号 hrinkage和 小号选举 Ø操作结束时切。
- 套索回归惩罚 系数的 绝对大小。
- 实际上,这导致系数可以精确为0。
- 因此,Lasso提供 自动功能选择, 因为它可以完全删除一些功能。
- 请记住,惩罚的“力量”应该调整。
- 更强的惩罚导致更多系数被推到零。
岭回归(Ridge Regression)
脊背确实是非常危险的葡萄柚吃(开玩笑的。它只是岭)。
- 岭回归惩罚 系数的 平方大小。
- 实际上,这导致较小的系数,但它不会强制它们为0。
- 换句话说,Ridge提供了 功能缩减。
- 再次,应该调整惩罚的“力量”。
- 更强的惩罚导致系数更接近于 零。
弹性网(Elastic-Net)
Elastic-Net是Lasso和Ridge之间的妥协。
- 弹性网惩罚 绝对和平方大小的混合。
- 应调整两种惩罚类型的 比例。
- 整体实力也应该调整。
哦,万一你想知道,没有“最好”的惩罚类型。这实际上取决于数据集和问题。我们建议尝试使用一系列惩罚强度的不同算法作为调整过程的一部分,我们将在明天详细介绍。
决策树算法
太棒了,我们刚刚看到3种算法可以保护线性回归不会过度拟合。但如果你还记得,线性回归有两个主要缺陷:
- 它容易过度配合许多输入功能。
- 它不能轻易表达非线性关系。
我们如何解决第二个缺陷?
我们需要一个不同的策略......
好吧,我们需要摆脱线性模型这样做......我们需要引入一类新的算法。
决策树将数据建模为分层分支的“树”。他们分支直到达到代表预测的“叶子”。
由于它们的分支结构,决策树可以很容易地模拟非线性关系。
- 例如,假设对于单户住宅而言,较大的批次要求更高的价格。
- 然而,让我们说对于公寓来说,较小的地段要求更高的价格(即它是城市/农村的代理)。
- 除非您明确添加交互项(即您可以提前预测),否则线性模型难以捕获这种相关性的逆转。
- 另一方面,决策树可以自然地捕捉这种关系。
不幸的是,决策树也存在重大缺陷。如果你允许他们无限增长,他们可以完全“记住”训练数据,只需创建越来越多的分支。
因此,个别不受约束的决策树很容易过度拟合。
那么,我们如何利用决策树的灵活性,同时防止它们过度拟合训练数据呢?
树集合
合奏是用于组合来自多个单独模型的预测的机器学习方法。有几种不同的集合方法,但最常见的两种方法是:
Bagging
Bagging 试图 减少过度拟合复杂模型的机会。
- 它同时培养了大量“强大”的学习者。
- 一个强大的学习 是一个模型,它是相对不受约束。
- 然后,Bagging将所有强大的学习者结合在一起,以“平滑”他们的预测。
Boosting
Boosting 尝试 提高简单模型的预测灵活性。
- 它按顺序培养了大量“弱势”学习者。
- 一个弱学习是一个约束模型(即你可以限制每个决策树的最大深度)。
- 序列中的每一个都侧重于从前面的错误中学习。
- 然后,提升将所有弱学习者组合成一个强大的学习者。
虽然Bagging 和提升都是集成方法,但它们从相反的方向解决问题。Bagging使用复杂的基础模型并尝试“平滑”他们的预测,同时提升使用简单的基础模型并试图“提升”他们的总体复杂性。
集成是一个通用术语,但当基础模型是决策树时,它们有特殊的名称:random forests 和 boosted trees!
随机森林
随机森林培养了大量“强大”的决策树,并通过套袋结合他们的预测。
此外,随机森林有两种“随机性”来源:
- 每个树只允许从要分割的随机特征子集中进行选择(导致特征选择)。
- 每棵树仅在随机的观察子集上进行训练(称为重采样的过程)。
在实践中,随机森林往往表现良好,开箱即用。
- 他们经常击败许多其他需要数周才能开发的模型。
- 它们是完美的“瑞士军刀”算法,几乎总能获得良好的效果。
- 它们没有很多复杂的参数可供调整。
提升树木
Boosted树训练一系列“弱”,受约束的决策树,并通过提升结合他们的预测。
- 每棵树都允许有最大深度,应该调整。
- 序列中的每个树都试图纠正它之前的预测错误。
在实践中,提升的树木往往具有最高的性能天花板。
- 经过适当的调整,他们经常击败许多其他类型的模型。
- 它们比随机森林更复杂。
章节测验
哇,那太多了!如果您需要,请随意让它下沉,然后重新阅读课程。
关键点: 最有效的算法通常提供正则化,自动特征选择,表达非线性关系的能力和/或集合的组合。这些算法包括:
- 套索回归(Lasso regression)
- 岭回归(Ridge regression)
- 弹性网(Elastic-Net)
- 随机森林
- 提升的树(Boosted tree)
尽管我们做出了最大的努力,Oliver the Owl仍然成功地拍摄了“Power Rangers Group Photo”。
这是一个测验,以确保你抓住了一切:
- 线性回归的两个最大缺陷是什么?
- 你怎么解决第一个缺陷?(哪种机制,以及哪些算法?)
- 你怎么解决第二个缺陷?(哪种机制,以及哪些算法?)
- 什么是两种类型的正规化惩罚,它们在实践中做了什么?
- 什么是两种集合方法,它们如何工作?
原文:https://elitedatascience.com/algorithm-selection