1、决策支持系统实验实验一、产生式规则专家系统设计实验目的:专家系统是决策支持系统的重要应用,也是以定性的方式辅助决策的系统,并在各个领域取得了很大的经济效益。通过实验,使同学们进一步掌握专家系统的基本结构,理解产生式规则的知识表示方式,了解专家系统中的正向推理、逆向推理和混合推理的推理机理,熟悉专家系统的建立过程。实验内容:根据 15 条识别动物的产生式规则,在 Windows 操作系统下,利用高级程序设计语言设计一个简单的动物识别专家系统,完成对涉及到得老虎、金钱豹、斑马等几种常见动物的识别。程序设计的基本要求:(1)采用 C+语言,使用MFC 控件;(2)规则库要求至少包含 15 条规则;(
2、3)设计人机界面,解释模块提供查询规则的功能。规则如下:r1:IF 该动物有毛发 THEN 该动物是哺乳动物r2:IF 该动物有奶 THEN 该动物是哺乳动物r3:IF 该动物有羽毛 THEN 该动物是鸟r4:IF 该动物有会飞 AND 会下蛋 THEN 该动物是鸟r5:IF 该动物有吃肉 THEN 该动物是食肉动物r6:IF 该动物有犬齿 AND 有爪 AND 眼盯前方 THEN 该动物是食肉动物r7:IF 该动物是哺乳动物 AND 有蹄 THEN 该动物是蹄类动物r8:IF 该动物是哺乳动物 AND 是嚼反刍动物 THEN 该动物是蹄类动物r9:IF 该动物是哺乳动物 AND 是食肉动物
3、AND 是黄褐色 AND 身上有暗斑点THEN 该动物是金钱豹r10:IF 该动物是哺乳动物 AND 是食肉动物 AND 是黄褐色 AND 身上有黑色条纹 THEN 该动物是老虎r11:IF 该动物是哺乳动物 AND 有长脖子 AND 有长腿 AND 身上有暗斑点THEN 该动物是长颈鹿r12:IF 该动物是蹄类动物 AND 身上有黑色条纹 THEN 该动物是斑马r13:IF 该动物是蹄类动物 AND 有长脖子 AND 有长腿 AND 不会飞 AND 黑白二色THEN 该动物是鸵鸟r14:IF 该动物是鸟 AND 有游泳 AND 不会飞 AND 黑白二色 THEN 该动物是企鹅r15:IF 该
4、动物是鸟 AND 善飞 THEN 该动物是信天翁实验环境:Windows 操作系统和程序设计语言( C,或 C+,或 Visual prolog)实验学时:4实验二、关联规则的程序设计实验目的:数据挖掘,又叫 KDD,是一种从大型数据库中大量历史数据自动挖掘知识的重要手段,也是目前基于知识的系统知识获取的重要方法。通过实验,了解数据库、知识库和模型库之间,以及”三库”同决策支持系统的关系,了解数据挖掘在决策支持中的重要性,掌握 Apriori 算法的基本工作原理。实验内容:针对数据挖掘中的经典算法 Apriori 的基本算法,采用逐层迭代,找出频繁项目集用高级程序设计语言编写程序,对基本的事务
5、数据库进行知识挖掘。Apriori的基本算法如下:算法:Apriori输入:事务数据库 D;最小支持度阈值 min-support;输出:事务数据库 D 中的频繁项目集 L。1) BEGIN2) L1= frequent 1-itemsets / 生成长度为 1 的频繁项目;集3) FOR ( k = 2;L k-1;k +) DO4) BEGIN5) C k = Apriori_gen(Lk-1); / 产生新的候选者6) FOR all transactions t D DO7) BEGIN8) Ct = Subset(Ck, t ); / Candidates contained in
6、t9) FOR all candidates c C t DO10) c.count + +;11) END;12) Lk= cCk | c .count = minsupport13) END;14) Answer = k Lk;15)END;候选集生成算法 Apriori-gen 是以频繁(k-1)- 项目集,生成候选 k-项目集的。该算法分为如下两步:Apriori-gen 函数:输入:频繁 k-1 项集;最小支持度阈值 min-support;输出:频繁 k 项集。1) BEGIN 2) FOR each itemset l1L k-13) FOR each itemset l2L k
7、-14) IF (l 11=l21)(l 12=l22)(l 1k-1 l2k-1)5) THEN BEGIN6) c= l 1l 2; /* 连接步,产生候选频繁项目集7) IF Has_infrequent_subset(c, Lk-1) THEN8) DELETE c; / *剪接步,删除小于最小支持度的候选项目集9) ELSE ADD c TO C k 10) END11) RETURN Ck ;12) END;Has_infrequent_subset 函数:输入:候选 k 项集;输出:如果包含非频繁子集,返回 True,否则返回 False。1) BEGIN2) Lk-1:freq
8、uent(k-1)-itemset); / *使用先验知识3) FOR each (k-1)-subset s of c4) IF s Lk-1 5) THEN RETURN TRUE ;6) ELSE RETURN FASLE ;7) END;实验环境:Windows 操作系统和程序设计语言( C,或 C+,或 Visual prolog)实验学时:4实验三、决策树算法的程序设计实验目的:决策树是通过一系列规则对数据进行分类的过程。决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量做决策树。通过决策树实验,掌握决策树数据挖掘的基本原理和方法,实现数据集合上构造决策树,完
9、成决策和分类。实验内容:决策树的构造方法有多种,本实验主要利用互信息等信息论中的基本知识,选择 ID3 算法,构造一个结构良好的决策树。ID3 算法是 1986 年由 Quilan 提出的,它是一个从上到下、分而治之的归纳过程。ID3 算法的核心是:在决策树各级结点上选择属性时,通过计算信息增益来选择属性,以使得在每一个非叶结点进行测试时,能获得关于被测试记录最大的类别信息。其具体方法是:检测所有的属性,选择信息增益最大的属性产生决策树结点,由该属性的不同取值建立分支,再对各分支的子集递归调用该方法建立决策树结点的分支,直到所有子集仅包含同一类别的数据为止。最后得到一棵决策树,它可以用来对新的
10、样本进行分类。ID3 算法思想描述如下:(1) 初始化决策树 T 为只含一个树根(X,Q),其中 X 是全体样本集,Q 为全体属性集。(2) if(T 中所有叶节点(X,Q)都满足 X 属于同一类或 Q为空 )then 算法停止;(3) else任取一个不具有 (2)中所述状态的叶节点 (X,Q);(4) for each Q中的属性 A do 计算信息增益 gain(A,X);(5) 选择具有最高信息增益的属性 B 作为节点(X,Q) 的测试属性;(6) for each B 的取值 bi do从该节点 (X, Q)伸出分支,代表测试输出 B=bi;求得 X 中 B 值等于 bi 的子集 Xi,并生成相应的叶节点(Xi,Q-B) ;(7) 转(2);实验环境:Windows 操作系统和程序设计语言( C,或 C+,或 Visual prolog)实验学时:2