
当我开始处理机器学习问题的时候,就觉得很慌张,应该用哪种算法?或者哪种算法容易应用?如果你和我一样,那么这篇文章可能会帮助你了解人工智能和机器学习的算法、方法或技术,以解决任何意想不到甚至是预期的问题。
机器学习就是这样一种强大的人工智能技术,它可以在不使用任何明确指令的情况下有效地执行任务。一个ML模型可以从其数据和经验中学习。机器学习的应用是自动的、稳健的、动态的。针对现实生活中问题的这种动态性,开发了一些算法。大体上,机器学习算法有三种类型,如监督学习、无监督学习和强化学习。
最好的AI与机器学习算法
选择合适的机器学习技术或方法是开发人工智能或机器学习项目的主要任务之一。因为有几种算法可供选择,而且它们都有各自的好处和实用性。下面我们为初学者和专业人士讲述20种机器学习算法。那么,让我们一起来看看吧。
1. Naive Bayes
朴素贝叶斯分类器是一种基于贝叶斯定理的概率分类器,假设特征之间具有独立性。这些特征因应用程序而异。它适合初学者练习的机器学习方法之一。朴素贝叶斯是一个条件概率模型。给定一个要分类的问题实例,用一个向量x = (xi . . . . xn)表示一些n个特征(独立变量),它给当前实例分配K个潜在结果中每个结果的概率。

上述公式的问题在于,如果特征数n很大,或者一个元素可以采用大量值,那么将这种模型基于概率表是不可行的。因此,我们重新开发该模型以使其更易于处理。利用贝叶斯定理,条件概率可以写成:

使用贝叶斯概率术语,上面的等式可以写成:

该人工智能算法用于文本分类,即情感分析,文档分类,垃圾邮件过滤和新闻分类。如果将输入数据分类为预定义的组,则该机器学习技术的效果会很好。而且,与逻辑回归相比,它需要的数据更少。它在各个领域都表现出色。
2. Support Vector Machine
支持向量机(Support Vector Machine,SVM)是文本分类领域应用最广泛的监督机器学习算法之一。这种方法也用于回归。它也可以被称为支持向量网络。Cortes & Vapnik开发了这种方法用于二进制分类。监督学习模型是指从标记的训练数据中推断输出的机器学习方法。
支持向量机在一个非常高或无限维的区域内构造一个超平面或超平面集。它为给定的训练集计算具有最大余量的线性分离面。
只有输入向量的一个子集会影响余量的选择(图中圈出),这样的向量称为支持向量。当线性分离面不存在时,例如在存在嘈杂数据的情况下,带有松弛变量的SVMs算法是合适的。这种分类器试图利用不同类之间的线性或非线性划分来分割数据空间。
SVM已被广泛用于模式分类问题和非线性回归。同时,它也是执行自动文本分类的最佳技术之一。这种算法最好的地方是它不对数据做任何强假设。要实现支持向量机:Pyth中的数据科学库 SciKit Learn、PyML、SVMStruct Python、LIBSVM和R– Klar中的数据科学库e1071。
3.线性回归
线性回归是一种直接方法,用于对因变量和一个或多个自变量之间的关系进行建模。如果存在一个自变量,则称为简单线性回归。如果有多个独立变量可用,则称为多元线性回归。
该公式用于根据连续变量估算实际价值,例如房屋价格,通话次数,总销售额。在此,通过拟合最佳线来建立自变量和因变量之间的关系。该最佳拟合线称为回归线,由线性方程式表示

这里:

4. Logistic Regression
这是另一种机器学习算法– Logistic回归或logit回归,用于基于给定的一组自变量来估计离散值(二进制值,如0/1,yes / no,true / false)。该算法的任务是通过将数据拟合到logit函数来预测事件的可能性。其输出值在0到1之间。
该公式可用于机器学习,科学学科和医学领域等各个领域。它可用于根据观察到的患者特征预测发生给定疾病的危险。逻辑回归可以用于预测顾客购买产品的需求。此机器学习技术用于天气预报以预测下雨的可能性。
逻辑回归可以分为三种类型:

逻辑回归不那么复杂。而且,它很健壮。它可以处理非线性效果。但是,如果训练数据稀疏和高维,则此ML算法可能会过拟合。它不能预测连续的结果。
5. K-Nearest-Neighbor (KNN)
kNN是一种著名的分类统计方法,多年来被广泛研究,并很早就应用于分类任务。它作为一种非参数方法,用于分类和回归问题。这种AI和ML方法非常简单。它根据距离最近的一组k个文档(通常是欧几里得距离)的投票来确定测试文档t的类别。给定一个测试文档t,kNN分类器的基本决策规则是:。

其中y(xi,c)是训练文档xi的二进制分类函数(如果xi用c标记则返回1,否则返回0),该规则用t标记类别,该类别在k中得票最多-最近的社区。
我们可以将KNN映射到我们的现实生活中。例如,如果您想找出几个您没有信息的人,您可能希望决定与他的密友有关,因此,他进入的圈子可以访问他/她的信息。该算法在计算上是昂贵的。
6. K-means

k-means聚类是一种无监督学习的方法,在数据挖掘中可用于聚类分析。该算法的目的是将n个观测值划分为k个聚类,其中每个观测值属于聚类中最接近的均值。这种算法被用于市场细分、计算机视觉和天文学等众多领域。
7. Decision Tree

决策树是一种决策支持工具,它使用图形表示,即树状图或决策模型。它常用于决策分析,也是机器学习中的流行工具。决策树在运筹学和运筹管理中得到应用。它具有类似流程图的结构,每一个内部节点代表一个属性上的 "测试",每一个分支代表测试的结果,每一个叶子节点代表一个类标签。从根节点到叶节点的路线称为分类规则。它由三种类型的节点组成:

决策树易于理解和解释。它使用白盒模型。而且,它可以与其他决策技术结合。
8. Random Forest
随机森林是一种流行的集合学习技术,它的工作原理是在训练时构建众多的决策树,并输出每棵树的类别模式(分类)或平均预测(回归)。这种机器学习算法的运行时间很快,并且能够在不平衡和缺失数据的情况下工作。但是,当我们用它来做回归时,它不能预测超出训练数据中的范围,而且它可能会过度拟合数据。
9. CART

分类与回归树(CART)是决策树的一种。决策树是以递归分割的方式工作的,CART将每个输入节点划分为两个子节点。在决策树的每一个层次上,算法都会确定一个条件--将输入节点分割成两个子节点时使用哪个变量和层次。
下面给出了CART算法的步骤:

10. Apriori Machine Learning Algorithm

Apriori算法是一种分类算法。这种机器学习技术用于对大量数据进行分类。它也可以用来跟踪关系是如何发展的,分类是如何建立的。这种算法是一种无监督的学习方法,从给定的数据集中生成关联规则。
Apriori机器学习算法的工作原理是:

这种ML算法可用于多种应用,例如检测药物不良反应,进行市场分析和自动完成应用。实现起来很简单。
11. Principal Component Analysis (PCA)

主成分分析(PCA)是一种无监督的算法。新的特征是正交的,这意味着它们是不相关的。在执行PCA之前,你应该始终对你的数据集进行归一化处理,因为转换取决于规模。如果你不这样做,规模最显著的特征将主导新的主成分。PCA是一种通用的技术。这种算法毫不费力,实现起来也很简单。它可以用于图像处理。
12. CatBoost

CatBoost是一个开源的机器学习算法,它来自Yandex。CatBoost'这个名字来自于两个词'Category'和'Boosting'。它可以与深度学习框架相结合,即谷歌的TensorFlow和苹果的Core ML。CatBoost可以与众多数据类型合作,解决多个问题。
13. Iterative Dichotomiser 3 (ID3)
Iterative Dichotomiser 3(ID3)是Ross Quinlan提出的一种决策树学习算法规则,它被用来从一个数据集中提供决策树。它是C4.5算法程序的前身,在机器学习和语言交流过程领域中得到应用。ID3可能过度适合训练数据。该算法规则更难用于连续数据。它不能保证最佳解决方案。
14. Hierarchical Clustering

层次聚类是聚类分析的一种方式。在层次聚类中,开发了一个聚类树(树枝图)来说明数据。在层次聚类中,每个组(节点)都链接到两个或更多的后续组。聚类树内的每个节点都包含类似的数据。节点在图上与其他相似的节点相邻分组。
算法
这种机器学习方法可以分为两种模式自下而上或自上而下:
1、自下而上(层级聚类聚类,HAC)
在这种机器学习技术的开始,将每个文档作为一个单独的集群。
在新群集中,一次合并两个项目。合并如何合并涉及计算每个合并对之间的差异,因此也计算替代样本。有很多选项可以做到这一点。他们之中有一些是:
a.完全链接:最远的一对相似。一个局限性在于,离群值可能导致比最佳合并更晚的合并。
b.单链:最接近的一对的相似性。尽管这些组的差异很大,但可能会导致过早合并。
C.小组平均值:小组之间的相似度。
d.质心相似度:每次迭代都将聚类与最相似的中心点合并。
在所有项目合并到一个群集中之前,配对过程一直在进行。
2、自上而下(分裂聚类)
数据从组合的群集开始。
根据某种程度的相似性,群集分为两个不同的部分。
群集一次又一次地分成两部分,直到群集仅包含一个数据点。
15.Back-Propagation

反向传播是一种监督学习算法。该ML算法来自ANN(人工神经网络)领域。该网络是多层前馈网络。该技术旨在通过修改输入信号的内部权重以产生所需的输出信号来设计给定功能。它可以用于分类和回归。

反向传播算法具有一些优点,即易于实现。该算法中使用的数学公式可以应用于任何网络。如果权重较小,则可以减少计算时间。反向传播算法具有一些缺点,例如它可能对嘈杂的数据和异常值敏感。这是一种完全基于矩阵的方法。该算法的实际性能完全取决于输入数据。输出可能是非数字的。
16. AdaBoost

AdaBoost表示自适应加速,这是一种由Yoav Freund和Robert Schapire代表的机器学习方法。它是一个元算法,可以与其他学习算法集成以提高其性能。该算法快速且易于使用。它适用于大型数据集。
17. Deep Learning

深度学习是受人脑机制启发的一组技术。文本分类中使用了两个主要的深度学习,即卷积神经网络(CNN)和递归神经网络(RNN)。诸如Word2Vec或GloVe之类的深度学习算法也被用来获得单词的高级矢量表示并提高使用传统机器学习算法训练的分类器的准确性。这种机器学习方法需要大量的训练样本,而不是传统的机器学习算法,即至少有数百万个带有标签的示例。相反,传统的机器学习技术达到了精确的阈值,而增加更多的训练样本并不能整体提高其准确性。深度学习分类器以更多数据胜过更好的结果。
18.Gradient Boosting Algorithm

梯度提升是一种用于分类和回归的机器学习方法。它是开发预测模型的最强大方法之一。梯度提升算法具有三个要素:
损失函数
弱学习者
加法模型
19. Hopfield Network

Hopfield网络是John Hopfield在1982年提供的一种递归人工神经网络。该网络旨在存储一个或多个模式,并基于部分输入来调用完整模式。在Hopfield网络中,所有节点都是输入和输出,并且完全互连。
20. C4.5
C4.5是Ross Quinlan发明的决策树。它是ID3的升级版本。该算法程序包含一些基本情况:
列表中的所有样本均属于相似类别。它为决策树创建一个叶节点,要决定该类别。
它使用类的期望值在树的上方创建一个决策节点。
它使用期望值在树的上方创建决策节点。
结束思想
使用基于您的数据和域的正确算法来开发高效的机器学习项目非常重要。此外,了解每种机器学习算法之间的关键区别对于解决“何时选择哪种算法”至关重要。在机器学习方法中,机器或设备已经通过学习算法进行了学习。我坚信这篇文章可以帮助您理解算法。
