随机森林
随机森林(Random Forest)是利用多棵树对样本进行训练并预测的一种分类器。简单地说,随机森林就是由多棵CART(Classification and Regression Tree)构成的。
对于每棵树而言,它们使用的训练集是从总的训练集中通过有放回采样得到的,这意味着总的训练集中的有些样本可能会多次出现于一棵树的训练集中,也可能从未出现于一棵树的训练集中。
在训练每棵树的节点时,使用的特征是从所有特征中按照一定比例通过无放回随机抽样方法获得的。
GBDT
梯度提升决策树(Gradient Boost Decision Tree,GBDT)的应用很广泛,可用来进行分类和回归,并表现出了很好的效果。
梯度提升(Gradient Boost)是一个框架,里面可以嵌入很多不同的算法,Boost指的是提升,Boosting算法一般都包括迭代过程,每一次新的训练都是为了改进上一次的结果。
原始的Boost算法是在算法开始的时候,为每一个样本赋予一个相同的权重。也就是说,开始的时候,每个样本同样重要。
在每一步模型训练时,通过结果发现数据点的估计有对有错,那么,就在训练结束时,增加分错的点的权重,减少分对的点的权重。如果某些点老是被分错,那么就会被赋予一个很高的权重。
在N次迭代之后,就得到了N个简单的基础分类器,将它们组合起来就得到了一个最终分类模型,比如通过加权方法。
Gradient Boost与传统Boost的区别是,每一次训练是为了减少上一次的残差(residual)。为了消除残差,可以在残差减少的梯度方向上建立一个新的模型。
因此,在Gradient Boost中,建立新的模型是为了使之前模型的残差朝着梯度方向减少,这与传统Boost单纯增加错误权重、减少正确权重有很大的区别。
AdaBoost
AdaBoost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。
AdaBoost算法是通过改变数据分布来实现的,根据每次训练集中每个样本的分类是否正确,以及前次总体分类准确率,来确定每个样本的权重。
接着,将修改过权重的新数据集送入下层分类器进行训练,最后,将每次训练得到的分类器融合起来,得到最终的决策分类器。
使用AdaBoost分类器可以排除一些不惜要的训练数据特征,并将关注点放在关键的训练数据上。
目前,AdaBoost的研究和应用集中于分类问题上,近年来也出现了一些在回归问题上的应用。AdaBoost算法主要解决了两类问题、多类单标签问题、多类多标签问题、单类单标签问题、回归问题,等等。
聚类分析又叫“数值分类”,指的是将个体或对象分类,使得同一类中对象之间的相似性最大,类间对象的差异性最大。
设已知N个观测值X1,X2,…Xn,每个观测值是一个p维向量。聚类分析的思想是将每个观测值Xi看成p维空间的一个点,在p维空间中引入“距离”的概念,则可按照各点间距离的远近将各点归类。
如果对p个变量进行分类,常常定义一种“相似系数”来衡量变量之间的联系紧密程度,按各变量之间的相似系数大小将变量进行分类。
根据实际问题需求和变量类型,对距离和相似系数有不同的定义方法。
Apriori
Apriori算法是一种最有影响力的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。
关联规则在分类树行属于单维、单层、布尔关联规则。所有支持度大鱼最小支持度的项集称为“频繁项集”,简称“频集”。
Apriori演算法所使用的前置统计量包括了:
最大规则物件数:规则中物件所包含的最大物件数量
最小支援:规则中物件或是物件组必须符合的最低案例数
最小置信水准:计算规则所必须符合的最低置信水准门槛
该算法的基本思想是首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一致,然后由频集产生强关联规则。这些规则必须满足最小支持度和最小可信度。
接着,使用第一步找到的频集所产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。
一旦这些规则生成,那么只有那些大于用户给定最小可信度的规则才能留下来。为了生成所有频集,使用了递推的方法。
在统计计算中,最大期望(Expectation-Maximization)算法是在概率(probalilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。
最大期望经常用在机器学习和计算机视觉的数据集聚(Data Clustering)领域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),也就是将隐藏变量项能够观测到的一样包含在内,从而计算最大似然的期望值;另一步是最大化(M),也就是最大化在计算E时找到的最大似然的期望值,从而计算参数的最大似然估计。接着,将计算出的参数应用于另一个E的计算,不断交替进行。
在提出PageRank之前,已经有研究者提出利用网页入链数量进行链接分析计算,这种入链方法假设一个网页的入链越多,网页越重要。
早期的很多搜索引擎也采纳了入链数量作为链接分析方法,对于搜索引擎效果提升也有较明显的效果。
PageRank除了考虑入链数量的影响,还参考了网页质量因素,两者结合获得了更好地网页重要性评价标准。
对于某个互联网网页来说,该网页的PageRank计算基于以下两个基本假设:
数量假设:在Web图模型中,如果一个页面节点接收到的其他网页指向的入链数量越多,那么这个页面越重要。
质量假设:指向该页面的入链质量不同,质量高的页面会通过链接向其他页面传递更多权重。所以越是质量高的页面指向页面A,页面A就越重要。
基于以上两个假设,PageRank算法刚开始赋予每个页面相同的重要性得分,通过迭代递归计算来更新每个页面节点的PageRank得分,直到得分稳定为止。
PageRank计算得出的结果是网页的重要性评价,这与用户输入的查询是没有任何关系的,即算法是与主题无关的。
假设有一个搜索引擎,其相似度计算函数不考虑内容相似因素,完全采用PageRank进行排序,那么这个搜索引擎的表现会是什么样子呢?
这个搜索引擎对于任意不同的查询请求,返回的结果都是相同的,即返回PageRank值最高的页面。
推荐算法
推荐算法大致可以分为三类:基于内容的推荐算法、协同过滤推荐算法和基于知识的推荐算法。
基于内容的推荐算法,原始是根据用户喜欢或关注过的item寻找内容类似的item,如果这些item在内容上与以前观看的页面有很大关联,比如有相同的关键词,就把这些item推荐给用户。
这种方法可以避免item的冷启动(如果一个item从未被关注过,其他算法则很少推荐这个item,但是基于内容的推荐算法分析item之间的关联,可以实现对这类item的推荐)问题。
不过,这种方法也会有很多弊端,比如推荐的item可能会重复,另外,由于一些多媒体内容(比如音乐、电影、图片等)很难从中提取特征,因此很难推荐。对于这类内容,其中一种解决方式就是人工给这些item打上标签。
协同过滤算法(Collaborative Filtering),一种是将用户所有数据读入内容中进行运算,称为基于记忆的协同过滤算法(Memory-based Collaborative Filtering),一种是基于模型的协同过滤算法(Model-based Collaborative Filtering),包括Aspect Model、pLSA、LDA、聚类、SVD、Matrix Factorization等。这种方法的训练过程比较长,但是完成训练后,推荐过程比较快。
基于知识的推荐方法,也可以归为基于内容的推荐。这种方法比较典型的操作是构建领域本体,或者建立一定的规则进行推荐。
社区发现
社区现象是复杂网络中的一种普遍现象,表达了多个个体具有的共同体特性。社区的发现技术,从最初的图分割方法、W-H算法、层次聚类法、GN算法等基本算法,逐渐发展和改进,形成了包括改进GN算法、派系过滤算法、局部社区算法和web社区发现方法在内的根据可操作性的方法。网络的社区发现可分为个性化服务、信息推送等提供基本数据的服务,在信息时代,社区的存在更加普遍,发现技术应用也更加方便,商业价值和服务价值也更大。
社区发现问题并没有一个明确地定义,根据一般算法流程,大致可以描述为这样一个问题:讲一个网络分割成若干个由紧密相连节点构成的社区,而分属不同社区的节点间的联系相对松散。
社区发现算法往往面临两大难点,一个是网络中社区的个数、大小都是不确定的,社区发现往往是一种无监督的聚类算法,算法的终止依赖于数学上的收敛;一个是社交网络和电信网络的规模和复杂度都较高,一个用户又往往分属多个社区,构成重叠型社区(Overlapping Community),更增添了社区发现的难度。
相关文章:
常用数据挖掘算法举例(上)
智能反欺诈算法概览
数学模型漫谈
什么是机器学习?(上)
什么是机器学习?(下)
基于个人信用评分的建模分析和授信决策