b99902HW 板


LINE

稍微赚一下文章数跟批币XD == 5.1 树(Trees) (1) 请使用 C 语言或任何的虚拟码(pseudo-code)来写出一个演算法(algorithm)。 而给予线索二叉树(threaded binary tree)上的一节点(node),该演算法可以 有效率的找出该节点的双亲(parent)。 (2) 请使用 C 语言或任何的虚拟码来写出一个时间复杂度演算法(time complexity) 为 O(N) 的演算法,来检查一个拥有 N 个节点的树是否为二元搜寻树(binary search tree)。请简要地解释为什麽你写的演算法时间复杂度为 O(N)。 (3) 请使用 C 语言或任何的虚拟码来写出在课本第 230 页,练习题 5 当中所描述 的演算法(5.6 小节)。请简要地解释你的演算法时间复杂度为何。 (4) 请使用 C 语言或任何的虚拟码来写出在课本第 243 页,练习题 6 当中所描述 的演算法(5.8 小节)。 (5) 证明你在 5.1(4) 当中所演演算法的时间复杂度。 (6) 课本第 247 页,练习题 2 (5.9 小节)。 (7) 课本第 247 页,练习题 4 (5.9 小节)。 5.2 决策树(Decision Tree) 在这个问题中,我们会探究树在人工智慧(Articial Intelligence)与机器学习(Machine Learning)这两个领域上的一种应用。决策树在机器学习上是最早被利用的工具之一。在 决策树中,非叶节点(non-leaf node)代表着我们所考虑的选择(choice)或因素(factor) ,而叶节点(leaf node)则代表了我们在上述因素下最後做出的决定。为了简单起见,我 们只考虑拥有二元性因素(binary factor)的决策树,也就是,二元决策树(binary decision tree)。 例如:下面的树是一个决定要不要打高尔夫球的二元决策树。如果天气是阴天(cloudy) 的话,则我们会决定去打高尔夫球;如果不是阴天的话,我们会检查今天有没有刮风 (windy),如果刮风的话,我们只会在天气晴朗(clear)且不潮湿(humid)的情况下去打高 尔夫球。另一方面,如果没有刮风的话,我们只会在没有下雨(rainy)但潮湿的情况下不 去打高尔夫球。 图请见作业的档案。 这样的决策树也被称为"分类树(classification tree)"。它把(晴天,雨天,潮湿)这 三种不同的情况,分类到决策类别 play? = {是(yes), 否(no)} 当中。决策树并不是任 意生成的。事实上,它是藉由给予一连串例子,让程式自动学习所得到的结果。换句话 说,你可以用这些例子来教导你的程式。 表请见作业的档案。 决策树可以由上往下以递回的方式来生成。首先,我们需要找到根的分支。在上表的例子 当中,总共有 9 个是及 5 个否(9Y5N)。如果我们考虑的是天气是否晴朗这个因素,我 们可以将这 14 个例子分成 2 个分支:在天气晴朗的分支上有 2Y3N,而另外一个分支则 有 7Y2N;如果我们考虑的因素改为是否为阴天,我们也可以将这 14 个例子分成两个分 支:在阴天的分支上有 4Y0N,而另一个分支则有 5Y5N。我们可以继续确认可能的分支条 件。 要建立好的分支选择,你可以检查在分支之後的乱度(confusion)。对於一个aYbN的 混合物(mixture),其乱度定义为: confusion(a, b) = 1 - ( a / ( a + b )) ^ 2 - ( b / ( a + b )) ^ 2 而 (c+e)Y(d+f)N 在分支成为 cYdN 及 eYfN 之後,其总乱度为: total(c, d, e, f) = (c + d) * confusion(c, d) / (c + d + e + f) + (e + f) * confusion(e, f) / (c + d + e + f) 例如:如果以天气是否晴朗来当作分支依据的话,其总乱度为: 5 / 14 * (1 - (2 / 5) ^ 2 - (3 - 5) ^ 2) + 9 / 14 * (1 - (7 / 9) ^ 2 - (2 / 9) ^ 2) 如果我们可以找到一个分支条件使得分支完後的总乱度最小,则可以限制住我们产生出 任意的分支。 现在,当我们对根找到一个好的分支,则我们可以把所有的例子分成两个子集合:一个是 根左孩子(left-child),另一个则是根的右孩子(right-child)。而同样的方法可以分别 用在这两个孩子上,使其又个别产生出两个孩子,依循此法做递回,则可以建出整棵决策 树来。 递回?那终止条件该是什麽?如果该节点已经没有乱度存在的话,也就是所有例子组成 aY0N 或 0YbN 的情形时,我们就不需要在继续分支下去了,也就是说该节点在决策树当 中是叶子(leaf)。在这种状况之下,我们可以宣告该叶子有一个最终的决定(是或否)。 下列是一个简单的决策树生成演算法: DecisionTree(examples) if 在examples当中没有乱度 then 建立一个拥有最终决定的叶子节点并将其回传 else 找到一个可以将总乱度化为最小的分支条件,并将其存在根当中 依此分支条件将example分成两个子集合,分别分配给左小孩和右小孩 令左子树 = DecisionTree(分配给左小孩的examples) 令右子树 = DecisionTree(分配给右小孩的examples) 回传整棵树 end if 在这个问题当中,你需要写一个会根据所给例子来生成相对应之二元决策树的程式。 有趣的是,对於二元决策树,你可以将其表示为 C 语言中的 if(...){...}else{...}。 也就是说,在你的程式建出二元决策树後,它必须自己产生另外一个程式来对以後的例子 做出决定。 (1) 实作出上述的决策树演算法。你的程式必须能读入例子,并输出一段程式码来表示 你的程式根据所给例子所建成的二元决策树(格式请参阅课程网)。 (2) 用图示来说明你在程式内部用来表示决策树的资料结构。请尽可能的明确表示。 (3) 以下表的例子来建构函式 f 的二元决策树,并画出你所得的树。 (表请见作业档案) (4) 请建出你自己的资料集(data set),该资料集至少要有两个因素,且至少拥有六个 例子。你的程式必须对该资料集建出一个至少两层的决策树。列出所有的例子、画 出生成的决策树,并简单解释所生成的树。 (5) 如果你的分支方法不是采用最小乱度的分支法,而是采用随机分支法,也就是随机 挑选出一个因素当作分支的条件来做分支。由於随机选取的关系,你可能会重新选 取到在上层已经选过的因素。使用问题 5.2(3) 所给的例子,来比较采用最小乱度 分支法所形成的决策树及采用随机分支法所形成的决策树的平均高度(至少一千次 的平均)。简单说明你的发现。 如果你有兴趣扩展你的程式使其在机器学习上更有用处,则你可以在完成作业後,随时 联络老师。 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.214.43 ※ 编辑: syuusyou 来自: 140.112.214.43 (05/06 16:02)
1F:推 wctaiwan:推! 05/06 17:14
2F:推 didiwu:有点强 吗,还是闲XDD,推!!! 05/06 17:32
3F:→ syuusyou:我不强啊,当作我闲就好吧 05/06 20:08
4F:推 ianlini:昌神! 05/06 21:03
5F:推 CryKing:推! 05/06 21:44
6F:推 allen0326200:昌神超屌! 05/06 22:41







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP