写点什么

五分钟了解机器学习十大算法

  • 2019 年 12 月 31 日
  • 本文字数:3212 字

    阅读完需:约 11 分钟

五分钟了解机器学习十大算法

本文为有志于成为数据科学家或对此感兴趣的读者们介绍最流行的机器学习算法。


机器学习是该行业的一个创新且重要的领域。我们为机器学习程序选择的算法类型,取决于我们想要实现的目标。


现在,机器学习有很多算法。因此,如此多的算法,可能对于初学者来说,是相当不堪重负的。今天,我们将简要介绍 10 种最流行的机器学习算法,这样你就可以适应这个激动人心的机器学习世界了!


让我们言归正传!


1. 线性回归

线性回归(Linear Regression)可能是最流行的机器学习算法。线性回归就是要找一条直线,并且让这条直线尽可能地拟合散点图中的数据点。它试图通过将直线方程与该数据拟合来表示自变量(x 值)和数值结果(y 值)。然后就可以用这条线来预测未来的值!


这种算法最常用的技术是最小二乘法(Least of squares)。这个方法计算出最佳拟合线,以使得与直线上每个数据点的垂直距离最小。总距离是所有数据点的垂直距离(绿线)的平方和。其思想是通过最小化这个平方误差或距离来拟合模型。



例如,简单线性回归,它有一个自变量(x 轴)和一个因变量(y 轴)


2. 逻辑回归

逻辑回归(Logistic regression)与线性回归类似,但它是用于输出为二进制的情况(即,当结果只能有两个可能的值)。对最终输出的预测是一个非线性的 S 型函数,称为 logistic function, g()


这个逻辑函数将中间结果值映射到结果变量 Y,其值范围从 0 到 1。然后,这些值可以解释为 Y 出现的概率。S 型逻辑函数的性质使得逻辑回归更适合用于分类任务。



逻辑回归曲线图,显示了通过考试的概率与学习时间的关系。


3. 决策树

决策树(Decision Trees)可用于回归和分类任务。


在这一算法中,训练模型通过学习树表示(Tree representation)的决策规则来学习预测目标变量的值。树是由具有相应属性的节点组成的。


在每个节点上,我们根据可用的特征询问有关数据的问题。左右分支代表可能的答案。最终节点(即叶节点)对应于一个预测值。


每个特征的重要性是通过自顶向下方法确定的。节点越高,其属性就越重要。



决定是否在餐厅等候的决策树示例。


4. 朴素贝叶斯

朴素贝叶斯(Naive Bayes)是基于贝叶斯定理。它测量每个类的概率,每个类的条件概率给出 x 的值。这个算法用于分类问题,得到一个二进制“是 / 非”的结果。看看下面的方程式。


  • 给定预测变量 X,c 类事件的概率。

  • 给定 c 时,x 的概率。

  • 类的概率。

  • 预测的概率。


朴素贝叶斯分类器是一种流行的统计技术,可用于过滤垃圾邮件!


5. 支持向量机(SVM)

支持向量机(Support Vector Machine,SVM)是一种用于分类问题的监督算法。支持向量机试图在数据点之间绘制两条线,它们之间的边距最大。为此,我们将数据项绘制为 n 维空间中的点,其中,n 是输入特征的数量。在此基础上,支持向量机找到一个最优边界,称为超平面(Hyperplane),它通过类标签将可能的输出进行最佳分离。


超平面与最近的类点之间的距离称为边距。最优超平面具有最大的边界,可以对点进行分类,从而使最近的数据点与这两个类之间的距离最大化。



例如,H1 没有将这两个类分开。但 H2 有,不过只有很小的边距。而 H3 以最大的边距将它们分开了。


6. K- 最近邻算法(KNN)

K- 最近邻算法(K-Nearest Neighbors,KNN)非常简单。KNN 通过在整个训练集中搜索 K 个最相似的实例,即 K 个邻居,并为所有这些 K 个实例分配一个公共输出变量,来对对象进行分类。


K 的选择很关键:较小的值可能会得到大量的噪声和不准确的结果,而较大的值是不可行的。它最常用于分类,但也适用于回归问题。


用于评估实例之间相似性的距离可以是欧几里得距离(Euclidean distance)、曼哈顿距离(Manhattan distance)或明氏距离(Minkowski distance)。欧几里得距离是两点之间的普通直线距离。它实际上是点坐标之差平方和的平方根。



KNN 分类示例


7. K- 均值

K- 均值(K-means)是通过对数据集进行分类来聚类的。例如,这个算法可用于根据购买历史将用户分组。它在数据集中找到 K 个聚类。K- 均值用于无监督学习,因此,我们只需使用训练数据 X,以及我们想要识别的聚类数量 K。


该算法根据每个数据点的特征,将每个数据点迭代地分配给 K 个组中的一个组。它为每个 K- 聚类(称为质心)选择 K 个点。基于相似度,将新的数据点添加到具有最近质心的聚类中。这个过程一直持续到质心停止变化为止。



8. 随机森林

随机森林(Random Forest)是一种非常流行的集成机器学习算法。这个算法的基本思想是,许多人的意见要比个人的意见更准确。在随机森林中,我们使用决策树集成(参见决策树)。


为了对新对象进行分类,我们从每个决策树中进行投票,并结合结果,然后根据多数投票做出最终决定。



(a)在训练过程中,每个决策树都是基于训练集的引导样本来构建的。(b)在分类过程中,输入实例的决定是根据多数投票做出的。


9. 降维

由于我们今天能够捕获的数据量之大,机器学习问题变得更加复杂。这就意味着训练极其缓慢,而且很难找到一个好的解决方案。这一问题,通常被称为“维数灾难”(Curse of dimensionality)。


降维(Dimensionality reduction)试图在不丢失最重要信息的情况下,通过将特定的特征组合成更高层次的特征来解决这个问题。主成分分析(Principal Component Analysis,PCA)是最流行的降维技术。


主成分分析通过将数据集压缩到低维线或超平面 / 子空间来降低数据集的维数。这尽可能地保留了原始数据的显著特征。



可以通过将所有数据点近似到一条直线来实现降维的示例。


10. 人工神经网络(ANN)

人工神经网络(Artificial Neural Networks,ANN)可以处理大型复杂的机器学习任务。神经网络本质上是一组带有权值的边和节点组成的相互连接的层,称为神经元。在输入层和输出层之间,我们可以插入多个隐藏层。人工神经网络使用了两个隐藏层。除此之外,还需要处理深度学习。


人工神经网络的工作原理与大脑的结构类似。一组神经元被赋予一个随机权重,以确定神经元如何处理输入数据。通过对输入数据训练神经网络来学习输入和输出之间的关系。在训练阶段,系统可以访问正确的答案。


如果网络不能准确识别输入,系统就会调整权重。经过充分的训练后,它将始终如一地识别出正确的模式。



每个圆形节点表示一个人工神经元,箭头表示从一个人工神经元的输出到另一个人工神经元的输入的连接。


接下来是什么?

现在,你已经了解了最流行的机器学习算法的基础介绍。你已经准备好学习更为复杂的概念,甚至可以通过深入的动手实践来实现它们。如果你想了解如何实现这些算法,可以参考 Educative 出品的 Grokking Data Science 课程,该课程将这些激动人心的理论应用于清晰、真实的应用程序。


祝你学习愉快!


延伸阅读 / 学习资料:



作者介绍:


Fahim ul Haq,曾在 Facebook、Microsoft 工作。Educative.io 联合创始人。Educative 旨在帮助学生使用交互式课程来学习编程知识。


原文链接:


https://towardsdatascience.com/the-top-10-ml-algorithms-for-data-science-in-5-minutes-4ffbed9c8672


2019 年 12 月 31 日 21:193596
用户头像
赵钰莹 InfoQ高级编辑

发布了 745 篇内容, 共 445.3 次阅读, 收获喜欢 2401 次。

关注

评论

发布
暂无评论
发现更多内容

模块一作业

chenmin

架构实战营模块一作业

陈俊

架构实战营

Spark数据倾斜方案实战(二)

小舰

4月日更

3w 字长文爆肝 Java 基础面试题!太顶了!!!

cxuan

Java 面试 后端

模块一-学生管理系统架构设计

华仔架构训练营

LeetCode题解:剑指 Offer 49. 丑数,二叉堆,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

花费一月时间吐血整理程序员必读书单,建议收藏

Silently9527

程序员

Prometheus2.25新特性讲解

远鹏

Prometheus cncf openmetrics

python 调用 cmd 而不显示黑框的方法

一代咩神

Python cmd

区块链农产品溯源平台,为农产品质量安全护航

13828808769

区块链 区块链+

初识Nginx(一)

书旅

nginx Nginx PHP-FPM

年薪百万是社会认同,更是自身价值体现

博文视点Broadview

复杂度分析

奈奈奈奈

Java

架构实战营 模块1 课后作业

༺NPE༻

架构实战营 模块1作业

唐江

架构实战营

Pod 阶段

耳东@Erdong

容器 4月日更

旋转木马案例

赫鲁小夫

4月日更

Rust从0到1-结构体-一个例子

rust struct

盘点 15 个好用的 API 接口管理神器

Java小咖秀

工具 工具分享

空中交警:借你一双“慧眼”,让你看透这飞机的“黑色十分钟”

华为云开发者社区

modelarts yolo 华为云ModelArts 模型开发 华为开发者大会2021

善盾SD币是什么?

飞亚科技

Golang 字符串分组

一代咩神

Go 语言

使用 lxrunoffline 管理运行wsl

手摸手教你阅读和调试大型开源项目 ZooKeeper

HelloGitHub

Java zookeeper 源码分析 ZooKeeper原理

马特量化交易机器人,炒币24小时不停歇

飞亚科技

架构实战营作业:模块一

心晴雨亦晴(~o~)

模块一:课后作业

iHai

架构实战营

Spring IOC 特性有哪些,不会读不懂源码!

小傅哥

Java spring 小傅哥 控制反转IOC

区块链产业园区服务平台开发,搭建区块链园区运营平台

13828808769

区块链+ #区块链#

手把手教你写一个spring IOC容器

华为云开发者社区

spring 容器 ioc spring框架

架构训练营模块一作业

Geek_e0c25c

架构训练营

五分钟了解机器学习十大算法-InfoQ