一.有监督学习:
1.决策树算法:
有ID3,C4.5和CART算法
决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。
为了处理由于数据中的噪声和离群点导致的过分拟合问题。剪枝有两种:先剪枝——在构造过程中,当某个节点满足剪枝条件,则直接停止此分支的构造。后剪枝——先构造完成完整的决策树,再通过某些条件遍历树进行剪枝。
优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。
缺点:可能会产生匹配过度问题。数值型数据必须离散化。
下面简述一下生成决策树的步骤:
(1) 根据给定的训练数据,根据熵最大原则根据每一个维度来划分数据集,找到最关键的维度。
(2) 当某个分支下所有的数据都数据同一分类则终止划分并返回类标签,否则在此分支上重复实施(1)过程。
(3) 依次计算就将类标签构建成了一棵抉择树。
(4) 依靠训练数据构造了决策树之后,我们就可以将它用于实际数据的分类。
例子;
2.朴素贝叶斯网络
优点:在数据较少的情况下仍然有效,可以处理多类别问题。
缺点:对于输入数据的准备方式较为敏感。Bayes 方法的薄弱环节在于实际情况下,类别总体的概率分布和各类样本的概率分布函数(或密度函数)常常是不知道的。为了获得它们,就要求样本足够大
P(H|X)=P(X|H)P(H)/P(X)
P(H|X)是根据X参数值判断其属于类别H的概率,称为后验概率。P(H)是直接判断某个样本属于H的概率,称为先验概率。P(X|H)是在类别H中观测到X的概率(后验概率),P(X)是在数据库中观测到X的概率。可见贝叶斯准则是基于条件概率并且和观测到样本的先验概率和后验概率是分不开的。
总结:对于分类而言,使用概率有事要比使用硬规则更为有效。贝叶斯概率及贝叶斯准则提供了一种利用已知值来估计未知概率的有效方法。可以通过特征之间的条件独立性假设,降低对数据量的需求。尽管条件独立性的假设并不正确,但是朴素贝叶斯仍然是一种有效的分类器。
朴素贝叶斯是贝叶斯理论的一部分,贝叶斯决策理论的核心思想,即选择具有高概率的决策。朴素贝叶斯之所以冠以朴素开头,是因为其在贝叶斯理论的基础上做出了两点假设:
(1)每个特征之间相互独立。
(2)每个特征同等重要。
第一阶段——准备工作阶段 根据具体情况确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段
第二阶段——分类器训练阶段,这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和训练样本,输出是分类器。
第三阶段——应用阶段。这个阶段的任务是使用分类器对待分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系
例子:
检测SNS社区中不真实账号
http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html
3.KNN:K临近算法:
优点:精度高、对异常值不敏感、无数据输入假定。缺点:计算复杂度高,空间复杂度搞。
算法原理,存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征和样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。最后选择k个最相似数据中出现次数最多的分类,作为新数据的分类。
4.线性回归:
优点:结果易于理解,计算上不复杂。
缺点:对非线性数据拟合不好。回归于分类的不同,就在于其目标变量时连续数值型。
线性回归方法可以有效的拟合所有样本点(局部加权线性回归除外)。当数据拥有众多特征并且特征之间关系十分复杂时,构建全局模型的回归算法是比较困难的。此外,实际中很多问题为非线性的,例如常见的分段函数,不可能用全局线性模型类进行拟合。树回归将数据集切分成多份易建模的数据,然后利用线性回归进行建模和拟合。较为经典的树回归算法为CART
线性回归分析一般用于预测,而不用于分类。在二值分类问题中,因变量只有两种取值:0和1。用p(x)来表示y=1的概率,那么p(x)为线性函数的假设会遇到以下3个挑战:
- 线性函数的值可能跑到[0,1]之外。
- 从样本数据上看p(x)明显就不是线性函数。
- 线性回归假设误差变量是服从正态分布的,但是当y只可能取0和1时,很难满足这一点。
逻辑斯谛回归又叫对数回归,其本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射。即一般线性回归中认为:,而在逻辑斯谛回归中我们认为
。
g(z)是个S型函数,它把连续值映射到[0,1]上。
5.SVM:
优点:泛化错误率低,计算开销不大,结果易解释。
缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二分类问题。
SVM是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。或者简单的可以理解为就是在高维空间中寻找一个合理的超平面将数据点分隔开来,其中涉及到非线性数据到高维的映射以达到数据线性可分的目的。支持向量(Support vector)就是分离超平面最近的那些点。对多类问题应用SVM
核函数将数据从低维度映射到高维:
二.非监督学习:
1.K MEANS:
K-Means的基本步骤:
(1) 从数据对象中随机的初始化K个初始点作为质心。然后将数据集中的每个点分配到一个簇中,具体来讲每个点找到距其最近的质心,并将其分配给该质心所对应的簇。
(2) 计算每个簇中样本点的均值,然后用均值更新掉该簇的质心。然后划分簇结点。
(3) 迭代重复(2)过程,当簇对象不再发生变化时,或者误差在评测函数预估的范围时,停止迭代。
优点:容易实现。
缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢。
适用数据类型:数值型数据。
所谓聚类问题,就是给定一个元素集合D,其中每个元素具有n个可观察属性,使用某种算法将D划分成k个子集,要求每个子集内部的元素之间相异度尽可能低,而不同子集的元素相异度尽可能高。其中每个子集叫做一个簇。
2.关联分析:
首先了两个概念:
频繁项集(frequent item sets):经常出现在一块的物品的集合。
关联规则(association rules):暗示两种物品间可能存在很强的关系。
项集的支持度(support):数据集中包含该项集记录所占的比例。
关联分析的目标包括两项:发现频繁项集合发现关联规则。首先找到频繁项集,然后才能获得关联规则。
Apriori算法是发现频繁项集的一种方法。Apriori算法的两个输入参数分别是最小支持度和数据集。该算法首先会生成所有单个item的项集列表。然后扫描列表计算每个item的项集支持度,将低于最小支持度的item排除掉,然后将每个item两两组合,然后重新计算整合后的item列表的支持度并且和最小支持度比较。重复这一过程,直至所有项集都被去掉。
3.推荐系统:
基于用户的协同过滤
step1.如果用户i对项目j没有评过分,就找到与用户i最相似的K个邻居(采用Pearson相关系数)
step2.然后用这K个邻居对项目j的评分的加权平均来预测用户i对项目j的评分。
基于物品的协同过滤
step1.如果用户i对项目j没有评过分,就把 ri,j ri,j置为0。找到与物品j最相似的k个近邻(采用余弦距离)
step2.然后用这K个邻居对项目j的评分的加权平均来预测用户i对项目j的评分。
4.EM算法
在统计计算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variabl)。最大期望经常用在机器学习和计算机视觉的数据集聚(Data Clustering)领域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),也就是将隐藏变量象能够观测到的一样包含在内从而计算最大似然的期望值;另外一步是最大化(M),也就是最大化在 E 步上找到的最大似然的期望值从而计算参数的最大似然估计。M 步上找到的参数然后用于另外一个 E 步计算,这个过程不断交替进行。
最大期望过程说明
我们用 表示能够观察到的不完整的变量值,用 表示无法观察到的变量值,这样 和 一起组成了完整的数据。 可能是实际测量丢失的数据,也可能是能够简化问题的隐藏变量,如果它的值能够知道的话。例如,在混合模型(Mixture Model)中,如果“产生”样本的混合元素成分已知的话最大似然公式将变得更加便利(参见下面的例子)。
估计无法观测的数据
让 代表矢量 θ: 定义的参数的全部数据的概率分布(连续情况下)或者概率集聚函数(离散情况下),那么从这个函数就可以得到全部数据的最大似然值,另外,在给定的观察到的数据条件下未知数据的条件分布可以表示为: