机器学习是该行业的一个创新且重要的领域。我们为机器学习程序选择的算法类型,取决于我们想要实现的目标。
现在,机器学习有很多算法。因此,如此多的算法,可能对于初学者来说,是相当不堪重负的。今天,我们将简要介绍10种最流行的机器学习算法,这样你就可以适应这个激动人心的机器学习世界了!
让我们言归正传!
线性回归可能是最流行的机器学习算法。线性回归就是要找一条直线,并且让这条直线尽可能地拟合散点图中的数据点。它试图通过将直线方程与该数据拟合来表示自变量和数值结果。然后就可以用这条线来预测未来的值!
这种算法最常用的技术是最小二乘法。这个方法计算出最佳拟合线,以使得与直线上每个数据点的垂直距离最小。总距离是所有数据点的垂直距离的平方和。其思想是通过最小化这个平方误差或距离来拟合模型。
例如,简单线性回归,它有一个自变量和一个因变量逻辑回归与线性回归类似,但它是用于输出为二进制的情况。对最终输出的预测是一个非线性的S型函数,称为logisticfunction,g()。
这个逻辑函数将中间结果值映射到结果变量Y,其值范围从0到1。然后,这些值可以解释为Y出现的概率。S型逻辑函数的性质使得逻辑回归更适合用于分类任务。
逻辑回归曲线图,显示了通过考试的概率与学习时间的关系。
决策树可用于回归和分类任务。
在这一算法中,训练模型通过学习树表示的决策规则来学习预测目标变量的值。树是由具有相应属性的节点组成的。
在每个节点上,我们根据可用的特征询问有关数据的问题。左右分支代表可能的答案。最终节点对应于一个预测值。
每个特征的重要性是通过自顶向下方法确定的。节点越高,其属性就越重要。
决定是否在餐厅等候的决策树示例。
朴素贝叶斯是基于贝叶斯定理。它测量每个类的概率,每个类的条件概率给出x的值。这个算法用于分类问题,得到一个二进制“是/非”的结果。看看下面的方程式。
P(cx)=P(xc)?P?P(x)P(cx)=P(xc)?P?P(x)P(cx)=P(cx)=给定预测变量X,c类事件的概率。P(xc)=P(xc)=给定c时,x的概率。P?=P?=类的概率。P(x)=P(x)=预测的概率。
朴素贝叶斯分类器是一种流行的统计技术,可用于过滤垃圾邮件!
支持向量机是一种用于分类问题的监督算法。支持向量机试图在数据点之间绘制两条线,它们之间的边距最大。为此,我们将数据项绘制为n维空间中的点,其中,n是输入特征的数量。在此基础上,支持向量机找到一个最优边界,称为超平面,它通过类标签将可能的输出进行最佳分离。
超平面与最近的类点之间的距离称为边距。最优超平面具有最大的边界,可以对点进行分类,从而使最近的数据点与这两个类之间的距离最大化。
例如,H1没有将这两个类分开。但H2有,不过只有很小的边距。而H3以最大的边距将它们分开了。
K-最近邻算法非常简单。KNN通过在整个训练集中搜索K个最相似的实例,即K个邻居,并为所有这些K个实例分配一个公共输出变量,来对对象进行分类。
K的选择很关键:较小的值可能会得到大量的噪声和不准确的结果,而较大的值是不可行的。它最常用于分类,但也适用于回归问题。
用于评估实例之间相似性的距离可以是欧几里得距离、曼哈顿距离或明氏距离。欧几里得距离是两点之间的普通直线距离。它实际上是点坐标之差平方和的平方根。
KNN分类示例K-均值是通过对数据集进行分类来聚类的。例如,这个算法可用于根据购买历史将用户分组。它在数据集中找到K个聚类。K-均值用于无监督学习,因此,我们只需使用训练数据X,以及我们想要识别的聚类数量K。
该算法根据每个数据点的特征,将每个数据点迭代地分配给K个组中的一个组。它为每个K-聚类选择K个点。基于相似度,将新的数据点添加到具有最近质心的聚类中。这个过程一直持续到质心停止变化为止。
随机森林是一种非常流行的集成机器学习算法。这个算法的基本思想是,许多人的意见要比个人的意见更准确。在随机森林中,我们使用决策树集成。
由于我们今天能够捕获的数据量之大,机器学习问题变得更加复杂。这就意味着训练极其缓慢,而且很难找到一个好的解决方案。这一问题,通常被称为“维数灾难”
降维试图在不丢失最重要信息的情况下,通过将特定的特征组合成更高层次的特征来解决这个问题。主成分分析是最流行的降维技术。
主成分分析通过将数据集压缩到低维线或超平面/子空间来降低数据集的维数。这尽可能地保留了原始数据的显著特征。
可以通过将所有数据点近似到一条直线来实现降维的示例。
人工神经网络可以处理大型复杂的机器学习任务。神经网络本质上是一组带有权值的边和节点组成的相互连接的层,称为神经元。在输入层和输出层之间,我们可以插入多个隐藏层。人工神经网络使用了两个隐藏层。除此之外,还需要处理深度学习。
人工神经网络的工作原理与大脑的结构类似。一组神经元被赋予一个随机权重,以确定神经元如何处理输入数据。通过对输入数据训练神经网络来学习输入和输出之间的关系。在训练阶段,系统可以访问正确的答案。
如果网络不能准确识别输入,系统就会调整权重。经过充分的训练后,它将始终如一地识别出正确的模式。
每个圆形节点表示一个人工神经元,箭头表示从一个人工神经元的输出到另一个人工神经元的输入的连接。
祝你学习愉快!
FahimulHaq,曾在Facebook、Microsoft工作。Educative.io联合创始人。Educative旨在帮助学生使用交互式课程来学习编程知识。