快速理解机器学习中的常用算法


一、算法类型

分类算法

KNN
逻辑回归(虽然是说的回归,但是和线性回归不一样,它属于分类算法)
决策树
朴素贝叶斯
SVM向量机


回归算法(回归分析是确定两种或两种以上变量关系的一种统计分析方法)

KNN
线性回归
岭回归
lasso回归
决策树
SVM向量机


聚类算法

K-means(K均值算法)


二、快速查阅

算法类型是否监督简介
朴素贝叶斯分类贝叶斯分类法是基于贝叶斯定定理的统计学分类方法。它通过预测一个给定的元组属于一个特定类的概率,来进行分类。朴素贝叶斯分类法假定一个属性值在给定类的影响独立于其他属性的一类条件独立性。
决策树分类决策树是一种简单但广泛使用的分类器,它通过训练数据构建决策树,对未知的数据进行分类。
SVM分类支持向量机把分类问题转化为寻找分类平面的问题,并通过最大化分类边界点距离分类平面的距离来实现分类。
逻辑回归分类逻辑回归是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法。
线性回归回归线性回归是处理回归任务最常用的算法之一。该算法的形式十分简单,它期望使用一个超平面拟合数据集(只有两个变量的时候就是一条直线)。
回归树回归回归树(决策树的一种)通过将数据集重复分割为不同的分支而实现分层学习,分割的标准是最大化每一次分离的信息增益。这种分支结构让回归树很自然地学习到非线性关系。
KNN分类+回归通过搜索K个最相似的实例(邻居)的整个训练集并总结那些K个实例的输出变量,对新数据点进行预测。
Adaboosting分类+回归Adaboost目的就是从训练数据中学习一系列的弱分类器或基本分类器,然后将这些弱分类器组合成一个强分类器。
神经网络分类+回归它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。
K-means聚类通过一次次重复选择质心、计算距离后分类、再次选择新质心的流程,直到我们分组之后所有的数据都不会再变化了,也就得到了最终的聚合结果。



三、简要说明

1、分类和回归问题的本质

我们常说分类和回归是机器学习中的重要板块,而事实上,无论是分类还是回归,都是想建立一个预测模型 ,给定一个输入 , 可以得到一个输出 。不同的只是在分类问题中, 输出是离散的;而在回归问题中输出是连续的。所以总的来说,两种问题的学习算法都很类似。所以我们才能看到一些算法应用于分类也能应用于回归。


2、损失函数

损失函数就是用来表现预测与实际数据的差距程度,用来估量预测模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示。在不考虑过拟合的情况下,损失函数越小,模型的鲁棒性就越好。



四、详细说明

KNN

在这里插入图片描述

简介: 或称为KNN邻近算法,属于无监督学习。它的意思是寻找K个属性最接近数据,而K的取值也就是关键。

方程
KNN算法中,通常使用欧式距离来进行计算K值,然后K的取值获得对应的错误率。在这里插入图片描述
按照模型进行训练数据和验证数据的比较,最终得到最恰当的K值。

适用场景: 当需要使用分类算法,且数据比较大的时候就可以尝试使用KNN算法进行分类了。

特性
1、非参数性:它是根据数据来建立算法模型的,事先不会对数据进行任何假设,也就是说它本身并不会设想数据分类是某一种样式(比如一条线分割样本数据),而是针对数据来进行训练,得到一个模型。
2、惰性:很多算法需要事先对数据进行大量训练得到一种算法模型,而KNN不需要,它并没有明确的训练过程。它数据涌入时,它会进行存储,直到需要进行预测时,它才会根据训练样本集去寻找近邻得到预测结果。

优势
1、简单易用,模型非常简洁明了。
2、预测效果较好,并且对于噪声(异常值)不敏感。

缺点
1、消耗内存,因为它会存储所有的样本数据。
2、当样本数据过大时,预测阶段可能比较慢。



逻辑回归(Logistic Regression)

简介: 逻辑回归属于监督学习。面对一个回归或者分类问题,建立代价函数(也称损失函数,将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数),然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏。

在这里插入图片描述
逻辑回归方程
在这里插入图片描述
在这里插入图片描述

优势
1、容易使用和解释,并且能够用图形来表示,根据结果能够很清晰的判断趋势。
2、训练速度较快,分类的时候,计算量仅仅只和特征的数目相关。
3、内存资源占用小,因为只需要存储各个维度的特征值。

缺点
1、可能会出现欠拟合的情况,也就是准确度丧失。
2、不能很好的处理大量多类特征的变量。



决策树

简介: 决策树是监督学习算法,它是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。在用于回归时称为回归树。决策树分为分类树(一般指分类)、回归树,分别输出的是离散值和连续值。常用算法有:ID3、C4.5、CART。
在这里插入图片描述
相关说明
1、剪枝:剪枝就是给决策树瘦身,这一步想实现的目标就是,不需要太多的判断,同样可以得到不错的结果。之所以这么做,是为了防止“过拟合”(Overfitting)现象的发生。

2、过拟合:指的是模型的训练结果“太好了”,或者说是太符合训练样本数据的特征了,以至于在实际应用的过程中,会存在“死板”的情况,导致新的内容进入时反而产生了分类错误。

3、欠拟合:指的是模型的训练结果不够理想,达不到想要的效果。

适用场景
1、具有决策者期望达到的明确目标。
2、存在决策者无法控制的两个以上不确定因素。
3、决策者可以估计不确定因素发生的概率。

优势
1、对中间缺失值不敏感。
2、相比传统的回归和分类方法,决策树是更接近人的决策模式。
3、能够用图形来表示。

缺点
对未知的测试数据未必有好的分类、泛化能力,即可能发生过拟合现象,此时可采用剪枝或随机森林。



随机森林

简介: 顾名思义,森林就是很多树。严格来说,随机森林其实算是一种集成算法。它首先随机选取不同的特征(feature)和训练样本(training sample),生成大量的决策树,然后综合这些决策树的结果来进行最终的分类。随机森林在现实分析中被大量使用,它相对于决策树,在准确性上有了很大的提升,同时一定程度上改善了决策树容易被攻击的特点。

适用场景: 数据维度相对低(几十维),同时对准确性有较高要求时。因为不需要很多参数调整就可以达到不错的效果,基本上不知道用什么方法的时候都可以先试一下随机森林。



朴素贝叶斯

简介: 朴素贝叶斯属于监督学习算法,它被称为朴素的原因,是在于它假设每个输入变量是独立的。 这是一个强硬的假设,对于真实数据来说是不切实际的,但该技术对于大范围内的复杂问题仍非常有效。
在这里插入图片描述
公式理解

P(A|B) = P(B|A) * P(A) / P(B)

A为类别,也就是每个元素,它可以是多维的、拥有多个特征。
B为特征,也就是最终明确的结果,比如:是、否。

适用场景

1、需要一个比较容易解释,而且不同维度之间相关性较小的模型的时候。
2、可以高效处理高维数据(结果可能不尽如人意)。

优势

1、对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量超出内存时,我们可以一批批的去增量训练。
2、对缺失数据不太敏感,算法也比较简单,常用于文本分类。

缺点

1、需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。
2、对输入数据的表达形式很敏感。



SVM向量机

简介: SVM最基本的应用是二分类。 求解最优的分类面(存在一个分类面,两个点集到此平面的最小距离最大,两个点集中的边缘点到此平面的距离最大),然后用于分类。

在这里插入图片描述
适用场景
针对样本点聚集在决策边界附近的数据集,都有良好的表现,常用于文本分类、人脸识别、小样本,非线性,高维数据集。

优势
可有效解决高维度特征的数据集。

缺点
要求较高的内存需求和繁琐的调参,不适用于大数据量数据集。



线性回归(Linear regression)

简介: 线性回归的目的就是求解出合适的θ,在一元的情况下拟合出一条直线(多元情况下是平面或者曲面),可以近似的代表各个数据样本的标签值。所以最好的直线要距离各个样本点都很接近。只有一个自变量的情况称为简单回归(或称一元回归),大于一个自变量情况的叫做多元回归。

如果2个或者多个变量之间存在“线性关系”,那么我们就可以通过历史数据,摸清变量之间的“套路”,建立一个有效的模型,来预测未来的变量结果。

所以说,线性回归得出的模型不一定是一条直线:在只有一个变量的时候,模型是平面中的一条直线;有两个变量的时候,模型是空间中的一个平面;有更多变量时,模型将是更高维的。
在这里插入图片描述
方程

f(x) = w^⊤x + b

用上述方程去拟合一组数据,找到w和b的一组值,使得该数据最接近真实的情况。那么对于这组函数的损失函数,满足下列方程。
在这里插入图片描述

适用场景

自变量和因变量之间是线性关系。

优势

1、建模速度快,不需要很复杂的计算,在数据量大的情况下依然运行速度很快。

2、可以根据系数给出每个变量的理解和解释。

缺点

不能很好地拟合非线性数据,所以需要先判断变量之间是否是线性关系(这一点很重要,一定要先确定要有线性关系才适合使用该算法)。



岭回归(ridge regression)和套索回归(lasso regression)

简介: 我们在使用原始线性回归时,过分依赖训练集的数据,导致过拟合的问题,所以在原始的线性回归的损失函数中加入正则项(规则项)范数,改变损失函数,减少对训练集的关注程度。

使用正则项的意义所在

实现参数的稀疏,这样可以简化模型,避免过拟合。复杂的模型可能导致过度拟合,其中包含的异常样本的变动,会在小区间内产生很大的波动。

L0(常用L1替代): 模型参数中非零参数的个数。

L1: 向量各个元素绝对值之和。

L2: 各个参数的平方的和的开方值。

L1正则化会将参数压缩到0,L2正则化只会让参数尽量小,不会取到0。所以在L1正则化在逐渐加强的过程中,相对不重要的特征的参数会比相对重要的特征的参数更快地变成0。

L1正则化本质是一个特征选择的过程。选出少量但重要的特征,以防止过拟合问题。而L2正则化在加强的过程中,会尽量让每个特征对模型都有一些贡献,相对不重要的特征的参数会非常接近0。

套索回归和岭回归正则化比较

套索回归中采用的就是L1正则化,其损失函数如下。它在线性回归的函数中,添加了L1正则项。
在这里插入图片描述
岭回归采用了L2正则化,其损失函数如下。它在线性回归的函数中,添加了L2正则项。
在这里插入图片描述
套索回归的岭回归应用

对于多重共线性的数据,其中包含病态数据,那么可以使用岭回归和套索回归来限制病态数据对拟合结果的影响,也就是提升抗干扰的能力。



增强学习(Adaboosting)

简介: Adaboosting属于集成方法,通过使用多个弱分类器来构造成为一个强分类器。前面的决策树构建成随机森林,是构建出大量的决策树,然后对判定的结果进行推测。而boosting的意思是每一次的训练结果都是基于上一次的结果,所以称为提升。adaboosting每次迭代调整样本的权重,并用更新过权重值的数据集训练下一个弱学习器,直到达到某个预定的足够小的错误率、或者达到指定的最大迭代次数之后,将各个弱学习器加权组合为最终的强学习器。
在这里插入图片描述
适用场景

1、用于二分类或多分类的应用场景。

2、用于特征选择

优势

1、可以将不同的分类算法作为基分类器。

2、解释性强,结构简单。

缺点

1、对训练样本集中的异常点敏感,异常样本可能会在迭代过程中获得较高的权重值,最终影响模型效果。

2、迭代次数(弱学习器个数)不好确定,需要自己把握。



神经网络(neural networks)

简介: 神经网络实际上模拟了大脑的神经元联系,通过一个个感知器的输入,来判断变化,最终做出决策。一个神经网络需要有三个内容:输入和输出、权重(w)和阈值(b),多层感知器。
在这里插入图片描述
图中,左边为输入层,也就是输入神经元;最右边为输出层,讯息在神经元链接中传输、分析、权衡,形成输出结果;中间的被称为隐藏层,多个隐藏层,则意味着多个激活函数。

适用场景

1、图像处理和字符识别

2、复杂问题的预测



K-means

简介: 它属于无监督的聚类算法。通过一次次重复选择质心、计算距离后分类、再次选择新质心的流程,直到我们分组之后所有的数据都不会再变化了,也就得到了最终的聚合结果。

在这里插入图片描述

步骤
1、随机选取k个质心(k值取决于你想聚成几个类别)。

2、计算样本到质心的距离,距离质心距离(采用欧式距离)近的归为一类。

3、求出分类后的每类的新质心。

4、再次计算计算样本到新质心的距离,距离质心距离近的归为一类。

5、判断新旧聚类是否相同,如果相同就代表已经聚类成功,如果没有就循环2-4步骤直到相同。

适用场景 :文档分类器、物品传输优化、识别犯罪地点、客户分类等。

优势

简单,好理解,运算速度快。

缺点

只能应用于连续型的数据,并且一定要在聚类前需要手工指定要分成几个类别。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值