人工智能十大基础算法

目录

1.线性回归

2.逻辑回归

3.决策树

4.朴素贝叶斯

5.支持向量机

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

7.K- 均值

8.随机森林 

9.降维

10.人工神经网络(ANN)


 事实上,人工智能已经存在于我们生活中很久了。但对很多人来讲,人工智能还是一个较为“高深”的技术,然而再高深的技术,也是从基础原理开始的。人工智能领域中就流传着10大算法,它们的原理浅显,很早就被发现、应用,甚至你在中学时就学过,在生活中也都极为常见。

1.线性回归

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

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

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

比如预测明年的房价涨幅、下一季度新产品的销量等等。听起来并不难,不过线性回归算法的难点并不在于得出预测值,而在于如何更精确。为了那个可能十分细微的数字,多少工程师为之耗尽了青春和头发。

2.逻辑回归

逻辑回归(Logistic regression)与线性回归类似,但逻辑回归的结果只能有两个的值。如果说线性回归是在预测一个开放的数值,那逻辑回归更像是做一道是或不是的判断题。

逻辑函数中Y值的范围从 0 到 1,是一个概率值。逻辑函数通常呈S 型,曲线把图表分成两块区域,因此适合用于分类任务。

比如上面的逻辑回归曲线图,显示了通过考试的概率与学习时间的关系,可以用来预测是否可以通过考试。

逻辑回归经常被电商或者外卖平台用来预测用户对品类的购买偏好。

3.决策树

如果说线性和逻辑回归都是把任务在一个回合内结束,那么决策树(Decision Trees)就是一个多步走的动作,它同样用于回归和分类任务中,不过场景通常更复杂且具体。

举个简单例子,老师面对一个班级的学生,哪些是好学生?如果简单判断考试90分就算好学生好像太粗暴了,不能唯分数论。那面对成绩不到90分的学生,我们可以从作业、出勤、提问等几个方面分开讨论。

以上就是一个决策树的图例,其中每一个有分叉的圈称为节点。在每个节点上,我们根据可用的特征询问有关数据的问题。左右分支代表可能的答案。最终节点(即叶节点)对应于一个预测值。

每个特征的重要性是通过自顶向下方法确定的。节点越高,其属性就越重要。比如在上面例子中的老师就认为出勤率比做作业重要,所以出勤率的节点就更高,当然分数的节点更高。

4.朴素贝叶斯

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

朴素贝叶斯分类器是一种流行的统计技术,经典应用是过滤垃圾邮件。

当然,学堂君赌一顿火锅,80%的人没看懂上面这段话。(80%这个数字是猜的,但经验直觉就是一种贝叶斯式的计算。)

用非术语解释贝叶斯定理,就是通过A条件下发生B的概率,去得出B条件下发生A的概率。比如说,小猫喜欢你,有a%可能性在你面前翻肚皮,请问小猫在你面前翻肚皮,有多少概率喜欢你?

当然,这样做题,等于抓瞎,所以我们还需要引入其他数据,比如小猫喜欢你,有b%可能和你贴贴,有c%概率发出呼噜声。所以我们如何知道小猫有多大概率喜欢自己呢,通过贝叶斯定理就可以从翻肚皮,贴贴和呼噜的概率中计算出来。

5.支持向量机

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

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

所以支持向量机想要解决的问题也就是如何把一堆数据做出区隔,它的主要应用场景有字符识别、面部识别、文本分类等各种识别。

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 个点。基于相似度,将新的数据点添加到具有最近质心的聚类中。这个过程一直持续到质心停止变化为止。

生活中,K- 均值在欺诈检测中扮演了重要角色,在汽车、医疗保险和保险欺诈检测领域中广泛应用。

8.随机森林 

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

(a)在训练过程中,每个决策树都是基于训练集的引导样本来构建的。

(b)在分类过程中,输入实例的决定是根据多数投票做出的。

随机森林拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源、保留及流失,也可以用来预测疾病的风险和病患者的易感性。

9.降维

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

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

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

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

10.人工神经网络(ANN)

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

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

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

⼈⼯智能的常⽤⼗种算法 根据⼀些 feature 进⾏分类,每个节点提⼀个问题,通过判断,将数据分为两类,再继续提问。这些问题是根据已有数据学习出来的,再投 ⼊新数据的时候,就可以根据这棵树上的问题,将数据划分到合适的叶⼦上。 如果你觉得这篇⽂章看起来稍微还有些吃⼒,或者想要更系统地学习⼈⼯智能,那么推荐你去看床长⼈⼯智能教程。⾮常棒的⼤神之作,教 程不仅通俗易懂,⽽且很风趣幽默。点击可以查看教程。 2. 随机森林 随机森林 在源数据中随机选取数据,组成⼏个⼦集 S 矩阵是源数据,有 1-N 条数据,A B C 是feature,最后⼀列C是类别 由 S 随机⽣成 M 个⼦矩阵 这 M 个⼦集得到 M 个决策树 将新数据投⼊到这 M 个树中,得到 M 个分类结果,计数看预测成哪⼀类的数⽬最多,就将此类别作为最后的预测结果 3. 逻辑回归 逻辑回归 当预测⽬标是概率这样的,值域需要满⾜⼤于等于0,⼩于等于1的,这个时候单纯的线性模型是做不到的,因为在定义域不在某个范围之 内时,值域也超出了规定区间。 所以此时需要这样的形状的模型会⽐较好 那么怎么得到这样的模型呢? 这个模型需要满⾜两个条件 ⼤于等于0,⼩于等于1 ⼤于等于0 的模型可以选择 绝对值,平⽅值,这⾥⽤ 指数函数,⼀定⼤于0 ⼩于等于1 ⽤除法,分⼦是⾃⼰,分母是⾃⾝加上1,那⼀定是⼩于1的了 再做⼀下变形,就得到了 logistic regression 模型 1. 决策树 决策树 通过源数据计算可以得到相应的系数了 最后得到 logistic 的图形 4. SVM support vector machine 要将两类分开,想要得到⼀个超平⾯,最优的超平⾯是到两类的 margin 达到最⼤,margin就是超平⾯与离它最近⼀点的距离,如下 图,Z2>Z1,所以绿⾊的超平⾯⽐较好 将这个超平⾯表⽰成⼀个线性⽅程,在线上⽅的⼀类,都⼤于等于1,另⼀类⼩于等于-1 点到⾯的距离根据图中的公式计算 所以得到 total margin 的表达式如下,⽬标是最⼤化这个 margin,就需要最⼩化分母,于是变成了⼀个优化问题 举个栗⼦,三个点,找到最优的超平⾯,定义了 weight vector=(2,3)-(1,1) 得到 weight vector 为(a,2a),将两个点代⼊⽅程,代⼊(2,3)另其值=1,代⼊(1,1)另其值=-1,求解出 a 和 截矩 w0 的 值,进⽽得到超平⾯的表达式。 a 求出来后,代⼊(a,2a)得到的就是 support vector a 和 w0 代⼊超平⾯的⽅程就是 support vector machine 5. 朴素贝叶斯 朴素贝叶斯 举个在 NLP 的应⽤ 给⼀段⽂字,返回情感分类,这段⽂字的态度是positive,还是negative 为了解决这个问题,可以只看其中的⼀些单词 这段⽂字,将仅由⼀些单词和它们的计数代表 原始问题是:给你⼀句话,它属于哪⼀类 通过 bayes rules 变成⼀个⽐较简单容易求得的问题 问题变成,这⼀类中这句话出现的概率是多少,当然,别忘了公式⾥的另外两个概率 栗⼦:单词 love 在 positive 的情况下出现的概率是 0.1,在 negative 的情况下出现的概率是 0.001 6. K最近邻 最近邻 k nearest neighbours 给⼀个新的数据时,离它最近的 k 个点中,哪个类别多,这个数据就属于哪⼀类 栗⼦:要区分 猫 和 狗,通过 claws 和 sound 两个feature来判断的话,圆形和三⾓形是已知分类的了,那么这个 star 代表的是哪⼀类呢 k=3时,这三条线链接的点就是最近的三个点,那么圆形多⼀些,所以这个star就是属于猫 7. K均值 均值 想要将⼀组数据,分为三类,粉⾊数值⼤,黄⾊数值⼩ 最开⼼先初始化,这⾥⾯选了最简单的 3,2,1 作为各类的初始值 剩下的数据⾥,每个都与三个初始值计算距离,然后归类到离它最近的初始值所在类别 分好类后,计算每⼀类的平均值,作为新⼀轮的中⼼点 ⼏轮之后,分组不再变化了,就可以停⽌了 8. Adaboost adaboost 是 bosting 的⽅法之⼀ bosting就是把若⼲个分类效果并不好的分类器综合起来考虑,会得到⼀个效果⽐较好的分类器。 下图,左右两个决策树,单个看是效果不怎么好的,但是把同样的数据投⼊进去,把两个结果加起来考虑,就会增加可信度 adaboost 的栗⼦,⼿写识别中,在画板上可以抓取到很多 features,例如 始点的⽅向,始点和终点的距离等等 training 的时候,会得到每个 feature 的 weight,例如 2 和 3 的开头部分很像,这个 feature 对分类起到的作⽤很
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值