您的位置:首页 > 数据库

基于数据库技术的分类算法

2008-01-21 22:34 260 查看
导读:
  虽然数据挖掘的创始人主要是数据库领域的研究人员,然而提出的大多数算法则没有利用数据库的相关技术。在分类算法中,致力于解决此问题的算法有MIND(mining in database)和GAC-RDB(grouping and counting-relational database)。

  (1) MIND算法
  MIND算法是采用数据库中用户定义的函数(user-defined function,UDF)实现发现分类规则的算法。MIND采用典型的决策树构造方法构建分类器。具体步骤与SLIQ类似。其主要区别在于它采用数据库提供的UDF方法和SQL语句实现树的构造。简而言之,就是在树的每一层,为每一个属性建立一个维表,存放各属性的每个取值属于各个类别的个数以及所属的结点编号。根据这些信息可以为当前结点计算每种分裂标准的值,选出最优的分裂标准,然后据此对结点进行分裂,修改维表中结点编号列的值。在上述过程中,对维表的创建和修改需要进行多次,若用SQL实现,耗时很多,因此用UDF实现。而分类标准的寻找过程则通过创建若干表和视图,利用连接查询实现。
  该算法的优点是通过采用UDF实现决策树的构造过程使得分类算法易于与数据库系统集成。其缺点是算法用UDF完成主要的计算任务,而UDF一般是由用户利用高级语言实现的,无法使用数据库系统提供的查询处理机制,无法利用查询优化方法,且UDF的编写和维护相当复杂。此外,MIND中用SQL语句实现的那部分功能本身就是比较简单的操作,而采用SQL实现的方法却显得相当复杂。

  (2) GAC-RDB算法
  GAC-RDB算法是一种利用SQL语句实现的分类算法。该算法采用一种基于分组计数的方法统计训练数据集中各个属性取值组合的类别分布信息,通过最小置信度和最小支持度两个阈值找出有意义的分类规则。在该算法中,首先利用SQL语句计算每个属性进行类别判定的信息量,从而选择一个最优的分裂属性,并且按照信息量的大小对属性进行排序,随后重复地进行属性的选择、候选分类表的生成、剪裁以及分类误差的计算,直到满足结束条件为止,比如,直到小于误差阈值和误差没有改变为止。

  该算法的优点是具有与现有的其他分类器相同的分类准确度,执行速度有较大提高,而且具有良好的伸缩性,应用程序易于与数据库系统集成。其缺点是参数的取值需用户完成等。
  Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=628841
本文转自
http://cache.baidu.com/c?word=%B7%D6%C0%E0%2C%CB%E3%B7%A8&url=http%3A//hi%2Ebaidu%2Ecom/iojessie/blog/item/eb8968389b4a04f0b211c786%2Ehtml&p=882a9756ca8412a058ead12c514a&user=baidu
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: