机器学习算法是机器学习的重要组成部分。
您必须了解他们如何努力在该领域取得任何进展。
我们将在本课程中介绍很多内容,您将度过一段美好的时光。让我们开始吧。
机器学习算法迷你课程机器学习算法迷你课程照片由JaredTarbell提供,保留一些权利。
这门课程是谁?在我们开始之前,让我们确保您在正确的位置。
本课程面向初学者,对机器学习算法充满好奇。本课程不假设您知道如何编写代码。本课程不假设数学背景。本课程不假设机器学习理论的背景。这个迷你课程将带您参考基础的机器学习算法和10种顶级技术。
我们将访问每个算法,让您了解它是如何工作的,但不要过于深入以保持移动。
迷你课程概述让我们来看看我们将在接下来的14节课中介绍的内容。
您可能需要一次又一次地回到此帖子,因此您可能需要为其添加书签。
这个迷你课程分为四个部分:算法基础,线性算法,非线性算法和集合算法。
算法基础第1课:如何在机器学习中讨论数据第2课:支持所有算法的原则第3课:参数和非参数算法第4课:偏见,差异和权衡线性算法第5课:线性回归第6课:Logistic回归第7课:线性判别分析非线性算法第8课:分类和回归树第9课:朴素贝叶斯第10课:k-最近邻居第11课:学习矢量量化第12课:支持向量机集合算法第13课:套袋和随机森林第14课:提升和AdaBoost获取免费算法思维导图机器学习算法思维导图方便的机器学习算法思维导图的样本。
我已经创建了一个由类型组织的60多种算法的方便思维导图。
下载,打印并使用它。
免费下载
还可以独家访问机器学习算法电子邮件迷你课程。
第1课:如何在机器学习中讨论数据数据在机器学习中起着重要作用。
在谈论数据时,理解并使用正确的术语非常重要。
您如何看待数据?想想电子表格。您有列,行和单元格。
机器学习的统计视角在机器学习算法旨在学习的假设函数(f)的上下文中构建数据。给定一些输入变量(输入),该函数回答关于预测输出变量(输出)的问题。
输出=f(输入)
输入和输出可以称为变量或向量。
计算机科学观点使用一行数据来描述实体(如人)或关于实体的观察。因此,行的列通常称为观察的属性,行本身称为实例。
第2课:支持所有算法的原则有一个共同的原则是所有监督机器学习算法的基础,用于预测建模。
机器学习算法被描述为学习目标函数(f),其最佳地将输入变量(X)映射到输出变量(Y)。
Y=f(X)
这是一个通用的学习任务,我们希望在未来(Y)中给出新的输入变量(X)示例。我们不知道函数(f)的外观或形式。如果我们这样做,我们将直接使用它,我们不需要使用机器学习算法从数据中学习它。
最常见的机器学习类型是学习映射Y=f(X)来预测新X的Y.这称为预测建模或预测分析,我们的目标是使最准确的预测成为可能。
第3课:参数和非参数算法什么是参数化机器学习算法?它与非参数机器学习算法有何不同?
假设可以大大简化学习过程,但也可以限制学到的东西。将函数简化为已知形式的算法称为参数机器学习算法。
算法包括两个步骤:
选择功能的表单。从训练数据中学习该函数的系数。参数机器学习算法的一些示例是线性回归和逻辑回归。
不对映射函数的形式做出强有力假设的算法称为非参数机器学习算法。通过不作出假设,他们可以自由地从训练数据中学习任何功能形式。
非参数算法的示例包括支持向量机,神经网络和决策树。
第4课:偏见,差异和权衡通过偏差-方差权衡的镜头可以最好地理解机器学习算法。
偏差是模型所做的简化假设,使目标函数更容易学习。
通常,参数算法具有较高的偏差,使得它们学习起来快速且易于理解,但通常不太灵活。反过来,它们对复杂问题的预测性能较低,无法满足算法偏差的简化假设。
决策树是低偏差算法的示例,而线性回归是高偏差算法的示例。
方差是如果使用不同的训练数据,目标函数的估计将改变的量。目标函数是通过机器学习算法从训练数据估计的,因此我们应该期望算法具有一些方差,而不是零方差。
k-NearestNeighbors算法是高方差算法的一个例子,而线性判别分析是低方差算法的一个例子。
任何预测建模机器学习算法的目标是实现低偏差和低方差。反过来,该算法应该实现良好的预测性能。机器学习算法的参数化通常是平衡偏差和方差的战斗。
增加偏差会减少差异。增加方差将减少偏差。第5课:线性回归算法线性回归可能是统计学和机器学习中最知名且易于理解的算法之一。
这不是一项统计技术吗?
线性回归的表示是通过查找称为系数(B)的输入变量的特定权重来描述最符合输入变量(x)和输出变量(y)之间关系的线的等式。
例如:
y=B0+B1*x
我们将在给定输入x的情况下预测y,并且线性回归学习算法的目标是找到系数B0和B1的值。
可以使用不同的技术从数据中学习线性回归模型,例如用于普通最小二乘的线性代数解和梯度下降优化。
这是一种快速而简单的技术和良好的第一种算法。
第6课:Logistic回归算法逻辑回归是从统计领域的机器学习中借用的另一种技术。它是二进制分类问题的首选方法(两个类值的问题)。
逻辑回归就像线性回归一样,目标是找到加权每个输入变量的系数的值。
与线性回归不同,使用称为逻辑函数的非线性函数来转换输出的预测。
逻辑函数看起来像一个大S并将任何值转换为0到1的范围。这很有用,因为我们可以将一个规则应用于逻辑函数的输出,以将值捕捉到0和1(例如IF小于0.5然后输出1)并预测一个类值。
由于学习模型的方式,逻辑回归所做的预测也可以用作属于0级或1级的给定数据实例的概率。这对于需要给出更多理由的问题非常有用。一个预测。
这是一个学习二元分类问题的快速模型。
第7课:线性判别分析算法逻辑回归是一种传统上仅限于两类分类问题的分类算法。如果您有两个以上的类,那么线性判别分析算法是首选的线性分类技术。
LDA的代表非常简单。它包含数据的统计属性,为每个类计算。对于单个输入变量,这包括:
每个班级的平均值。在所有类别中计算的方差。通过计算每个类的判别值并对具有最大值的类进行预测来进行预测。
该技术假设数据具有高斯分布(钟形曲线),因此最好事先从数据中删除异常值。
它是分类预测建模问题的一种简单而强大的方法。
第8课:分类和回归树决策树是用于预测建模机器学习的重要算法类型。
决策树模型的表示是二叉树。这是来自算法和数据结构的二叉树,没什么太花哨的。每个节点代表一个输入变量(x)和该变量上的分裂点(假设变量是数字)。
树的叶节点包含用于进行预测的输出变量(y)。通过遍历树的分裂直到到达叶节点并在该叶节点处输出类值来进行预测。
树木学习速度快,预测速度非常快。它们通常对于广泛的问题也是准确的,并且不需要对您的数据进行任何特殊准备。
决策树具有很大的方差,并且在集合中使用时可以产生更准确的预测,我们将在第13课和第14课中讨论这个主题。
第9课:朴素贝叶斯算法NaiveBayes是一种简单但令人惊讶的强大的预测建模算法。
该模型由两种类型的概率组成,可以直接从您的训练数据中计算出来:
每节课的概率。给出每个x值的每个类的条件概率。一旦计算,概率模型可用于使用贝叶斯定理对新数据进行预测。
当您的数据是实值时,通常假设高斯分布(钟形曲线),以便您可以轻松估计这些概率。
朴素贝叶斯被称为天真,因为它假定每个输入变量是独立的。这是一个强有力的假设,对于实际数据是不现实的,然而,该技术对于大范围的复杂问题非常有效。
第10课:K-NearestNeighbors算法KNN算法非常简单且非常有效。
KNN的模型表示是整个训练数据集。简单吧?
通过搜索K个最相似的实例(邻居)的整个训练集并总结那些K个实例的输出变量,对新数据点进行预测。对于回归,这可能是平均输出变量,在分类中,这可能是模式(或最常见)类值。
诀窍在于如何确定数据实例之间的相似性。如果您的属性都具有相同的比例(例如以英寸为单位),则最简单的技术是使用欧几里德距离,您可以根据每个输入变量之间的差异直接计算该数字。
第11课:学习矢量量化K-NearestNeighbors的缺点是你需要坚持整个训练数据集。
学习矢量量化算法(或简称LVQ)是一种人工神经网络算法,允许您选择要挂起的训练实例数量,并准确了解这些实例应该是什么样子。
LVQ的表示是码本向量的集合。这些是在开始时随机选择的,并且适于在学习算法的多次迭代中最佳地总结训练数据集。
在学习之后,可以使用码本向量来进行与K-NearestNeighbors类似的预测。通过计算每个码本矢量和新数据实例之间的距离来找到最相似的邻居(最佳匹配码本矢量)。然后返回最佳匹配单元的类值或(回归情况下的实际值)作为预测。
如果将数据重新缩放至相同范围(例如0到1之间),则可获得最佳结果。
如果您发现KNN在您的数据集上提供了良好的结果,请尝试使用LVQ来降低存储整个训练数据集的内存要求。
超平面是分割输入变量空间的线。在SVM中,选择超平面以最好地将输入变量空间中的点按其类(0级或1级)分开。
在二维中,您可以将其可视化为一条线,并假设我们的所有输入点都可以被此线完全分开。
SVM学习算法找到导致超平面最好地分离类的系数。
超平面和最近数据点之间的距离称为边距。可以将两个类分开的最佳或最佳超平面是作为最大边距的线。
只有这些点与定义超平面和分类器的构造有关。
这些点称为支持向量。它们支持或定义超平面。
实际上,优化算法用于找到使裕度最大化的系数的值。
SVM可能是最强大的开箱即用分类器之一,值得尝试使用您的数据集。
第13课:套袋和随机森林随机森林是最流行和最强大的机器学习算法之一。它是一种称为BootstrapAggregation或bagging的集成机器学习算法。
引导程序是用于从数据样本估计数量的强大统计方法。比如一个意思。您可以获取大量数据样本,计算平均值,然后平均所有平均值,以便更好地估计真实平均值。
在装袋中,使用相同的方法,但是用于估计整个统计模型,最常见的是决策树。
获取训练数据的多个样本,然后为每个数据样本构建模型。当您需要对新数据进行预测时,每个模型都会进行预测,并对预测进行平均以更好地估计真实输出值。
随机森林是对这种方法的一种调整,其中创建决策树,使得不是选择最佳分裂点,而是通过引入随机性来进行次优分割。
因此,为每个数据样本创建的模型与其他情况相比更加不同,但仍然以其独特和不同的方式准确。结合他们的预测可以更好地估计真实的基础产值。
如果使用具有高方差的算法(如决策树)获得良好的良好结果,通常可以通过装袋算法获得更好的结果。
第14课:提升和AdaBoostBoosting是一种集合技术,试图从许多弱分类器中创建一个强分类器。
这是通过从训练数据构建模型,然后创建第二个模型来尝试从第一个模型中纠正错误来完成的。添加模型直到完美预测训练集或添加最大数量的模型。
AdaBoost是第一个为二进制分类开发的真正成功的增强算法。这是理解助力的最佳起点。现代助推方法建立在AdaBoost上,最着名的是随机梯度增强机。
模型是一个接一个地顺序创建的,每个模型更新训练实例上的权重,这些权重影响序列中下一个树所执行的学习。
构建完所有树之后,将对新数据进行预测,并根据训练数据的准确性对每棵树的性能进行加权。