理论学习:温习了十大经典数据挖掘算法
1. C4.5
C4.5算法是一种分类决策树算法,其核心算法是ID3算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:
- 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
- 在树构造过程中进行剪枝,因为某些具有很少元素的结点可能会使构造的决策树过拟合(Overfitting),如果不考虑这些结点可能会更好;
- 能够完成对连续属性的离散化处理;
- 能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。
其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
理解该算法主要理解其属性选择度量,又称分裂规则,而该算法选择具有最大增益率的属性作为分裂属性:
期望信息(熵):
分类信息类似于Info(D),定义如下:
信息增益:
信息增益率定义:
2. The k-means algorithm 即K-Means算法
k-means algorithm算法是一个聚类算法,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。整个过程是一个迭代过程。
Demo说明:
优点:
- 算法简单易实现;
- 处理大数据集的时候,该算法可以保证较好的伸缩性和高效率
缺点:
- K值是用户给定的,在进行数据处理前,K值是未知的,给定合适的 k 值,需要先验知识;
- 聚类结果对初始类簇中心的选取较为敏感;
- 不适合发现非凸形状的簇或者大小差别较大的簇
3. Support vector machines(支持向量机)
支持向量机,英文为Support Vector Machine,简称SV机(论文中一般简称SVM)。它是一种监督式学习的方法,它通常用来进行模式识别、分类以及回归分析。支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。
4. The Apriori algorithm(先验算法)
Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法,其目的在于在一个数据集中找出项之间的关系。其算法过程为:对于给定的项目集合(例如,零售交易集合,每个集合都列出的单个商品的购买信息),算法通常尝试在项目集合中找出至少有C个相同的子集。先验算法采用自底向上的处理方法,即频繁子集每次只扩展一个对象(该步骤被称为候选集产生),并且候选集由数据进行检验。当不再产生匹配条件的扩展对象时,算法终止。
5. 最大期望(EM)算法(理解推导过程,数学要求不低)
在统计计算中,最大期望(EM,Expectation–Maximization)算法通常作为牛顿迭代法(Newton-Raphson method)的替代用于对包含隐变量(latent variable)或缺失数据(incomplete-data)的概率模型进行参数估计。算法标准计算框架由E步(Expectation-step)和M步(Maximization step)交替组成,算法的收敛性可以确保迭代至少逼近局部极大值。
6. PageRank
PageRank是Google算法的重要内容。2001年9月被授予美国专利,专利人是Google创始人之一拉里·佩奇(Larry Page)。因此,PageRank里的page不是指网页,而是指佩奇,即这个等级方法是以佩奇来命名的。
PageRank是一种用来对网络中节点的重要性排序的算法,其根据网站的外部链接和内部链接的数量和质量俩衡量网站的价值。PageRank背后的概念是,每个到页面的链接都是对该页面的一次投票, 被链接的越多,就意味着被其他网站投票越多。这个就是所谓的“链接流行度”——衡量多少人愿意将他们的网站和你的网站挂钩。PageRank这个概念引自 学术中一篇论文的被引述的频度——即被别人引述的次数越多,一般判断这篇论文的权威性就越高。
7. AdaBoost
Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。其算法流程:
错误样本权重更改公式为:
正确样本权重更改公式为:
其中t指当前分类器,i指第i个样本。
8. kNN: k-nearest neighbor classification
K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
Demo:
9. Naive Bayes
在众多的分类模型中,应用最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBC)。 朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。
朴素贝叶斯算法基于贝叶斯定理和特征条件独立假设:
-
贝叶斯定理:
-
特征条件独立假设:特征条件独立假设X的n个特征在类确定的条件下都是条件独立的。
优点:
- 发源于古典数学理论,有稳定的分类效率。
- 对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量超出内存时,可以一批批的去增量训练。
- 对缺失数据不太敏感,算法也比较简单,常用于文本分类。
- 不存在过拟合的说法。
缺点:
- 朴素贝叶斯模型的特征条件独立假设在实际应用中往往是不成立的。
- 需要知道先验概率,且先验概率很多时候取决于假设。
- 对输入数据的表达形式很敏感。
10. CART: 分类与回归树
CART是在给定输入随机变量X条件下输出随机变量Y的条件概率分布的学习方法。CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左分支是取值为“是”的分支,右分支是取值为“否”的分支。这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有限个单元,并在这些单元上确定预测的概率分布,也就是在输入给定的条件下输出的条件概率分布。它由树的生成、树的剪枝构成。
算法流程:
- 树的生成:基于训练数据集生成决策树,生成的决策树要尽量大;
- 树的剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时损失函数最小作为剪枝的标准。
决策树的生成就是通过递归地构建二叉决策树的过程,对回归树用平方误差最小化准则,对分类树用基尼指数最小化准则,进行特征选择,生成二叉树.
总结:
这周主要是学习和复习一些数据挖掘的知识,同时复习一下经典算法的理论思想;同时还重新熟悉了一下python的一些常见的数据挖掘挖掘的库:numpy,sklearn等。
相关博客:
数据挖掘领域的十大经典算法
C4.5算法详解
K-mean算法详解
向量机
关联规则算法
EM算法详解
PageRank
Adaboost
KNN
Naive Bayes
CART: 分类与回归树