您的位置:首页 > 其它

机器学习基础小结

2016-03-04 15:20 190 查看
分类器的设计就是在给定训练数据的基础上估计其概率模型P(Y|X)。监督学习方法又分生成方法(Generative approach)和判别方法(Discriminative approach),所学到的模型分别称为生成模型(Generative Model)和判别模型(Discriminative Model),典型的判别模型包括k近邻,感知机,决策树,支持向量机等,典型的生成模型有:朴素贝叶斯和隐马尔科夫(HMM)模型等。生成方法从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。但它不关心到底划分各类的那个分类边界在哪。而判别方法不能反映训练数据本身的特性。但它寻找不同类别之间的最优分类面,反映的是异类数据之间的差异

评价指标:

精确度(Precision):

P = TP/(TP+FP) ; 反映了被分类器判定的正例中真正的正例样本的比重(

准确率(Accuracy):

A = (TP + TN)/(P+N) = (TP + TN)/(TP + FN + FP + TN); 反映了分类器统对整个样本的判定能力——能将正的判定为正,负的判定为负

召回率(Recall),也称为 True Positive Rate:

R = TP/(TP+FN) = 1 - FN/T; 反映了被正确判定的正例占总的正例的比重

F-measure or F-score:

F = 2 * 召回率 * 准确率/ (召回率+准确率);这就是传统上通常说的F1 measure,另外还有一些别的F measure

以下对常见分类模型进行简单梳理:

1 Logistic回归:

优点:计算代价不高,易于理解和实现。

缺点:容易欠拟合,分类精度可能不高。

适用数据类型:数值型和标称型数据。

试用场景:解决二分类问题。

Logistic回归的目的是寻找一个非线性函数Sigmoid的最佳拟合参数,参数的求解过程可以由最优化算法来完成。与线性回归相比,关键是激活函数使用了sigmod函数可以对非线性数据进行处理,拟合效果更好。

将LR推广到多分类问题则成为Softmax模型,具体见:

http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92

2 SVM(Support Vector Machines) 支持向量机:

优点:泛化错误率低,计算开销不大,结果易解释。

缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二分类问题。

适用数据类型:数值型和标称型数据。

适用场景:解决二分类问题

通俗的讲,SVM是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。可以理解为在高维空间中寻找一个合理的超平面将数据点分隔开来,其中涉及到非线性数据到高维的映射以达到数据线性可分的目的。核方法或者说核技巧会将数据(有时是非线性数据)从一个低维空间映射到一个高维空间,可以将一个在低维空间中的非线性问题转换为高维空间下的线性问题来求解。

3 决策树: 生成

优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。

缺点:可能会产生 过拟合 问题。

适用数据类型:数值型和标称型。

数据要求:树的构造只适用于标称型的数据,因此数值型数据必须离散化。

选择属性的依据通常使用信息增益、信息增益率、Gini指数等

4 朴素贝叶斯:

优点:在数据较少的情况下仍然有效,可以处理多类别问题。

缺点:对于输入数据较为敏感。

适用的数据类型:标称型数据。

算法类型:分类算法

朴素贝叶斯之所以冠以朴素开头,是因为其在贝叶斯理论的基础上做出了两点假设:

(1)每个特征之间相互独立。

(2)每个特征同等重要。

P(H|X)=P(X|H)P(H)/P(X)

贝叶斯概率提供了一种利用已知值来估计未知概率的有效方法,期望后验概率最大化做为分类结果

5 K-近邻算法(KNN):

优点:精度高、对异常值不敏感、无数据输入假定。

缺点:计算复杂度高,空间复杂度搞。

适用数据范围:数值型和标称型。

算法类型:分类算法。

将新数据的每个特征和样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中前k个最相似的数据。可以使用kd树提高计算效率,但kd树构建过程比较繁琐。

6 线性回归(Linear Regression):

优点:结果易于理解,计算上不复杂。

缺点:对非线性数据拟合不好。

适用数据类型:数值型和标称型数据。

算法类型:回归算法。

回归于分类的不同,就在于其目标变量是连续数值型,而线性回归本省具有较大的局限性,与之相对应的还有树回归、LR回归等

7 K-Means(K 均值算法):

优点:容易实现。

缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢。

适用数据类型:数值型数据。

算法类型:聚类算法。

K-Means属于非监督学习算法。

8 算法关联分析(DM):

频繁项集(frequent item sets):经常出现在一块的物品的集合。

关联规则(association rules):暗示两种物品间可能存在很强的关系。

项集的支持度(support):数据集中包含该项集记录所占的比例。

关联分析的目标包括两项:发现频繁项集合发现关联规则。首先找到频繁项集,然后才能获得关联规则。

Apriori算法:

优点:易编码实现。

缺点:在大型数据集上可能较慢。

适用数据类型:数值型或标称型数据。

原理:如果某个项集时频繁的,那么他的所有子集也是频繁的。

Apriori运用的DEMO示例参见博客:/article/8648001.html

模型组合+决策树:

9 GBDT

GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案,泛化能力强。

GBDT主要由三个概念组成:Regression Decistion Tree(即DT),Gradient Boosting(即GB),Shrinkage :

DT:回归树 Regression Decision Tree,用于预测实数值,而不是概念值。以最小化均方差为标准寻找分割阈值;

GB:梯度迭代 Gradient Boosting,GBDT的核心就在于,每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值后能得真实值的累加量。Boosting的最大好处在于,每一步的残差计算其实变相地增大了分错instance的权重;

Shrinkage:缩减,即每次走一小步逐渐逼近结果的效果,要比每次迈一大步很快逼近结果的方式更容易避免过拟合。本质上,Shrinkage为每棵树设置了一个weight,累加时要乘以这个weight

10 随机森林

在数据集上表现良好, 它能够处理很高维度(feature很多)的数据,并且不用做特征选择,能够给出哪些feature比较重要,训练速度快,实现比较简单

随机森林顾名思义,是用随机的方式建立一个森林,包含很多的决策树,每一棵决策树之间是没有关联的。在得到森林之后,对一个新的输入样本,让森林中的每一棵决策树分别进行判断,多数表决属于哪一类。

建立每一棵决策树的过程中,有两点需要注意 - 采样与完全分裂。首先是两个随机采样的过程,random forest对输入的数据要进行行、列的采样。对于行采样,采用有放回的方式,也就是在采样得到的样本集合中,可能有重复的样本。假设输入样本为N个,那么采样的样本也为N个。这样使得在训练的时候,每一棵树的输入样本都不是全部的样本,使得相对不容易出现over-fitting。然后进行列采样,从M个feature中,选择m个(m << M)。之后就是对采样之后的数据使用完全分裂的方式建立出决策树,这样决策树的某一个叶子节点要么是无法继续分裂的,要么里面的所有样本的都是指向的同一个分类。一般很多的决策树算法都一个重要的步骤 - 剪枝,但是这里不这样干,由于之前的两个随机采样的过程保证了随机性,所以就算不剪枝,也不会出现over-fitting。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: