十大机器学习算法:为什么它们在 2021 年如此重要?

已发表: 2019-06-10
目录
  • 进入机器学习的兔子洞

  • 现实生活中的应用

  • 机器学习算法是什么意思?

  • 机器学习的类型

  • 十大机器学习算法

  • 包起来

  • 在2021年,计算机不仅能看到,但他们可以阅读他们自己的协议

    好吧,让我们来看看我们实际生活的现代恐怖故事。

    例如,如果有人告诉你很快 30% 的工作将被自动化取代,你会如何反应? 太离谱了,不是吗?

    这与机器学习算法有什么关系?

    幸运的是,隧道尽头有一盏灯。 让我带你完成它。

    2021 年,计算机可以:

    • 识别声音、面孔和笔迹。 (CSI风格……)
    • 自动为图片添加字幕。
    • 了解如何识别图像的内容并根据特定特征对其进行分类。
    • 为你做任务。 (并创建所需的算法来实现它们。)

    当然,名单还在继续。

    我们每天都在进行网络搜索、访问网站和社交媒体。 我们从不问自己这个基本问题:

    AI技术走了多远?

    开始了!

    技术的成就引发了对人类未来的质疑。

    也许这些事实会给我们一些启示:

    (来源:未来主义 德泽尔)

    • 在韩国,每100名工人中,平均4.78 名是机器人
    • 埃塞俄比亚88%的员工面临被机器人失业的风险。
    • 在纽约市,濒危雇员的比例40.7%
    • 编写机器学习程序需要9 行代码。
    • 97%的快餐烹饪工作将被机器取代。
    • 98%的农民将因机器而失业。
    • 机器学习每年可为制药行业带来高达10 亿美元的收入。
    • 未来 10 年,机器学习预计将取代25%的工作。

    到 2021 年,我们实际上可以在家中拥有一个机器人。

    您可以与JiboTapia进行流畅的对话 他们被称为社交机器人是有原因的。

    他们会记住您的朋友和家人的姓名、面孔和声音(这一点都不令人毛骨悚然!),他们可以照看您的孩子(哦,是的!),如果您在家中发生意外,他们会拨打 911你。 当周围没有其他人时,最后一个可能特别有用。 但我们稍后会谈到。

    如今,算法可以“自学”语言,甚至可以将英语口语翻译成中文书面语,同时达到普通中文母语者的流利程度。 迟早,学习外语将不可避免地过时。

    这个怎么样:

    我们的智能手机确实在监视我们……我相信您完全知道我在说什么! 想象一下——在办公室午餐时你提到(口头!)你想开始看路西法 回到办公桌前,你在手机上打开 Pinterest 或 Facebook,他就在那里——魔鬼本人……(是的,汤姆·埃利斯很梦幻,但这不是重点!)

    推荐系统无处不在。 如果您输入“乐高”的搜索,则弹出并归类为乐高的相关图像已被人工智能识别。 换句话说,它们并没有被人类手动注释为乐高积木……

    该算法通过查看数百万张图像自学这是什么

    鸡皮疙瘩!

    所有这些功能以及更多功能已经被公司利用。

    这里的含义是:

    首先,计算机自学吧,伙计们! 想想未来所有的机器人工人。 他们将比人类工人更快地学习和执行任务。

    其次-我知道你是什么样的思维- OMG,人类是如此注定!

    很多人都有这样的反应。

    上个世纪的许多作者都写过机器人主宰人类的未来。 人工智能正在蓬勃发展,机器人将统治世界并以人类为食。 奇点就在身边。

    好的,这是一个停下来的好地方。

    既然我们已经把它排除在我们的系统之外,让我们来看看什么是事实。

    进入机器学习的兔子洞

    我们首先需要一些上下文。

    15,000 年前,世界上最受欢迎的游戏之一诞生了。 在 12 世纪和 14 世纪之间,这种游戏被称为国际象棋

    它有40 种可能结果的10 次方(即 1 末尾有 40 个零)。

    2017 年,谷歌的AlphaZero算法使用机器学习来自学玩和赢得游戏。

    整个过程,从介绍游戏到算法,直到它赢得了与 Stockfish 的第一场比赛——世界上最强大的国际象棋引擎之一,经历了:

    (振作起来!)

    4个小时。

    哎哟!

    是的,我们正处于机器学习革命的边缘

    回过头来看,这并不是第一次出现此类中断。 19 世纪末 20 世纪初的工业革命也确实造成了社会动荡,但最终,人类和机器实现了平衡。

    是的,事情正在发生变化,这实际上是一件好事!

    机器学习软件能够以全新的眼光看待问题并在未知环境中导航。

    所以,正如我们即将看到的,这毕竟不是一个恐怖故事。

    更像是一个技术奇迹。

    现在:

    为什么分类如此重要?

    首先,机器学习定义是什么?

    基本上,机器被编程为自学如何生成程序和创建解决方案。 机器学习总是能产生最准确的数字(如果需要的话,还有预测)。

    想想一种可以解决范围广泛的完全不同问题的技术。

    这就是它的美妙之处!

    该系统的主要目的是分类 这也称为计算机视觉 它会自己学会区分。 而世界上可以简化为看似简单的分类任务的不同问题的数量,绝对令人难以置信。

    想象一下分类的能力:

    • 好的和坏的国际象棋位置(游戏)
    • 语法正确和错误的句子(翻译)
    • 一条空荡荡的道路,上面有汽车或行人(自动驾驶汽车)
    • 一个健康细胞和一个癌细胞(医学诊断)

    这就是为什么许多领域的专家会过时的原因。 您无需成为专家即可创建执行此类任务的代码。 编写英汉同声翻译程序的家伙一个字也不会说中文。

    该算法将自学如何成为专家。

    是的,了解它们并了解它们很重要……就像我们一开始了解计算机的方式一样。

    我们现在对电脑很好。 太好了,我们倾向于将它们拟人化(或者这只是我?)。

    似乎是时候问问自己了:

    所有这些最终将因人工智能和机器学习程序而失业的人会发生什么?

    你听说过一种叫做普遍基本收入的小东西吗?

    它是这样的:

    未来,公民将获得不涉及他们从事任何工作的收入。 资金将来自自动化提供的疯狂效率以及由此带来的节省。

    无论是这种情况,还是——稍微现实一点的情况——许多新的工作类型将会出现。 在 19 世纪末,美国约有 50% 的人口从事农业。 现在,多亏了强大的机器,只有不到 2% 的人是农民,但有人就业。

    现在,机器学习可以用来做什么?

    现实生活中的应用

    机器学习可用于从数据库中推断出新的事实。

    让我们来看看一些领域,其中机器学习将有很大区别:

    • 辅助驾驶——当您靠近前面的车辆时,汽车可以自动为您刹车。 因此,在未来的某个时候,人类几乎会忘记车祸意味着什么 无人驾驶汽车正在路上。
    • 医疗保健——提高医疗专业人员的效率。 在机器学习的帮助下,疾病识别和诊断将变得更加容易和准确。 例如,程序不仅可以比人类更好地扫描和识别癌症组织的图像,而且还可以根据庞大的病历数据库计算患者的存活率。 (查看Jeremy Howard的作品和他的名为Enlitic 的项目。太棒了!)
    • 药物发明——在机器学习的帮助下,每个患者都可以接受专为他设计的治疗。
    • 农业——农业将通过计算机视觉和机器人控制实现自动化:作物质量和预测、疾病检测、牲畜福利和生产。
    • 人工智能驱动的语言能力——在不久的将来,我们将能够使用人工智能进行口头交流和实时翻译

    机器学习只是一种工具,在可预见的未来仍将是一种工具。

    所以,无需担心。 高枕无忧。

    现在我们已经了解了机器学习是什么,让我们问下一个问题:

    机器学习算法是什么意思?

    因此,在我们确定了对我们未来机器学习的重要性和益处之后,让我们仔细看看使魔法发生的算法。

    解释机器学习算法的一个好方法是它们与传统编程进行比较

    传统编程中,程序员与该领域的专家在一个团队中工作,为该领域开发软件。 任务越复杂——代码越长,编写起来就越困难。

    机器学习算法的工作方式完全不同。 该算法接收一个数据集作为输入——以及一个可选的输出数据集 然后它分析它(或它们)并计算出产生有用结果必须发生的过程。 今天,这是为人类程序员保留的工作。 未来,这种情况也会改变。

    机器学习的类型

    有 4种不同类型的机器学习算法。

    他们来了:

    1. 监督学习

    监督学习算法中的输入数据被标记,输出是已知且准确的。 为了使用此类算法,您需要大量标记数据。 这可能并不总是一件容易的事。

    监督算法分为两类——回归分类 每个检查不同的数据集。

    回归算法是进行预测和预测的算法。 其中包括天气预报、人口增长和预期寿命估计、市场预测。

    分类算法用于诊断、身份欺诈检测、客户保留,以及顾名思义——图像分类。

    2. 无监督学习

    当输入数据没有标记时会发生这种情况。 他们将数据组织成集群结构。 因此,任何输入数据都可以立即进行分析。

    由于数据未标记,因此无法评估结果的准确性。 也就是说,无监督算法旨在追求的并不是准确性。 算法创建的集群对程序来说并不熟悉。 所以这个想法是输入数据,分析它,然后把它分组到集群中。

    就像监督算法一样,它们的无监督算法也分为两类——降维聚类

    聚类算法本身显然是这一切的一部分。 将数据按类别分组很有用,因此您不必单独处理每一部分。 这些算法首先用于客户细分和有针对性的营销。

    降维算法用于结构发现、大数据可视化、特征提取和有意义的压缩。 如果聚类是硬币的一面,那么降维将是另一方面。 通过将数据分组到集群中,算法不可避免地减少了描述数据集的有意义变量(维度)的数量。

    现在,有一类机器学习算法结合了前 2 类:

    3. 半监督学习

    它代表监督之间标记的数据,并未标记的数据无监督的算法

    半监督算法使用少量标记数据和大量未标记数据。 这可以导致学习准确性的提高。

    就数据收集而言,这也是一个巨大的缓解,因为生成标记数据需要大量资源。

    4. 强化学习

    与前面的 3 种类型不同,强化算法根据数据集选择动作。 然后他们评估结果并在需要时更改策略。

    在强化算法中,您创建了一个网络和一个动作循环,仅此而已。 无需创建数据库,您就有了赢家。 为什么?

    好吧,正是强化算法解决了跳棋、国际象棋和围棋的问题。

    强化学习的工作原理是反复试验。 该系统将获得某种奖励,以帮助它衡量其成功率。 在游戏的情况下 - 奖励将是记分牌。 每当系统赢得一分时,它会将其评估为成功移动,并且此移动的状态变得更高。 它将不断重复循环,直到所有动作都成功为止。

    这就是我们如何拥有一个可以在 4 小时内掌握国际象棋游戏的算法。

    现在我们知道了!

    好吧。 让我们来看看算法本身:

    十大机器学习算法

    现在,在开始之前,让我们先了解一下机器学习中的核心概念之一。 回归,当涉及到机器学习回归算法时意味着该算法将尝试在两个变量之间建立关系。

    有许多类型的回归——线性回归、逻辑回归、多项式回归、普通最小二乘回归等等。 今天我们只介绍前两种类型,否则这将更好地出版为一本书,而不是一篇文章。

    正如我们稍后将看到的,前 10 名算法中的大多数都是监督学习算法,最好与 Python 一起使用。

    以下是排名前 10 的机器学习算法列表

    1. 线性回归

    它是最流行的机器学习算法之一。 它的作用是通过观察数据拟合线性方程来建立两个变量之间的关系。

    换句话说,这种类型的算法观察各种特征以得出结论。 如果变量的数量大于两个 - 该算法将被称为多元线性回归。

    线性回归也是在 Python 中运行良好的监督机器学习算法之一 它是一种强大的统计工具,可用于预测消费者行为、估计预测和评估趋势。 公司可以从进行线性分析和预测未来一段时间的销售额中受益。

    所以,如果我们有两个变量,其中一个是解释性的,另一个是依赖的 因变量代表您想要研究或预测的值。 解释变量是独立的。 因变量总是依赖于解释。

    线性机器学习的重点是查看两个变量之间是否存在显着关系,如果存在,则查看它到底代表什么。

    线性回归被认为是一种简单的机器学习算法,因此在科学家中很受欢迎。

    现在,有线性回归,还有逻辑回归。 让我们来看看区别:

    2.逻辑回归

    这是基本的机器学习算法之一 它是一个只有 2 个状态或 2 个值二项式分类器- 您可以为其分配输入数据被压缩,然后被分析。

    与线性回归不同,逻辑算法使用非线性函数进行预测。 逻辑回归算法用于分类而不是回归任务。 名称中的“回归”表明算法使用线性模型并将其纳入未来空间。

    逻辑回归是一种有监督的机器学习算法,与线性回归一样,它在 Python 中运行良好。 从数学的角度来看,如果研究的输出数据预计是生病/健康或癌症/无癌症,那么逻辑回归是使用的完美算法。

    与输出数据可能具有不同值的线性回归不同,逻辑回归只能将 1 和 0 作为输出。

    基于分类响应,有 3 种类型的逻辑回归。 这些是:

    • 二元逻辑回归——如果输出是某种“是”/“否”,这是最常用的类型。
    • 多项式逻辑回归——当可能有 3 个或更多没有排序的答案时。
    • 有序逻辑回归——同样是 3 个或更多的答案,但有顺序。 例如,当预期结果在 1 到 10 的范围内时。

    让我们看看另一个很棒的分类算法:

    3. 线性判别分析

    此方法找到特征的线性组合,将不同的输入数据分开。 LDA 算法的目的是检查作为特征线性联合的可靠变量。 这是一种很棒的分类技术

    该算法检查输入数据的统计质量并为每个类别进行计算。 它测量类的值,然后测量所有类之间的方差。

    在对类之间的差异建模的过程中,该算法根据自变量检查输入数据。

    输出数据包含有关具有最高值的类的信息。 线性判别分析算法最适合在已知类别之间进行分离 当几个因素需要在数学上进行分类时,我们使用 LDA 算法。

    4. K-最近

    kNN 算法是非常适合初学者的机器学习算法之一 他们根据旧的可用数据进行预测,以便根据不同的特征将数据分类

    它在监督机器学习算法列表中,主要用于分类。 它存储可用数据并使用它来衡量新案例中的相似性。

    kNN 中K是一个参数,表示将包含在“多数投票过程”中的最近邻居的数量。 这样,每个元素的邻居“投票”来确定他的类。

    使用 kNN 算法的最佳方法之一是当您有一个小的、无噪声的数据集并且所有数据都带有标签时。 该算法不是一个快速的算法,并且不会自学识别不干净的数据。 当数据集较大时,使用 kNN 不是一个好主意。

    kNN 算法是这样工作的:首先,指定参数 K,然后算法生成一个条目列表,即接近新数据样本。 然后它找到条目的最常见的分类,最后,它对新的数据输入进行分类。

    在实际应用方面,搜索引擎使用 kNN 算法来确定搜索结果是否与查询相关。 他们是无名英雄,可以在用户进行搜索时节省用户时间。

    接下来是 Tree-Trio:回归树随机森林AdaBoost

    开始了:

    5. 回归树(又名决策树)

    是的,它们被称为tree ,但既然我们在谈论机器学习算法,想象一下它们的根在顶部,树枝和叶子在底部。

    回归树是一种监督学习算法,令人惊讶的是,它在 Python 中运行良好。 (顺便说一下,大多数 ML 算法都可以。)

    这些“树”也称为决策树,用于预测建模 就输入数据的数量而言,它们需要用户相对较少的努力。

    它们的表示是一棵二叉树,它们解决了分类问题。 顾名思义,这种类型的算法使用树状决策模型。 他们执行变量筛选或特征选择。 输入数据既可以是数字数据,也可以是分类数据。

    请翻译!

    当然。 任何时候你做出决定,你都会过渡到一个新的情况——需要做出新的决定。 您可以采取的每条可能路线都是一个“分支”,而决策本身就是“节点”。 您的初始起点是主节点。

    这就是决策树算法如何创建一系列节点和叶子。 这里重要的是它们都来自一个节点。 (相比之下,随机森林算法产生许多树,每棵树都有其主节点。)

    在实际应用方面,回归树可用于基于各种因素预测存活率、保险费和房地产价格。

    回归树“生长”决策的分支,直到达到停止标准。 它适用于少量输入数据,否则,您可能会得到有偏差的输出数据集。

    该算法基于多种算法,决定在何处拆分并从决策中形成新分支。 数据被分成子注释区域,这些区域聚集在所有可用变量周围。

    6. 随机森林

    随机森林算法是监督机器学习的另一种形式 它产生多个决策树,而不是像回归树那样只有一个。 节点是随机分布的,它们的顺序对输出数据没有意义。 树的数量越大,结果越准确。

    这种类型的算法可用于分类和回归。 随机森林算法的一个很棒的特性是它可以在大量数据丢失的情况下工作 它还具有处理大型数据集的能力。

    在回归的情况下,这些算法不是最佳选择,因为它对模型的作用没有太多控制。

    随机森林算法在电子商务中非常有用。 如果您需要确定您的客户是否会喜欢某双鞋,您只需收集他们之前购买的信息。

    您包括鞋子的类型、是否有鞋跟、买家的性别以及他们之前订购的鞋子的价格范围。 这将是您的输入数据。

    该算法将生成足够的树来为您提供准确的估计。

    不客气!

    最后一个树系统算法来了:

    7. AdaBoost

    AdaBoost 是 Adaptive Boosting 的缩写。 该算法因其创造者在 2003 年获得了哥德尔奖

    和前两个一样,这个也使用了树的系统。 AdaBoost 中的树仅产生 1 个节点和 2 个叶子,即stump ,而不是多个节点和叶子

    AdaBoost 算法与决策树随机森林有很大不同

    让我们来看看:

    它产生一个输出前决策树算法会用很多变数。 一个树桩只能使用 1 个变量来做出决定。

    随机森林算法的情况下,所有的树对于最终决策同等重要 AdaBoost 算法将某些树桩设置为优先于其他树桩。

    最后但并非最不重要的一点,可以说随机森林树更混乱 这意味着树的顺序是无关紧要的。 结果并不取决于树木的生产顺序。 相比之下,对于 AdaBoost 算法——顺序是必不可少的。

    每棵树的结果都是下一棵树的基础。 因此,如果在此过程中出现错误,后续的每一棵树都会受到影响。

    好吧,那么这个算法在现实生活中能做什么呢?

    AdaBoost 算法已经在医疗保健领域大放异彩,研究人员使用它们来衡量疾病风险。 你有数据,但不同的因素有不同的引力。 (想象一下你摔倒在你的手臂上,你的医生使用一种算法来确定它是否断了。如果输入数据同时包含你手臂的 X 光片和你断掉的指甲的照片……嗯,很明显哪个残端会更加重视。)

    现在,我们走出了森林,可以这么说,让我们来看看其他 3 种机器学习算法:

    8. 朴素贝叶斯

    当您遇到文本分类问题时,这会派上用场 它是一种机器学习算法,用于处理高维数据集,例如垃圾邮件过滤或新闻文章分类。

    该算法带有此签名名称,因为它将每个变量视为独立的。 换句话说,它认为输入数据的不同特征是完全不相关的。 这使它成为一个简单而有效的概率分类器。

    名称中的“贝叶斯”部分指的是发明用于该算法的定理的人,即 – 托马斯贝叶斯。 正如您可能怀疑的那样,他的定理检验了事件的条件概率。

    概率在两个级别上计算。 首先,每个类别的概率。 其次,根据给定因素的条件概率。

    9. 学习向量量化

    学习矢量量化算法(LVQ)是一种更高级的机器学习算法

    与 kNN 不同,LVQ 算法代表了一种人工神经网络算法 换句话说,它旨在重建人脑的神经学。

    LVQ 算法使用一组码本向量作为表示。 这些基本上是数字列表,与您的训练数据具有相同的输入和输出质量。

    10.支持向量机

    这些是最流行的机器学习算法之一

    支持向量机算法适用于分类的极端情况 含义——当输入数据的决策边界不清楚时。 SVM 作为一个边界,可以最好地隔离输入类。

    SVM 可用于多维数据集。 该算法将非线性空间转换为线性空间。 在二维中,您可以将变量可视化为一条线,从而更容易识别相关性。

    SVMs已经在现实生活中的各个领域得到了应用:

    • 在医学影像和医学分类任务中
    • 研究人口稠密地区的空气质量
    • 帮助进行财务分析
    • 在搜索引擎的页面排名算法中
    • 用于文本和对象识别。

    这听起来像是 ML 算法的瑞士刀,不是吗?

    包起来

    人类和计算机可以成功地协同工作。

    研究人员向我们保证,这种伙伴关系可以并且带来惊人的结果。 机器学习算法已经在以多种方式帮助人类。

    机器学习和人工智能算法最重要的功能之一是分类。

    让我们再次简要地看看排名前 10 的机器学习算法:

    • 线性回归——用于建立两个变量之间的关系——一个Logistic Regression – 二项式分类器,每个查询只有 2 个可能的结果。
    • 线性判别分析——最适合在已知类别中对数据进行分类。
    • K-Nearest Neighbor – 将数据分类。
    • 回归树——用于预测建模。
    • 随机森林- 用于大型数据集,并且当大部分输入数据丢失时。
    • AdaBoost – 二元分类。
    • 朴素贝叶斯– 预测建模。
    • 学习矢量量化——一种人工神经网络算法。
    • 支持向量机——多维数据集中分类的极端情况。

    所有这些算法(加上尚未到来的新算法)将为人类繁荣的新时代奠定基础。 它将使普遍的基本收入成为可能(甚至必要),以确保能力较差的人的生存。 (否则谁会反抗并破坏我们的社会。哦,好吧。)

    好吧,谁能想到一篇关于机器学习算法的文章会如此愚蠢。 嗯,这就是今天的内容。

    一会儿见,伙计们!

    常问问题

    机器学习的局限性是什么

    机器学习很棒,它揭示了技术的未来。 这是有代价的。 例如,托管机器学习程序的计算机消耗大量的电力和资源。 到目前为止,机器学习的另一个缺点是偶尔的实体消歧。 有时机器无法区分安妮海瑟薇的名字和伯克希尔哈撒韦的股票价值。 每次这位女演员得到一些媒体关注,公司就会赚钱……

    什么是机器学习算法?

    机器学习是一种计算方法。 “传统”算法需要程序员来编写,而机器学习算法基本上是自我训练。 是的,不开玩笑!

    什么是最好的机器学习算法?

    这取决于您需要执行的任务。 为手头的任务选择最佳算法取决于输入的大小、质量和多样性,以及用户请求的输出数据类型。

    你如何编写机器学习算法?

    与其他所有事情一样,该过程首先要了解您为问题选择的算法的基础知识。 您需要咨询不同的学习资源并选择最适合您的学习资源。 然后首先将算法分解为小单元。 从一个简单的例子开始,当你掌握了一些东西时,你就用一个可信的实现来验证。 然后你就完成了整个过程。 这听起来可能比实际更难。 但这完全值得一试!