机器学习算法面试口述(7)—分类小结

这个系列是为了应对找工作面试时面试官问的算法问题,所以只是也谢算法的简要介绍,后期会陆续补充关于此

算法的常见面问题。

分类的概念就说了,分类一般分为两个阶段:学习阶段以及分类阶段;

常用的分类方法有:

1、决策树

决策树不需要任何领域的知识或者参数的设置,其可以处理高维数据,简单快速。

若分类的数据是连续的,则需要插入分裂点将数据离散化;树建立的过程中,需要按照一定的

规则选择分裂的属性,可以有信息的增益、增益率、基尼指数等等,不同的规则对应的决策树,

如前面三种分别对应ID3、C4.5、CART。

树的建立过程中或则建立后可能需要对树进行剪枝;树的剪枝分为先剪枝和后剪枝,先剪枝是

提前停止书的构造,而后剪枝是将完全生长的树减去子树。

以上的几种方法都只能适用于能贮存于内存的数据,若是数据量过大,这几种方法都不行

(可以考虑RainForest)!具体关于决策树可以见前面的博文。

http://blog.csdn.net/xwchao2014/article/details/47979167

2、贝叶斯方法(朴素贝叶斯以及贝叶斯信念网络)

这个方法前面博文中已经写得很详细了,可以参考下。其实也就是一个贝叶斯公式。。。

http://blog.csdn.net/xwchao2014/article/details/47977283

3、组合分类方法

两种常用的组合分类方法:装袋与提升

装袋:比如投票,每一票的权重都是相同的;

提升:与装袋不同的是其每一票的权重是不同的,比如AdaBoost;

当然还有就是也比较出名的随机森林(这个还没看,这个之后补上)!

关于AdaBoost可以看前面的博文,下面会给出链接:

http://blog.csdn.net/xwchao2014/article/details/47953353

4、基于规则的分类

使用IF-THEN规则分类

覆盖率与准确率

数据集D,规则R覆盖的元祖数Ncovers,其中正确的为Ncorrect则

coverage(R) = Ncovers / |D|, accuracy(R) = Ncorrect / Ncovers

当多个规则同时触发时,可以使用下面两个方式决定哪个规则先响应

1.规模序:选择条件最苛刻的(一般为条件最多的);

2.规则序:事先定义了优先级。

从树的跟到叶节点的路径创建一个规则,这样的规则是互斥(不存在冲突)以及穷举

的(存在所有的规则)。

规则集的修改:不能提高规则的估计准确率的任何条件都应该被剪掉。

使用顺序覆盖算法的规则归纳

一般的策略是:一次学习一个规则,每学习一个规则就删除该规则覆盖的元组,并在剩下

的元组中重该过程。

模型的评估与选择

可以参考决策树;

交叉验证

k-折交叉验证:将数据分组,每次留出一组作为验证集

留一:每次使用一个样本作为验证集

自助法

有放回的均匀抽样,常用的有。632自助法(数据的63.2%出现在自助样本中)

5、后向传播分类

神经网络是一组连接的输入/输出单元,其中每个连接与一个权重相关联,通过调整权重,预

测输入元组的类别。其优点是抗噪性能好,分类能力比较强,缺点是知识的表示比较不容易。

前馈网络

输入层 + 隐藏层 + 输出层(没有一个反向传播的过程)。

理论上:给足够多的训练样本以及隐藏单元,可以逼近任意函数。

后向传播

比前馈网络多了一个后向传播的过程;整体步骤如下

1、初始化权重; 2、前向传播; 3、后向传播误差,更新数据;

算法结束的终止条件:1、周期内所有权重的更新值小于某一值;

2、迭代次数达到某一预先设定好的值;

6、SVM(支持向量机)

这个可以参考前面的博文http://blog.csdn.net/xwchao2014/article/details/47948063

或则网上有个SVM的三重境界写的蛮详细,可以看看;

7、使用频繁模式分类

1,、关联分析; 2、基于有区别力的频繁模式分类; -> 这两个现在不写了,后面的文章会

详细写这两个

以上的这些方法都是急切学习法,也就是说在分类数据前,已经建立好了模型,主要的工作

是在模型的建立上面;下面说一下惰性学习法;

惰性学习法——给定一个训练元祖,知识简单的存储它,并一直等待,知道给定一个

检验元组时才进行泛化;

1、基于K-近邻

计算所有数据与给定标号点的距离,离哪个近则归于哪一类(计算量太大);

2、基于案例的推理

首先检查是否存在同样的训练案例,如存在则直接返回对应的结果;

若是找不到,则搜索具有雷士的新案例和组合解的合适方法;

其他的分类方法

1、遗传算法

交叉、变异、最合适的规则及后代

2、粗糙集算法

上近似以及下近似的概念;

3、模糊集的方法

允许处理模糊的、不精确的事实,是一种软分类

对于多分类的问题可以组合几个二分类!

半监督分类

使用有标号的数据与无标号的数据构造分类器;

假设存在数据:

有标号的数据Xl = {(x1,y1),(x2,y2),......(xk,yk)};

无标号的数据Xu = {xk+1,....xn};

1、自我训练

先使用有标号的数据构造分类器,将构造好的分类器对无标号的数据进行分类,将分类结果中

最有把握的分类数据及其分类标号加入到有标号的数据中,重复训练与分类;

可能会强化错误,这是其一个缺点;

2、协同训练

两个或则多个分类器互相教学;

对数据Xl,定义两个不重叠的特征集,训练两个不同的分类器,f1,f2,使用这两个分类器对Xu

进行分类,将最有把握的(x,f1(x))添加到f2中的有标号的数据中,将最有把我的(x,f2(x))

添加到f1中的有标号的数据中;重复整个过程;

3、主动学习

适用于数据丰富,但是类标号稀缺或则获取昂贵的情况。

设D为小子集的有标号的数据集,这个小子集定义为L,从L开始为初始训练集,之后使用一个

查询函数从(D-L)中精心选择一个或者多个样本像一位智者询问其标号,之后加入到L中去;

这个方法的问题在于如何选择被询问的元,可以使用不确定抽样、决策论等方面的知识。

4、迁移学习

从一个或则多个源任务提取知识,并将这种知识用于目标任务(分类器的构造需要较少的训练

数据和较少的训练时间);

假定老数据大部分有用,通过自动调整赋予训练原组的权重,过滤掉与新数据很不相同的老数

据的影响;迁移学习的难点在于负迁移的情况的出现(负迁移是指新分类器的性能比完全不迁

移的效果还差)!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-31 04:20:58

机器学习算法面试口述(7)—分类小结的相关文章

机器学习算法面试—口述(5):回归

这个系列是为了应对找工作面试时面试官问的算法问题,所以只是也谢算法的简要介绍,后期会陆续补充关于此 算法的常见面问题. 一.Logistic回归 先说下logistic回归,它是根据现有数据对分类边界建立回归公式,以此进行分类.其计算代价不高,易于 实现与理解,但是容易欠拟合.分类精度不太高: logistic回归可以看成是一种概率估计,使用的的是sigmioid函数, 通过训练数据训练出参数[w1, w2, ..., wn],根据训练出的参数就可以求出h(x)的值,比较其 与0.5的大小(大于

机器学习算法面试—口述(4):决策树

这个系列是为了应对找工作面试时面试官问的算法问题,所以只是也谢算法的简要介绍,后期会陆续补充关于此 算法的常见面问题! 决策树是一种依托于策略抉择而建立起来的树,是一种依托于分类.训练上的预测树,根据已知,预测和分类未来. 决策树的建立是不断的使用数据的特征将数据分类的过程,主要的问题在于如何选择划分的特征: 常用的几种决策树算法有ID3.C4.5.CART等:其中ID3使用的是信息熵增益选大的方法划分数据,C4.5是使用增益率选大的方法划分数据,CART使用的是基尼指数选小的划分方法: ID3

机器学习算法面试—口述(3):贝叶斯分类器

这个系列是为了应对找工作面试时面试官问的算法问题,所以只是也谢算法的简要介绍,后期会陆续补充关于此算法的常见面试的问题! 贝叶斯分类器的原理其实很简单,知道了贝叶斯公式基本上就知道了贝叶斯分类器的工作原理.对于一个待分类项,求出此项出现的条件下哪个类别的概率大,就判定为哪类,仅次而已.其实贝叶斯分类器是建立在错误的理论上建立起来的分类器,没错就是错误的理论,它假定事物之间是没有联系的(马克思告诉我们,这是不可能的...),从而大大的简化了计算. 算法的过程如下: 首先核心的是贝叶斯公式:P(B

机器学习算法Review之分类

机器学习有着丰富的理论,分为有监督学习和无监督学习,有监督学习包括分类和回归,无监督学习包括聚类等.各种机器学习算法的基本思想都不难理解(这里的基本思想我的理解是各个算法的模型建立),而难点在于对于模型的求解,这里边有着优美的理论还有一些技巧,如SVM,EM,CART,AdaBoost,RF等.这些算法都是一些专家学者历经数年乃至十数年的研究成果,要想将它们都研究透彻确实是一项大工程,多数算法深入下去都是一本书,因此这里旨在从理解及应用的角度对这些经典的机器学习算法进行review. 分类 1)

机器学习算法的R语言实现(二):决策树

1.介绍 ?决策树(decision tree)是一种有监督的机器学习算法,是一个分类算法.在给定训练集的条件下,生成一个自顶而下的决策树,树的根为起点,树的叶子为样本的分类,从根到叶子的路径就是一个样本进行分类的过程. ?下图为一个决策树的例子,见http://zh.wikipedia.org/wiki/%E5%86%B3%E7%AD%96%E6%A0%91 ? 可见,决策树上的判断节点是对某一个属性进行判断,生成的路径数量为该属性可能的取值,最终到叶子节点时,就完成一个分类(或预测).决策树

机器学习算法的R语言实现(二):决策树算法

1.介绍 ?决策树(decision tree)是一种有监督的机器学习算法,是一个分类算法.在给定训练集的条件下,生成一个自顶而下的决策树,树的根为起点,树的叶子为样本的分类,从根到叶子的路径就是一个样本进行分类的过程. ?下图为一个决策树的例子,见http://zh.wikipedia.org/wiki/%E5%86%B3%E7%AD%96%E6%A0%91 ? 可见,决策树上的判断节点是对某一个属性进行判断,生成的路径数量为该属性可能的取值,最终到叶子节点时,就完成一个分类(或预测).决策树

【转】常见面试之机器学习算法思想简单梳理

转:http://www.chinakdd.com/article-oyU85v018dQL0Iu.html 前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大. 纵观IT行业的招聘岗位,机器学习之类的岗位还是挺少的,国内

机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)

http://www.cnblogs.com/tornadomeet/p/3395593.html 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大.

常见面试之机器学习算法思想简单梳理

http://www.cnblogs.com/tornadomeet/p/3395593.html (转) 前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大. 纵观IT行业的招聘岗位,机器学习之类的岗位还是挺少的,国内大