计算社会科学讲习班 机器学习:理论与实践模块Day2
如果把机器学习归为两大类,那么主要的工作可以分为:分类和聚类。而分类任务基本上占整个机器学习或者是数据挖掘领域的70%。
1.逻辑回归
回归的本质就是找参数,使得函数的值和样本的值最接近。即logit模型属于参数估计,是个有监督学习。
2.判别分析
主流的判别分析算法有三大类:
- 费希尔(Fisher)判别
- 主要讨论线性判别分析(LDA)、二次判别分析(QDA)
- 贝叶斯( Bayes )判别
- 主要讨论朴素贝叶斯分类(Naïve Bayes Classification)
- 距离判别
- 主要讨论k最近邻(KNN)、有权重的k最近邻(Weighted KNN)
这里主要说一说LDA和QDA。LDA和QDA均是有监督学习的降维技术,前者是线性边界,后者可以形成更加灵活的非线性边界。
3.K最近邻 KNN
KNN实际上是属于判别分析算法,单独摘出来是为了和LDA、QDA区分。相比较LDA和QDA的估参需求,KNN是非参分析,无监督的学习。它是很纯粹的数据驱动。
4.支持向量机 SVM
SVM是一种有监督学习,但相较于LDA、QDA考虑所有的数据,SVM认为只有一些“特殊点”对边界的选取起作用,而其他大部分数据对判别函数的构建没有帮助。我们称这些“特殊点”为支持向量。此外,SVM找到的边界(超平面)是唯一的。
5.决策树 DT
决策树是一种非参数估计方法,无监督学习。当研究的变量是定性变量时,所建立的决策树就称为分类树,当是定量变量时,就称为回归树。此外,由于决策树的简单性,使之成为一些更有用算法的基石。
6.随机森林 RF
顾名思义,森林就是很多树,其建立在决策树的基础上。严格来说,随机森林其实算是一种集成算法。它首先随机选取不同的特征和训练样本,生成大量的决策树,然后综合这些决策树的结果来进行最终的分类。
7.集成学习
集成学习,顾名思义,就是将多种学习方法集合在一起,以生成最终的学习结果。其由两个大的步骤组成的:首先,我们需要根据训练数据,训练一组不完全相同的分类器(基模型);其次我们需要通过某种策略(集成策略),将这些训练好的分类器组合起来。而通过在这个两个步骤上采取不同的策略,可以将集成学习分为Bagging、Boosting和Stacking三个大类,其中常见的是Bagging、Boosting。
(1)Bagging
Bagging的思想是利用抽样生成不同的训练集,进而训练不同的模型,将这些模型的输出结果用投票或平均的方式得到最终的结果。
Bagging是通过降低模型的方差以提高模型的准确率的。随机森林是Bagging思想的代表。随机森林中,采用Bootstrap的方式生成多个数据集,基模型全部为决策树,并且,随机森林对于数据集中样本的特征也进行了重采样,每个基模型只会对样本的一部分特征进行训练,从而进一步提高了基模型的多样性。
(2)Boosting
Boosting是一种提升算法,其思想是,在算法迭代的过程中,每次迭代构建新的分类器,重点关注被之前分类器分类错误的样本,迭代进行,最终加权平均所有分类器的结果,提升分类精度。可以用背单词的经历来理解它,即在背单词的过程中,我们更关注的是没有记牢的部分。
Boosting通过找出自身分错的样本,并不断改正来提升模型精度的,即不断降低模型的偏差。AdaBoost是最具代表性的Boosting算法。
Bagging和Boosting区别
(3)Stacking
Bagging和Boosting都是在基模型的生成方面,利用基模型的多样性,互补有无,提升算法性能;与之不同,Stacking则从集成方法的角度对模型提升给出指导。不同于Bagging和Boosting在集成策略上使用的简单的加权平均策略,Stacking使用一个机器学习模型将不同基模型的结果集成起来,降低误差。
Stacking主要分为两个部分,第一部分是训练一组不同的基模型(称为L0模型),将这组基模型的分类结果作为新的训练集,训练一个模型(L1模型)给出最终的分类结果。
集成学习部分摘录自:简析集成学习(王帅)
有了这么多分类器可用,如何判断分类的好坏呢?
此时我们可以引入ROC曲线,利用其曲线下面积的大小定量衡量某模型的准确度。
参考资料:
1.常用分类器的效果对比
2.各种机器学习算法的应用场景分别是什么,比如朴素贝叶斯、决策树、K 近邻、SVM、逻辑回归最大熵模型
3.基于R语言的各类判别算法在住房租金预测的应用
4.简析集成学习
5.【干货】集成学习原理总结
6.数据挖掘 | 分类器性能度量 Classifier Measures