常见分类器介绍
1、SVM分类器(监督学习分类器)
答:训练样本必须先标识不同类别,然后进行训练。SVM算法就是找一个超平面,对于已经被标记的训练样本,SVM训练得到一个超平面,使得两个类别训练集中距离超平面最近的样本之间的垂直距离要最大(也就是如下图所示的两个虚线距离最大)。如下图所示,就是将两种不同类别的样本特征分隔开,且分割面要在最优分隔位置。
例如,有两个样本点,第一个点为正样本,它的特征向量是(0,-1);第二个点为负样本,它的特征向量是(2,3),从这两个样本点组成的训练集构建一个线性SVM分类器:两个样本之间的中点向量是(1,1),样本点之间的连线斜率为2,由于分割线与样本连线垂直且经过中点,那么样本SVM分割面方程为:x+2y=3,如图:
2、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通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维;
小波分析:小波分析有一些变换的操作降低其他干扰可以看做是降维;
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、机器学习中的过拟合
14、PCA——主成分分析法
其实就是取协方差矩阵前s个最大特征值对应的特征向量构成映射矩阵,对数据进行降维。
15、时间序列模型
(2)MA模型(moving average model)滑动平均模型,模型参量法谱分析方法之一;
(3)ARMA模型(auto regressive moving average model)自回归滑动平均模型,模型参量法高分辨率谱分析方法之一。这种方法是研究平稳随机过程有理谱的典型方法。它比AR模型法与MA模型法有较精确的谱估计及较优良的谱分辨率性能,但其参数估算比较繁琐;
(4)GARCH模型称为广义ARCH模型,是ARCH模型的拓展, GARCH对误差的方差进行了进一步的建模,特别适用于波动性的分析和 预测。
16、三种常见的概率函数
概率密度函数(probability density function,PDF )是对连续随机变量定义的,本身不是概率,只有对连续随机变量的取值进行积分后才是概率;
累积分布函数(cumulative distribution function,CDF) 能完整描述一个实数随机变量X的概率分布,是概率密度函数的积分。对於所有实数x ,与pdf相对。