机器学习

478 阅读17分钟

一 常见概念

1. 什么是机器学习?

是使用算法来解析数据、从中学习,然后对真实世界中的世界做决策。
与传统的为解决特定任务,硬编码的软件程序不同,机器学习是用大量的数据来“训练”,
通过各种算法从数据中学习如何完成任务。

2. 什么是深度学习?

深度学习是一种特殊的机器学习,它通过将世界表示为嵌套的概念层次结构来实现强大的功能和灵活性,
每个概念都是根据更简单的概念进行定义的,而更抽象的表示则用不那么抽象的概念计算出来。

3. 什么是强化学习?

如果agent的某个行为策略导致环境正的奖赏(强化信号),那么agent以后产生这个行为策略的趋势便会加强。
agent的目标是在每个离散状态发现最优的策略以使期望的折扣奖赏最大。

4. 什么是数据挖掘?

数据挖掘是指从大量的数据中通过算法搜索隐藏于其中的信息的过程。
数据挖掘通常与计算科学有关,并通过统计、在线分析处理、
情报检索、机器学习、专家系统和模式识别等诸多方法来实现上述目标。
数据挖掘主要有:数据准备、规律寻找和规律表示三个步骤。

5. 什么是神经网络?

可以将一个神经网络视为包含了许多参数的数学模型,这个模型是若干个函数相互嵌套代入得。
CNN,RNN,LSTM,ResNet

6. 什么是集成学习?

通过构建并结合多个学习器来完成学习任务,非常有策略的生成一组分类器,
再非常有策略的结合在一起。

7. 什么是无/有监督学习?什么是自监督学习?

无监督学习:指的是从信息出发自动寻找规律,并将其分成各种类别。
监督学习:监督学习指的是给历史一个标签,运用模型预测结果。
自监督学习:利用数据的某些属性来设置伪监督任务来替换人类注释。

8. 过拟合的定义,怎么避免过拟合?

过拟合:所选模型的复杂度比真实模型更高,
       学习时选择的模型所包含的参数过多,对已知数据预测得很好,
       但对未知数据预测得很差的现象。
避免过拟合:
        1)Early stopping:在模型对训练数据集迭代收敛之前停止迭代来防止。
        2)数据集扩增:需要得到更多的符合要求的数据。
        3)正则化:在经验风险上加上表示模型复杂度的正则化项(惩罚项)
        4)Dropout:dropout是指在训练过程中,对于神经元,按照一定的概率将其暂时从网络中丢弃

9. 推荐算法有哪些?

1)协同过滤
2)基于内容的推荐
3)基于知识的推荐
4)混合推荐

10.什么是朴素贝叶斯算法?

是应用最广泛的分类算法之一。朴素贝叶斯方法是在贝叶斯算法的基础上进行了相应的简化,
即假定给定目标值时属性之间相互条件独立。

贝叶斯公式:

image.png
即:

image.png
参考:带你理解朴素贝叶斯分类算法 - 知乎 (zhihu.com))

11. 什么是傅里叶变换?

目的是可将时间域上的信号转变为频率域上的信号,
随着域的不同,在时域中某些不好处理的地方,在频域上就较为简单。

12.概率和似然有什么区别?

在非正式情况下,“似然”通常被用作“概率”的同义词。
在数理统计中,“概率”描述了给定模型参数后,描述结果的合理性,而不涉及任何观察到的数据。而“似然”则描述了给定的观测值后,描述模型参数是否合理。
如在10中,p(类别|特征)是概率,p(特征|类别)是似然即是类条件概率(class-conditional probability)。
参照西瓜书,
在此之前我们已经有了数据,已知一堆色泽,根蒂,敲声...是否是好瓜的瓜。
现在摘来了一个青绿色根蒂蜷缩的瓜我们要根据已知去推测它是好瓜的概率。
为了降低计算难度,采用朴素贝叶斯,假设每个色泽,根蒂等都独立的对好坏瓜结果发生影响。
c为好瓜,xi为青绿、蜷缩、浊响...
那我们
P(c|x)=P(c)*∏P(xi|c)/p(x)
 =P(好瓜|青绿&蜷缩&..)
 =已知瓜中好瓜的概率*好瓜中青色瓜的概率*好瓜中蜷缩的概率../(已知瓜中青绿色瓜的概率*蜷缩的概率...)

13. 什么是极大似然估计?

通俗的讲,就是利用已知的样本结果信息,反推最具有可能导致这些样本结果出现的模型参数值。

image.png
那么回到问题12,连续属性的类条件概率(如含糖率)并没有那么容易可以得到, 那么我们就可以采用极大似然估计。同样的离散属性也可以。

14. 什么是协方差?

协方差主要用来度量两个随机变量关系。
如果结果为正值,则说明两者是正相关的;结果为负值,说明两者是负相关的;
如果为0,就是统计上的“相互独立”。

15. 损失函数、代价函数、经验风险?

损失函数: 定义在单个训练样本的损失。一个样本的误差,比如一个样本预测的类别和实际类别的区别。
代价函数:定义在整个训练集整体的误差描述,也就是所有样本的误差总和,也就是损失函数的总和。
经验风险:模型f(X)关于训练数据集的平均损失。

16.什么是k折交叉检验?

将数据随机切分为k个互不相交、相同大小的子集;k-1个放训练集,剩下一个做测试集。
重复进行训练集、测试集的选取,有k种可能。

17.什么是随机森林?

是集成学习中的一个算法,是一个包含多个决策树的一个分类器。

二 模型评估与选择

1. 机器学习评估方法

1)留出法:将数据集D划分为互斥的集合,一个为训练集,一个为测试集。
2)交叉验证法:将数据集D划分为k个大小相似的互斥子集,k-1个子集为训练集,余下为测试集。
3)自助法:以自助采样(bootstrap)为基础,
          有放回的采样,最终约有1/3的数据未被取出,用来测试。、

2. 机器学习性能度量

1)错误率:分类错误的样本数占样本总数的比例。
2)精度:分类正确的样本数占样本总数的比例。
3)查准率(Precision):检索出的有多少比例是用户感兴趣的。
4)查全率(Recall):用户感兴趣中有多少被检索出来了。
5)混淆矩阵:

image.png
6)P-R曲线:以查准率为纵轴,查全率为横轴
7)BEP(Break-Even Point)平衡点 查准率=查全率
8)ROC曲线
纵轴是“真正例率” TPR
横轴是“假正例率” FPR
AUC(Area Under ROC Curve):ROC曲线下的面积
9)代价曲线
在非均等代价下(分类错误的损失代价相同)的前提下反映学习模型的期望总体代价。 10) AP(Average Precision) PR曲线下的面积。 mAP:即各类别 AP 的平均值

分类问题

四 决策树

决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,
每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。

1)决策树学习的关键是如何选择最优划分属性
2)一般,希望随着划分进行,决策树的分支结点所包含的样本尽可能属于同一类别。
3)剪枝是决策树学习算法对付“过拟合”的主要手段。

五 神经网络

将一个神经网络视为包含许多参数的数学模型,
这个模型是若干个函数相互嵌套代入而得

1)神经元
神经元接收到来自n个其他神经元传递过来的输入信号, 这些输入信号通过带权重的连接传递,接收到的总输出值域神经元的阈值比较,通过“激活函数”处理产生输出。
2)感知机
由两层神经元组成
3)误差逆传播算法(BackPropagation,BP)
基于梯度下降策略,以目标的负梯度方向进行调整
4)BP网络,RBF网络,ART网络,SOM网络,级联相关网络,ELman网络,Boltzmann机
5)深度学习
典型的深度学习模型就是很深层的神经网络。

六 支持向量机(SVM)

1. 什么是SVM?

是一类按监督学习方式对数据进行二元分类的广义线性分类器,
其决策边界是对学习样本求解的最大边距超平面。

2. 什么是核函数?

根据模式识别理论,低纬空间线性不可分的模式通过非线性映射到高维特征空间则可能实现线性可分,
但是如果直接采用这种技术在高维空间进行分类或回归,则存在“维数灾难”。
采用核函数技术可以有效地解决这样的问题。

七 贝叶斯分类器

1. 先验概率

根据以往经验和分析得到的概率。

2. 后验概率

是指通过调查或其它方式获取新的附加信息,利用贝叶斯公式对先验概率进行修正,而后得到的概率。

3. 贝叶斯定理

image.png

4. 最大后验概率(MAP)

我们希望最大化后验概率的类别作为预测结果,可以看作是规则化的最大似然估计。  

image.png

5. 风险

   犯错误的概率

6. 损失

错误的分类会带来损失,不同的错误带来的损失可能不同。

7.条件风险

8. 朴素贝叶斯

9. 贝叶斯分类器

10.朴素贝叶斯法的参数估计

11. 平滑

用极大似然估计可能会出现所要估计的概率值为0的情况,
这时会影响到后验概率的计算结果,使分类产生偏差,
解决这一问题的方法是采用拉普拉斯平滑。

12.应用:文本分类

算法框架

八 集成学习

1.定义

通过构建并结合多个学习器来完成学习任务,是多分类器系统,
非常有策略的生成一组分类器,再非常有策略的结合在一起。

2.集成学习主要有哪几种框架?

集成学习从集成思想的架构分为Bagging(并行),Boosting(串行),Stacking(堆叠)三种。

3.简单介绍一下Bagging,常用bagging算法有哪些?

(27条消息) 学习笔记【机器学习重点与实战】——4 集成学习-Bagging_dkjkls的博客-CSDN博客
清华大学【数据挖掘:集成学习】_哔哩哔哩_bilibili

1)基于bootstrap(自助法)重采样,训练多个分类器,分类器集体投票得出结果,旨在减小方差。

image.png

2)常用bagging算法:随机森林算法
是Bagging的一个扩展变体。其在以决策时为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。随机森林不用剪枝(每一个分类器可能会过学习,但是将多个分类器combine之后,就基本不会产生过学习的问题)

4.简单介绍一下Stacking?

Stacking(堆叠法),先从初始数据集训练出初级学习器,然后“生成”一个新数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记。
为防止过拟合,一般不直接采用初级学习器的训练集来产生次级训练集,而使用交叉验证或者留一法这样的方式,用训练初级学习器未使用的样本来产生次级学习器的训练样本。

image.png

5. 简单介绍一下Boosting,常用boosting算法有哪些?

1)Boosting(增强学习),是一族可将弱学习器提升为强学习器的算法。
先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。通俗的说就是 “错的权重大,对的权重小” ,致力于减少模型的方差,而非bias(偏差)。个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成。

image.png
清华大学【数据挖掘:集成学习】_哔哩哔哩_bilibili

2)常用boosting算法: Adaboost、RegionBoost
Adaboost(自适应增强)
每个学习器的权值是学习得到的而不是给定的。
由于Boosting算法在解决实际问题时有一个重大的缺陷,即他们都要求事先知道弱分类算法分类正确率的下限。AdaBoost 是Boosting 算法家族中代表算法,AdaBoost 主要是在整个训练集上维护一个分布权值向量 Dt( x) ,用赋予权重的训练集通过弱分类算法产生分类假设 Ht ( x) ,即基分类器,然后计算他的错误率,用得到的错误率去更新分布权值向量 Dt( x) ,对错误分类的样本分配更大的权值,正确分类的样本赋予更小的权值。每次更新后用相同的弱分类算法产生新的分类假设,这些分类假设的序列构成多分类器。对这些多分类器用加权的方法进行联合,最后得到决策结果。这种方法不要求产生的单个分类器有高的识别率,即不要求寻找识别率很高的基分类算法,只要产生的基分类器的识别率大于 0.5 ,就可作为该多分类器序列中的一员。

RegionBoost
对不同的样本,不同的分类器的发言权是不一样的,权重和输入有关。

image.png

九 聚类(无监督学习)

聚类是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不再同一个簇中的数据对象的差异性也尽可能地大。也即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。
常用聚类算法 - 知乎 (zhihu.com)

1. 原型聚类

A.K-means(K均值)算法 ps:样本无标签 理解这一个算法我们可以从一个栗子入手。
有四个牧师随机选四个布道点,然后居民去距离自己最近的布道点听课。
听课结束后,牧师重新选取布道点。
但是布道点不可能离每一个人都特别近,有的居民发现距离另外一个布道点更近,便去另外一个布道点听课。
算法步骤:
1)随机选取样本点作为初始均值向量。
2)分别计算每个样本点到初始均值向量的距离,距离哪个点最近就属于哪个簇。
3)每个簇重新计算中心点,重复2)直至收敛。

B.学习向量化(LVQ算法)
ps:样本有标签 算法步骤:
1)初始化给定一组向量(v1,v2,...,vq)作为原型向量,随机选取。
2)从样本随机选取样本(xi,yi),计算xi与每个原型向量距离di
3)选取与xi距离最近的向量vj
4)如果样本的标签==簇的标签,将原型向xi拉,否则推 重复2)-4)

C.高斯混合聚类
采用概率模型来表达聚类原型
算法步骤:
1)初始化高斯混合成分的个数k
假设高斯混合分布模型参数为α(高斯混合参数),μ(均值),∑(协方差矩阵)
2)分别计算每个样本点的后验概率
(该样本点属于每一个高斯模型的概率)
3)迭代α、μ、∑
4)重复2)直至收敛

2. 密度聚类

A. DBSCAN算法
直白地说就是随机选取种子,并根据密度直达密度可达等不断扩展。

image.png

B.OPTICS算法
在DBSCAN算法中,使用了统一的[公式]值,当数据密度不均匀的时候,如果设置了较小的[公式]值,则较稀疏的cluster中的节点密度会小于M,会被认为是边界点而不被用于进一步的扩展;如果设置了较大的[公式]值,则密度较大且离得比较近的cluster容易被划分为同一个cluster。

image.png
对于密度不均的数据选取一个合适的[公式]值是困难的,对于高维数据,由于位数灾难,[公式]值的选取将变得更加困难。
OPTICS(Ordering Points To Identify the Clustering Structure, OPTICS)实际上是DBSCAN算法的一种有效扩展,主要解决对输入参数敏感的问题。即选取有限个邻域参数[公式] 进行聚类,这样就能得到不同邻域参数下的聚类结果。

3. 层次化聚类

层次聚类算法将数据集划分为一层一层的clusters,后面一层生成的clusters基于前面一层的结果。层次聚类算法一般分为两类:
1)Agglomerative层次聚类: 又称自底向上(bottom-up)的层次聚类,每一个对象最开始都是一个cluster,每次按一定的准则将最相近的两个cluster合并生成一个新的cluster,如此往复,直至最终所有的对象都属于一个cluster。
2)Divisive层次聚类: 又称自顶向下(top-down)的层次聚类,最开始所有的对象均属于一个cluster,每次按一定的准则将某个cluster划分为多个cluster,直至每个对象均是一个cluster.

十 降维学习

降维:通过某种数学变换将原始高维空间转变到一个低维的子空间。
在很多实际的问题中,虽然训练数据是高维的,但是与学习任务相关也许仅仅是其中的一个低维子空间,也称为一个低维嵌入。
《Machine Learning》 学习笔记十一 降维与度量学习 - 知乎 (zhihu.com)

1. K近邻学习(K-Nearest Neighbor)(监督学习)

基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。
分类任务:投票法;回归任务:平均法。

image.png

2. MDS算法(Multiple Dimensional Scaling)

不管是使用核函数升维还是对数据降维,我们都希望原始空间样本点之间的距离在新空间中基本保持不变,这样才不会使得原始空间样本之间的关系及总体分布发生较大的改变。“多维缩放”(MDS)正是基于这样的思想,MDS要求原始空间样本之间的距离在降维空间中得以保持。

image.png

3. PCA(主成分分析)

主成分分析直接通过一个线性变换,将原始空间中的样本投影到新的低维空间中。
算法思想:PCA采用一组新的基来表示样本点,其中每一个基向量都是原来基向量的线性组合,通过使用尽可能少的新基向量来表示样本,从而达到降维的目的。

image.png

4. 核化线性降维

引入了核函数,即先将样本映射到高维空间,再在高维空间中使用线性降维的方法。