龙空技术网

机器学习十大算法之旅

AI火箭营 855

前言:

目前兄弟们对“booststrap算法”大约比较注重,大家都需要知道一些“booststrap算法”的相关内容。那么小编也在网上收集了一些关于“booststrap算法””的相关知识,希望咱们能喜欢,朋友们快快来学习一下吧!

在机器学习中,有一种称为“ 无免费午餐 ”的定理。简而言之,它表明没有一种算法能够最好地解决每个问题,而且它对于监督学习(即预测建模)尤为重要。

例如,你不能说神经网络总是比决策树更好,反之亦然。有许多因素在起作用,例如数据集的大小和结构。

因此,你应该针对你的问题尝试许多不同的算法,同时使用数据的保留“测试集”来评估性能并选择获胜者。

当然,尝试的算法必须适合你的问题,这是选择正确的机器学习任务的地方。作为类比,如果需要清理房屋,可以使用真空吸尘器,扫帚或拖把,但你不会破坏铲子并开始挖掘。

大原则

然而,有一个共同的原则是所有监督机器学习算法的基础,用于预测建模。

机器学习算法被描述为学习目标函数(f),其最佳地将输入变量(X)映射到输出变量(Y):Y = f(X)

这是一个通用的学习任务,我们希望在未来(Y)中能够给出新的输入变量(X)的结果。我们不知道函数(f)的外观或形式。如果我们这样做,我们将直接使用它,我们不需要使用机器学习算法从数据中学习它。

最常见的机器学习类型是学习映射Y = f(X)来预测新X的Y。这称为预测建模或预测分析,我们的目标是使最准确的预测成为可能。

对于渴望了解机器学习基础的机器学习新手,这里是数据科学家使用的十大机器学习算法的快速浏览。

1 - 线性回归

线性回归可能是统计学和机器学习中最知名且易于理解的算法之一。

预测建模主要关注最小化模型的误差或使可能性最准确的预测,但代价是可解释性。我们将从许多不同的领域借用,重用和窃取算法,包括统计数据并将其用于这些目的。

线性回归的表示是通过查找称为系数(B)的输入变量的特定权重来描述最符合输入变量(x)和输出变量(y)之间关系的线的等式。

线性回归

例如:y = B0 + B1 * x

我们将在给定输入x的情况下预测y,并且线性回归学习算法的目标是找到系数B0和B1的值。

可以使用不同的技术从数据中学习线性回归模型,例如用于普通最小二乘的线性代数解和梯度下降优化。

线性回归已经存在了200多年,并且已经被广泛研究。使用此技术时,一些好的经验法则是删除非常相似(相关)的变量,并尽可能消除数据中的噪声。这是一种快速而简单的技术和良好的第一种算法。

2 - Logistic回归

逻辑回归是从统计领域的机器学习中借用的另一种技术。它是二分类问题的首选方法。

逻辑回归就像线性回归一样,目标是找到每个输入变量的系数的值。与线性回归不同,使用称为逻辑函数的非线性函数来转换输出的预测。

逻辑函数看起来像一个大S并将任何值转换为0到1的范围。这很有用,因为我们可以将一个规则应用于逻辑函数的输出以将值捕捉到0和1(例如IF小于0.5然后输出1)并预测一个类值。

Logistic回归

由于学习模型的方式,逻辑回归所做的预测也可以用作属于0级或1级的给定数据实例的概率。这对于需要给出更多基本原理的问题非常有用。

与线性回归一样,当您删除与输出变量无关的属性以及彼此非常相似(相关)的属性时,逻辑回归确实更有效。这是学习二元分类问题并快速有效的快速模型。

3 - 线性判别分析

Logistic回归是一种传统上仅限于两类分类问题的分类算法。如果有两个以上的类,那么线性判别分析算法是首选的线性分类技术。

LDA的代表非常简单。它包含数据的统计属性,为每个类计算。对于单个输入变量,这包括:

1. 每个类别的平均值。

2. 在所有类别中计算的方差。

线性判别分析

通过计算每个类的判别值并对具有最大值的类进行预测来进行预测。该技术假设数据具有高斯分布(钟形曲线),因此最好事先从数据中删除异常值。它是分类预测建模问题的一种简单而强大的方法。

4 - 分类和回归树

决策树是预测建模机器学习的一种重要算法。

决策树模型的表示是二叉树。这是来自算法和数据结构的二叉树,没什么太花哨的。每个节点代表一个输入变量(x)和该变量上的分裂点(假设变量是数字)。

决策树

树的叶节点包含用于进行预测的输出变量(y)。通过遍历树的分裂直到到达叶节点并在该叶节点处输出类值来进行预测。

树木学习速度快,预测速度非常快。它们通常对于广泛的问题也是准确的,并且不需要对您的数据进行任何特殊准备。

5 - 朴素贝叶斯

Naive Bayes是一种简单但令人惊讶的强大的预测建模算法。

该模型由两种类型的概率组成,可以直接根据您的训练数据计算:1)每个类的概率; 2)给出每个x值的每个类的条件概率。一旦计算,概率模型可用于使用贝叶斯定理对新数据进行预测。当您的数据是实值时,通常假设高斯分布(钟形曲线),以便您可以轻松估计这些概率。

贝叶斯定理

朴素贝叶斯被称为朴素,因为它假设每个输入变量是独立的。这是一个强有力的假设,对于实际数据是不现实的,然而,该技术对于大范围的复杂问题非常有效。

6 - K-Nearest Neighbors

KNN算法非常简单且非常有效。KNN的模型表示是整个训练数据集。简单吧?

通过搜索K个最相似的实例(邻居)的整个训练集并总结那些K个实例的输出变量,对新数据点进行预测。对于回归问题,这可能是平均输出变量,对于分类问题,这可能是模式(或最常见)类值。

诀窍在于如何确定数据实例之间的相似性。如果属性都具有相同的比例(例如以英寸为单位),则最简单的技术是使用欧几里德距离,你可以根据每个输入变量之间的差异直接计算该数字。

K-Nearest Neighbors

KNN可能需要大量内存或空间来存储所有数据,但只在需要预测时才进行计算(或学习),及时。还可以随着时间的推移更新和策划您的训练实例,以保持预测准确。

距离或接近度的概念可以在非常高的维度(许多输入变量)中分解,这会对算法在您的问题上的性能产生负面影响。这被称为维度的诅咒。它建议你仅使用与预测输出变量最相关的输入变量。

7 - 学习矢量量化

K-Nearest Neighbors的缺点是你需要坚持整个训练数据集。学习矢量量化算法(或简称LVQ)是一种人工神经网络算法,允许您选择要挂起的训练实例数量,并准确了解这些实例应该是什么样子。

学习矢量量化

LVQ的表示是码本向量的集合。这些是在开始时随机选择的,并且适于在学习算法的多次迭代中最佳地总结训练数据集。在学习之后,可以使用码本向量来进行与K-Nearest Neighbors类似的预测。通过计算每个码本矢量和新数据实例之间的距离来找到最相似的邻居(最佳匹配码本矢量)。然后返回最佳匹配单元的类值或(回归情况下的实际值)作为预测。如果将数据重新缩放至相同范围(例如0到1之间),则可获得最佳结果。

如果你发现KNN在您的数据集上提供了良好的结果,请尝试使用LVQ来降低存储整个训练数据集的内存要求。

8 - 支持向量机

支持向量机可能是最流行和最受关注的机器学习算法之一。

超平面是分割输入变量空间的线。在SVM中,选择超平面以最好地将输入变量空间中的点与它们的类(0级或1级)分开。在二维中,你可以将其视为一条线,并假设我们的所有输入点都可以被这条线完全分开。SVM学习算法找到导致超平面最好地分离类的系数。

支持向量机

超平面和最近数据点之间的距离称为间隔。可以分离两个类的最佳或最佳超平面是具有最大边距的线。只有这些点与定义超平面和分类器的构造有关。这些点称为支持向量。它们支持或定义超平面。实际上,优化算法用于找到使宽裕度最大化的系数的值。

SVM可能是最强大的开箱即用分类器之一,值得尝试。

9 - 套袋和随机森林

随机森林是最流行和最强大的机器学习算法之一。它是一种称为Bootstrap Aggregation或bagging的集成机器学习算法。

Bootstrap是用于从数据样本估计数量的强大统计方法。比如一个意思。你可以获取大量数据样本,计算平均值,然后平均所有平均值,以便更好地估计真实平均值。

在装袋中,使用相同的方法,但是用于估计整个统计模型,最常见的是决策树。获取训练数据的多个样本,然后为每个数据样本构建模型。当您需要对新数据进行预测时,每个模型都会进行预测,并对预测进行平均以更好地估计真实输出值。

随机森林

随机森林是对这种方法的一种调整,其中创建决策树,使得不是选择最佳分裂点,而是通过引入随机性来进行次优分割。

因此,为每个数据样本创建的模型与其他情况相比更加不同,但仍然以其独特和不同的方式准确。结合他们的预测可以更好地估计真实的基础值。

如果使用具有高方差的算法(如决策树)获得良好的结果,通常可以通过bagging算法获得更好的结果。

10 - Boosting和AdaBoost

Boosting是一种集合技术,试图从许多弱分类器中创建一个强分类器。这是通过从训练数据构建模型,然后创建第二个模型来尝试从第一个模型中纠正错误来完成的。添加模型直到完美预测训练集或添加最大数量的模型。

AdaBoost是第一个为二进制分类开发的真正成功的增强算法。这是理解助力的最佳起点。现代助推方法建立在AdaBoost上,最着名的是随机梯度增强机。

AdaBoost的

AdaBoost用于短决策树。在创建第一个树之后,每个训练实例上的树的性能用于加权创建的下一个树应该关注每个训练实例的注意力。难以预测的训练数据被赋予更多权重,而易于预测的实例被赋予更少的权重。模型是一个接一个地顺序创建的,每个模型更新训练实例上的权重,这些权重影响序列中下一个树所执行的学习。构建完所有树之后,将对新数据进行预测,并根据训练数据的准确性对每棵树的性能进行加权。

因为通过算法如此关注纠正错误,所以必须删除带有异常值的干净数据。

最后

当面对各种各样的机器学习算法时,初学者提出的一个典型问题是“我应该使用哪种算法?”问题的答案因许多因素而异,包括:

维度,质量和性质数据的;可用的计算时间;任务的紧迫性;想要对数据做什么。

即使是经验丰富的数据科学家也无法确定哪种算法在尝试不同的算法之前表现最佳。虽然还有许多其他机器学习算法,但这些算法最受欢迎。

标签: #booststrap算法