机器学习笔记

机器学习笔记

如何选择合适的算法模型

在解决问题的时候,必须考虑下面两个问题:一、使用机器学习算法的目的,想要算法完成何种任务,比如是预测明天下雨的概率是对投票者按照兴趣分组;二、需要分析或者收集的数据时什么。
首先考虑使用机器学习算法的目的。如果想要预测目标变量的值,则可以选择监督学习算法,否则可以选择无监督学习算法,确定选择监督学习算法之后,需要进一步确定目标变量类型,如果目标变量是离散型,如是/否、1/2/3,A/B/C/或者红/黑/黄等,则可以选择分类算法;如果目标变量是连续的数值,如0.0~100.0、-999~999等,则需要选择回归算法
如果不想预测目标变量的值,则可以选择无监督算法。进一步分析是否需要将数据划分为离散的组。如果这是唯一的需求,则使用聚类算法。
当然在大多数情况下,上面给出的选择办法都能帮助读者选择恰当的机器学习算法,但这也并非已成不变。也有分类算法可以用于回归。
其次考虑的是数据问题,我们应该充分了解数据,对实际数据了解的越充分,越容易创建符合实际需求的应用程序,主要应该了解数据的一下特性:特征值是 离散型变量 还是 连续型变量 ,特征值中是否存在缺失的值,何种原因造成缺失值,数据中是够存在异常值,某个特征发生的频率如何,等等。充分了解上面提到的这些数据特性可以缩短选择机器学习算法的时间。

机器学习中如何选择分类器

在机器学习中,分类器作用是在标记好类别的训练数据基础上判断一个新的观察样本所属的类别。分类器依据学习的方式可以分为非监督学习和监督学习。非监督学习顾名思义指的是给予分类器学习的样本但没有相对应类别标签,主要是寻找未标记数据中的隐藏结构。,监督学习通过标记的训练数据推断出分类函数,分类函数可以用来将新样本映射到对应的标签。在监督学习方式中,每个训练样本包括训练样本的特征和相对应的标签。监督学习的流程包括确定训练样本的类型、收集训练样本集、确定学习函数的输入特征表示、确定学习函数的结构和对应的学习算法、完成整个训练模块设计、评估分类器的正确率。这一节的目的是分类器的选取。可以依据下面四个要点来选择合适的分类器。

1. 泛化能力和拟合之间的权衡

过拟合评估的是分类器在训练样本上的性能。如果一个分类器在训练样本上的正确率很高,说明分类器能够很好地拟合训练数据。但是一个很好的拟合训练数据的分类器就存在着很大的偏置,所以在测试数据上不一定能够得到好的效果。如果一个分类器在训练数据上能够得到很好效果但是在测试数据上效果下降严重,说明分类器过拟合了训练数据。从另一个方面分析,若分类器在测试数据上能够取得好效果,那么说明分类器的泛化能力强。分类器的泛化和拟合是一个此消彼长的过程,泛化能力强的分类器拟合能力一般很弱,另外则反之。所以分类器需要在泛化能力和拟合能力间取得平衡。

2. 分类函数的复杂度和训练数据的大小

训练数据的大小对于分类器的选择也是至关重要的,如果是一个简单的分类问题,那么拟合能力强泛化能力弱的分类器就可以通过很小的一部分训练数据来得到。反之,如果是一个复杂的分类问题,那么分类器学习就需要大量的训练数据和泛化能力强的学习算法。一个好的分类器应该能够根据问题的复杂度和训练数据的大小自动地调整拟合能力和泛化能力之间的平衡。

3. 输入的特征空间的维数

如果输入特征空间的向量维数很高的话,就会造成分类问题变得复杂,即使最后的分类函数仅仅就靠几个特征来决定的。这是因为过高的特征维数会混淆学习算法并且导致分类器的泛化能力过强,而泛化能力过强会使得分类器变化太大,性能下降。因此,一般高维特征向量输入的分类器都需要调节参数使其泛化能力较弱而拟合能力强。另外在实验中,也可以通过从输入数据中去除不相干的特征或者降低特征维数来提高分类器的性能。

4. 输入的特征向量之间的均一性和相互之间的关系

如果特征向量包含多种类型的数据(如离散,连续),许多分类器如SVM,线性回归,逻辑回归就不适用。这些分类器要求输入的特征必须是数字而且要归一化到相似的范围内如 之间。而像K最近邻算法和高斯核的SVM这些使用距离函数的分类器对于数据的均一性更加敏感。但是另一种分类器决策树却能够处理这些不均一的数据。如果有多个输入特征向量,每个特征向量之间相互独立,即当前特征向量的分类器输出仅仅和当前的特征向量输入有关,那么最好选择那些基于线性函数和距离函数的分类器如线性回归、SVM、朴素贝叶斯等。反之,如果特征向量之间存在复杂的相互关系,那么决策树和神经网络更加适合于这类问题

常见分类器介绍

1、SVM分类器(监督学习分类器)

答:训练样本必须先标识不同类别,然后进行训练。SVM算法就是找一个超平面,对于已经被标记的训练样本,SVM训练得到一个超平面,使得两个类别训练集中距离超平面最近的样本之间的垂直距离要最大(也就是如下图所示的两个虚线距离最大)。如下图所示,就是将两种不同类别的样本特征分隔开,且分割面要在最优分隔位置。

在这里插入图片描述
例如,有两个样本点,第一个点为正样本,它的特征向量是(0,-1);第二个点为负样本,它的特征向量是(2,3),从这两个样本点组成的训练集构建一个线性SVM分类器:两个样本之间的中点向量是(1,1),样本点之间的连线斜率为2,由于分割线与样本连线垂直且经过中点,那么样本SVM分割面方程为:x+2y=3,如图:在这里插入图片描述

KNN分类器(监督学习分类器)

答:(1)定义:KNN即K最近邻,是最简单的机器学习算法之一。已知训练样本必须先标识,然后进行训练得到未知样本分类。对于未知样本,按照某种计算距离找出它在训练集中的k个最近邻(监督学习:k个最邻近样本的分类已知),如果k个近邻中多数样本属于哪个类别,就将它判决为那一个类别。
由于采用k投票机制,所以能够减小噪声的影响。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
(2)算法流程:
①准备数据,对数据进行预处理;
②选用合适的数据结构存储训练数据和测试元组;
③设定参数,如k;
④维护一个大小为k的的按距离由大到小的优先级队列,用于存储最近邻训练元组。随机从训练元组中选取k个元组作为初始的最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号和距离存入优先级队列;
⑤遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L 与优先级队列中的最大距离Lmax;
⑥ 进行比较。若L>=Lmax,则舍弃该元组,遍历下一个元组。若L < Lmax,删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列;
⑦遍历完毕,计算优先级队列中k 个元组的多数类,并将其作为测试元组的类别;
⑧测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k 值。
具体如下:

如果K=3,那么离绿色点最近的有2个红色三角形和1个蓝色的正方形,这3个点投票,于是绿色的这个待分类点属于红色的三角形 ;
如果K=5,那么离绿色点最近的有2个红色三角形和3个蓝色的正方形,这5个点投票,于是绿色的这个待分类点属于蓝色的正方形 ;
(3)特别适合于多分类问题(multi-modal,对象具有多个类别标签), kNN比SVM的表现要好。不足之处是计算量较大、样本不平衡时分类效果差(如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。)。
针对这些缺陷,出现了改进方法:1)训练前对数据进行预处理,剔除关联性小的数据(针对计算量大的改进);2)采用权值的方法(和该样本距离小的邻居权值大)来改进(不平衡时分类效果差);

3、K-means分类器(非监督学习分类器)

答:(1)定义:设定参数k,然后将事先输入的n个数据对象划分为k个聚类,使得所获得的每个聚类满足内部对象相似度较高,而不同聚类中的对象相似度较小。注:这个是不需要事先标记的,所以是非监督学习。
(2)算法描述:
①适当选择k个类的初始中心;
②在第m次迭代中,对任意一个样本,求其到k个类中心的距离,将该样本归到距离最短的那个类;
③利用均值方法更新该类的中心;
④对于所有的C个聚类中心,如果利用(2)(3)的迭代法更新后,值保持不变,则迭代结束;否则继续迭代。
(3)缺点:
①聚类中心的个数K 需要事先给定,但在实际中这个 K 值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适;
②K-means需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果(可以使用K-means++算法来解决)。
(4)改进型算法——K-Means++
k-means++算法就是用来改进K-Means算法的K个类中心不好选择的缺陷。它选择初始中心的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。

4、KNN和K-Means的区别

在这里插入图片描述

5、有关分类算法的准确率,召回率,F1 值的描述

答:对于二类分类问题常用的评价指标是:精准度(precision)与召回率(recall)。
通常以关注的类为正类,其他类为负类,分类器在测试数据集上的预测或正确或不正确,4种情况出现的总数分别记作:
TP——将正类预测为正类数
FN——将正类预测为负类数
FP——将负类预测为正类数
TN——将负类预测为负类数

由此:
精准率定义为:P = TP / (TP + FP)
召回率定义为:R = TP / (TP + FN)
F1值定义为: F1 = 2 P*R / (P + R)
精准率和召回率和F1取值都在0和1之间,精准率和召回率高,F1值也会高。
关于精准率和召回率的理解举例:
假设一共有10篇文章,里面4篇是你要找的。根据你某个算法,找到其中5篇,但是实际上在这5篇里面,只有3篇是真正你要找的。那么你的这个算法的precision是3/5=60%;这个算法的recall是3/4=75%,也就是一共有用的这4篇里面,该算法只找到了其中3篇。
注:在信息检索领域,精确率和召回率又被称为查准率和查全率:
查准率=检索出的相关信息量 / 检索出的信息总量;
查全率=检索出的相关信息量 / 系统中的相关信息总量;

6、核函数

答:核函数是一个特征分类工具,为了使特征更容易分离或更好的结构化,把低维特征数据映射到高维数据的工具。比如,一组特征是以一维线段形式混合存在的,无法使用分割面分割,就可使用核函数将组特征转化为2维或更高维形式的组合,从而使得分割得以实现。举例,如图:

本来是二维的数据,现在我们把它映射的高维。这里也需要说明下,低维到高维,维数没有一个数量上的标准,可能就是无限维到无限维。
Mercer 定理:任何半正定的函数都可以作为核函数;
几种常用的核:
1) 线性核
线性内核是最简单的内核函数。 它由内积<x,y>加上可选的常数c给出。 使用线性内核的内核算法通常等于它们的非内核对应物,即具有线性内核的KPCA与标准PCA相同:
2)多项式核函数
多项式核是非固定内核。 多项式内核非常适合于所有训练数据都归一化的问题。表达式:k(x,y)=(αx ^ T y + c)^ d;
可调参数是斜率α,常数项c和多项式度d。
3)高斯核
4)指数的内核
5)拉普拉斯算子核

7、判别式模型与生成式模型的区别

答:生成式模型(Generative Model)与判别式模型(Discrimitive Model)是分类器常遇到的概念,它们的区别在于:对于输入x和类别标签y,生成式模型估计它们的联合概率分布P(x,y),判别式模型估计条件概率分布P(y|x)。生成式模型可以根据贝叶斯公式得到判别式模型,但反过来不行。
生成式模型:
判别式分析
朴素贝叶斯
K近邻(KNN)
混合高斯模型
隐马尔科夫模型(HMM)
贝叶斯网络
Sigmoid Belief Networks
马尔科夫随机场(Markov Random Fields)
深度信念网络(DBN)
判别式模型:
线性回归(Linear Regression)
逻辑回归(Logistic Regression)
神经网络(NN)
支持向量机(SVM)
高斯过程(Gaussian Process)
条件随机场(CRF)
CART(Classification and Regression Tree)

8、模式识别分类中,先验概率未知时的处理方法

答:有两种处理方式,如下(1)(2)所示:
(1)使用N-P决策:
在贝叶斯决策中,对于先验概率p(y),分为已知和未知两种情况:
1)p(y)已知,直接使用贝叶斯公式求后验概率即可;
2)p(y)未知,可以使用聂曼-皮尔逊决策(N-P决策)来计算决策面。
(2)使用最大最小损失规则:
最大最小损失规则主要作用就是解决使用最小损失规则时先验概率未知或难以计算的问题。

9、在分类问题遇到正负样本数据量不等的情况的处理方法

答:机器学习分类问题中的不均衡问题是指正负样本相差10倍以上,解决方法一般有:重采样、欠采样、调整权值。
比如正样本为10w条数据,负样本只有1w条数据,可以采取以方法处理:
1)将负样本重复10次,生成10w样本量,打乱顺序参与分类(可视为重采样变形形式);
2)从10w正样本中随机抽取1w参与分类(欠采样);
3)将负样本每个权重设置为10,正样本权重为1,参与训练过程(调整权值)。

10、机器学习的降维方法

答:机器学习中常见的特征降维方法包括:Lasso,PCA,小波分析,LDA,奇异值分解SVD,拉普拉斯特征映射,SparseAutoEncoder,局部线性嵌入LLE,等距映射Isomap。

LASSO:通过参数缩减达到降维的目的;
主成分分析PCA(Principal Component Analysis):又称为霍特林变换(K-L变换),是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维;
小波分析:小波分析有一些变换的操作降低其他干扰可以看做是降维;
线性判别式分析(Linear Discriminant Analysis):简称为LDA,也称为Fisher线性判别(Fisher Linear Discriminant,FLD),是模式识别的经典算法,在1996年由Belhumeur引入模式识别和人工智能领域;
拉普拉斯映射:拉普拉斯特征映射将处于流形上的数据,在尽量保留原数据间相似度的情况下,映射到低维下表示;
深度学习SparseAutoEncoder:稀疏自编码就是用少于输入层神经元数量的隐含层神经元去学习表征输入层的特征,相当于把输入层的特征压缩了,所以是特征降维;
矩阵奇异值分解SVD:在PCA算法中,用到了SVD,类似PCA,可以看成一类;
LLE局部线性嵌入(Locally linear embedding,LLE):是一种非线性降维算法,它能够使降维后的数据较好地保持原有流形结构。LLE可以说是流形学习方法最经典的工作之一。很多后续的流形学习、降维方法都与LLE有密切联系;
Isomap等距映射:Isomap是一种非迭代的全局优化算法,通过一种原本试用于欧式空间的算法MDS,达到降维的目的。
更多具体可参考:http://blog.csdn.net/u014772862/article/details/52335970

11、常见的机器学习算法

答:机器学习算法通常可以被分为三大类 ——监督式学习,非监督式学习和强化学习(又叫“半监督学习”)。
监督式学习主要用于一部分数据集(训练数据)有某些可以获取的熟悉标签,但剩余的样本缺失并且需要预测的场景。
非监督式学习主要用于从未标注数据集中挖掘相互之间的隐含关系。
强化学习介于两者之间 —— 每一步预测或者行为都或多或少有一些反馈信息,但是却没有准确的标签或者错误提示。
监督学习分为两大类:回归分析和分类
回归分析(Regression Analysis):如果拿二维平面来说,就是对已经存在的点(训练数据)进行分析,拟合出适当的函数模型y=f(x),这里y就是数据的标签,而对于一个新的自变量x,通过这个函数模型得到标签y;
分类(Classification):训练数据是特征向量与其对应的标签,同样要通过分析特征向量,对于一个新的向量得到其标签。
回归分析与分类区别其实就是数据的区别就是回归是针对连续数据,分类是针对离散数据。
非监督式学习也可分为两大类:聚类问题和关联问题
聚类问题:聚类学习问题指的是我们想在数据中发现内在的分组,比如以购买行为对顾客进行分组。常见的聚类算法有:基于类心的聚类算法、基于连接的聚类算法、基于密度的聚类算法、概率型算法、降维算法、神经网络/深度学习;
关联问题:关联问题学习问题指的是我们想发现数据的各部分之间的联系和规则,例如购买X物品的顾客也喜欢购买Y物品。
常用的机器学习算法:决策树,随机森林算法,逻辑回归,SVM分类器,朴素贝叶斯分类器,K最近邻算法(KNN),K-Means算法,Adaboost 算法,神经网络,隐马尔可夫、聚类算法;
其中,
监督学习算法:决策树,随机森林算法,逻辑回归,最小二乘法,SVM分类器,朴素贝叶斯分类器,KNN,Adaboost 算法,神经网络,隐马尔可夫;
无监督学习算法:K-Means算法、主成分分析(PCA)、奇异值分解(SVD)、聚类算法、独立成分分析(ICA)。

12、常见的类概率求解问题

答:举例:

解析:概率问题基本上都是贝叶斯和全概率互相结合求解,他们之间往往可以通过条件概率建立联系。
本题中,要判断 xi 属于w1,还是w2,就是判断 p(w1 | xi) 和 p(w2 | xi)的大小关系,哪个概率大就属于对应的类别。即在xi已经发生的情况下,xi 属于哪个类别(w1 ,w2)的可能性更大:
p(w1 | xi) = p(xiw1) / p(xi) = p(xi | w1) * p(w1) / p(xi) = 0.6*(2 - xi) / p(xi) // 因为xi都在 (1,2)范围
p(w2 | xi) = p(xiw2) / p(xi) = p(xi | w2) * p(w2) / p(xi) = 0.4*(xi - 1) / p(xi) // 因为xi都在 (1,2)范围
上面两等式相减,得:
delta = p(w1 | xi) - p(w2 | xi) = (1.6 - xi) / p(xi);
所以,在上诉样本中,大于1.6的,属于w2,小于1.6的,属于w1。
补充一下贝叶斯公式:

13、机器学习中的过拟合

答:机器学习训练中过拟合发生的原因有两点:
(1)训练集偏少,造成训练特征不具有代表性;
(2)网络过于复杂,造成训练获取的特征过于苛刻;
解决方法对应也是两个方向:
(1)增加训练集;
(2)简单化训练网络,包括:
①正则化,一般有L1正则与L2正则等;
②early stopping,即在发生过拟合的临界点前提前停止;
③减少神经网络的隐含层节点数,减小模型复杂度。

14、PCA——主成分分析法

答:PCA的目的是降维,就是“降噪”和“去冗余”。
“降噪”的目的就是使保留下来的维度间的相关性尽可能小,而“去冗余”的目的就是使保留下来的维度含有的“能量”即方差尽可能大。
有什么数据结构能同时表现不同维度间的相关性以及各个维度上的方差呢?
自然是协方差矩阵。协方差矩阵的主对角线上的元素是各个维度上的方差(即能量),其他元素是两两维度间的协方差(即相关性)。
(1)先来看“降噪”,让保留下的不同维度间的相关性尽可能小,也就是说让协方差矩阵中非对角线元素都基本为零。达到这个目的的方式就是矩阵对角化。
(2)对于“去冗余”,对角化后得到的矩阵,其对角线上是协方差矩阵的特征值,它表示各个维度本身应该拥有的能量。通过对角化后,剩余维度间的相关性已经减到最弱,已经不会再受“噪声”的影响了,故此时拥有的能量应该比先前大了。对角化后的协方差矩阵,对角线上较小的新方差对应的就是那些该去掉的维度。所以我们只取那些含有较大能量(特征值)的维度,其余的就舍掉即可。(3)PCA的本质:其实就是对角化协方差矩阵,目的是让维度之间的相关性最小(降噪),保留下来的维度的能量最大(去冗余)。
(3)主要思想:寻找表示数据分布的最优子空间(降维,可以去相关)。
其实就是取协方差矩阵前s个最大特征值对应的特征向量构成映射矩阵,对数据进行降维。
具体可以参考:http://lanbing510.info/public/file/posts/pca.doc

15、时间序列模型

答:(1)AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值;
(2)MA模型(moving average model)滑动平均模型,模型参量法谱分析方法之一;
(3)ARMA模型(auto regressive moving average model)自回归滑动平均模型,模型参量法高分辨率谱分析方法之一。这种方法是研究平稳随机过程有理谱的典型方法。它比AR模型法与MA模型法有较精确的谱估计及较优良的谱分辨率性能,但其参数估算比较繁琐;
(4)GARCH模型称为广义ARCH模型,是ARCH模型的拓展, GARCH对误差的方差进行了进一步的建模,特别适用于波动性的分析和 预测。

16、三种常见的概率函数

答:概率质量函数 (probability mass function,PMF)是离散随机变量在各特定取值上的概率;
概率密度函数(probability density function,PDF )是对连续随机变量定义的,本身不是概率,只有对连续随机变量的取值进行积分后才是概率;
累积分布函数(cumulative distribution function,CDF) 能完整描述一个实数随机变量X的概率分布,是概率密度函数的积分。对於所有实数x ,与pdf相对。

机器学习中的名词解释

TP(True Positive): 在判定为positive的样本中,判断正确的数目。

FP:(False Positive):判定为positive的样本中,判断错误的数目。

TN(True Negative):在判定为negative的样本中,判断正确的数目。

FN(False Negative):在判定为negative的样本中,判断错误的数目。

精确率Precision: P=TP/(TP+FP) ,真正属于类别P的/找到属于类别P的

召回率 recall: R=TP/(TP+FN) , 真正属于类别P的/所有属于类别P的

准确率 accuracy: A=(TP+TN)/(TP+FP+TN+FN) ,

精确率和召回率关系

精确率和召回率是相互影响的,理想情况下两者都高,但是一般情况下准确率高,召回率就低,召回率高,准确率低,如果两者都低,应该是哪里算的问题。在两者都要求高的情况下,综合衡量P和R就用F值:
F=((α2+1).P.R)/(α2.(P+R))
α 为1时,就是常见的F1值(F1 score):
F1=(2.P.R)/(P+R),一般多个模型假设进行比较时,F1 score 越高,说明它越好

ROC曲线和AUC

ROC(Receiver Operating Characteristic)和AUC(Area Under Characteristic)常被用来评价一个二分类器的优劣。ROC曲线一般横轴是FPR (False positive rate) ,纵轴是TPR(True positive rate).AUC为曲线下面的面积,一般AUC值越大,说明模型越好。

p-value

P 值就是当原假设为真时,比所得到的样本观察结果更极端的结果出现的概率。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值