数据挖掘相关

来源:互联网 发布:点击可以优化排名吗 编辑:程序博客网 时间:2024/05/03 09:57

      文本聚类(Text clustering)文档聚类主要是依据著名的聚类假设:同类的文档相似度较大,而不同类的文档相似度较小。作为一种无监督的机器学习方法,聚类由于不需要训练过程,以及不需要预先对文档手工标注类别,因此具有一定的灵活性和较高的自动化处理能力,已经成为对文本信息进行有效地组织、摘要和导航的重要手段,为越来越多的研究人员所关注。

      聚类是对数据对象进行划分的一种过程,与分类不同的是,它所划分的类是未知的,故此,这是一个“无指导的学习”(unsupervised learning)过程,即聚类算法不需要“教师”的指导,不需要提供训练数据,它倾向于数据的自然划分

      ETL:Extract-Transform-Load的缩写,数据抽取(Extract)、转换(Transform)、装载(Load)的过程。 ETL过程的主要目的就是以最小代价(包括对日常操作的影响和对技能的要求) 将针对日常业务操作的数据转化为针对数据仓库而存储的决策支持型数据。

      OLAP (on-line analytical processing) 联机分析处理。是BI的一种全新封装方式。直接产物是报表或者cube。是使分析人员、管理人员、或者执行人员能够从多角度对信息进行快速、一致、交互地存取,从而对数据有更深入的了解的一类软件技术。OLAP展现在用户面前的是一幅多维视图。

      聚类分析计算方法主要有如下几种:
1. 划分法(partitioning methods)

  给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K<N。而且这K个分组满足下列条件:(1) 每一个分组至少包含一个数据纪录;(2)每一个数据纪录属于且仅属于一个分组(注意:这个要求在某些模糊聚类算法中可以放宽);对于给定的K,算法首先给出一个初始的分组方法,以后通过反复迭代的方法改变分组,使得每一次改进之后的分组方案都较前一次好,而所谓好的标准就是:同一分组中的记录越近越好,而不同分组中的纪录越远越好。使用这个基本思想的算法有:K-MEANS算法、K-MEDOIDS算法、CLARANS算法;
2. 层次法(hierarchical methods)
  这种方法对给定的数据集进行层次似的分解,直到某种条件满足为止。具体又可分为“自底向上”和“自顶向下”两种方案。例如在“自底向上”方案中,初始时每一个数据纪录都组成一个单独的组,在接下来的迭代中,它把那些相互邻近的组合并成一个组,直到所有的记录组成一个分组或者某个条件满足为止。代表算法有:BIRCH算法、CURE算法、CHAMELEON算法等;
3. 基于密度的方法(density-based methods)
  基于密度的方法与其它方法的一个根本区别是:它不是基于各种各样的距离的,而是基于密度的。这样就能克服基于距离的算法只能发现“类圆形”的聚类的缺点。这个方法的指导思想就是,只要一个区域中的点的密度大过某个阀值,就把它加到与之相近的聚类中去。代表算法有:DBSCAN算法、OPTICS算法、DENCLUE算法等;
4. 基于网格的方法(grid-based methods)
  这种方法首先将数据空间划分成为有限个单元(cell)的网格结构,所有的处理都是以单个的单元为对象的。这么处理的一个突出的优点就是处理速度很快,通常这是与目标数据库中记录的个数无关的,它只与把数据空间分为多少个单元有关。代表算法有:STING算法、CLIQUE算法、WAVE-CLUSTER算法;
5. 基于模型的方法(model-based methods)
  基于模型的方法给每一个聚类假定一个模型,然后去寻找能个很好的满足这个模型的数据集。这样一个模型可能是数据点在空间中的密度分布函数或者其它。它的一个潜在的假定就是:目标数据集是由一系列的概率分布所决定的。通常有两种尝试方向:统计的方案和神经网络的方案。

     机器学习

      在机器学习(Machine learning)领域,监督学习(Supervised learning)、非监督学习(Unsupervised learning)以及半监督学习(Semi-supervised learning)是三类研究比较多,应用比较广的学习技术,wiki上对这三种学习的简单描述如下:

      监督学习:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如分类。
      非监督学习:直接对输入数据集进行建模,例如聚类。
      半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数。

      其实很多机器学习都是在解决类别归属的问题,即给定一些数据,判断每条数据属于哪些类,或者和其他哪些数据属于同一类等等。这样,如果我们上来就对这一堆数据进行某种划分(聚类),通过数据内在的一些属性和联系,将数据自动整理为某几类,这就属于非监督学习。如果我们一开始就知道了这些数据包含的类别,并且有一部分数据(训练数据)已经标上了类标,我们通过对这些已经标好类标的数据进行归纳总结,得出一个 “数据-->类别” 的映射函数,来对剩余的数据进行分类,这就属于监督学习。而半监督学习指的是在训练数据十分稀少的情况下,通过利用一些没有类标的数据,提高学习准确率的方法。

      主动学习(active learning),指的是这样一种学习方法:

      有的时候,有类标的数据比较稀少而没有类标的数据是相当丰富的,但是对数据进行人工标注又非常昂贵,这时候,学习算法可以主动地提出一些标注请求,将一些经过筛选的数据提交给专家进行标注

      这个筛选过程也就是主动学习主要研究的地方了,怎么样筛选数据才能使得请求标注的次数尽量少而最终的结果又尽量好。

      主动学习的过程大致是这样的,有一个已经标好类标的数据集K(初始时可能为空),和还没有标记的数据集U,通过K集合的信息,找出一个U的子集C,提出标注请求,待专家将数据集C标注完成后加入到K集合中,进行下一次迭代。

      按wiki上所描述的看,主动学习也属于半监督学习的范畴了,但实际上是不一样的,半监督学习和直推学习(transductive learning)以及主动学习,都属于利用未标记数据的学习技术,但基本思想还是有区别的。

      如上所述,主动学习的“主动”,指的是主动提出标注请求,也就是说,还是需要一个外在的能够对其请求进行标注的实体(通常就是相关领域人员),即主动学习是交互进行的。

--------------------------------------------------------------------------------

      k均值算法

      算法思想及基本步骤
      将给定的样本划分为K类,K预先指定。

      算法基本思想:基于使聚类性能指标最小化,所用的聚类准则函数是聚类集中每一个样本点到该类中心的距离平方之和,并使其最小化。

      算法步骤:

      1.为每个聚类确定一个初始聚类中心,这样,就有K个初始聚类中心。

      2.将样本集中的样本Xi按照最小距离原则分配到最邻近聚类Zj

     

      3.使用每个聚类中的样本均值作为新的聚类中心。

      4.重复步骤2.3直到聚类中心不再变化。

      5.结束,得到K个聚类。

在算法中我们需要计算K个聚类的样本均值,算法名称由此得来。

算法的优化目标