1 00:00:16,250 --> 00:00:19,950 大家好!欢迎回到Weka在数据挖掘中的运用的课程。 2 00:00:19,950 --> 00:00:21,540 这是第二部分。 3 00:00:21,540 --> 00:00:28,150 在第一部分中,我们下载了Weka,学习使用了Explorer和一些数据集。 4 00:00:28,150 --> 00:00:31,380 我们学习了分类器,J48。 5 00:00:31,380 --> 00:00:37,870 我们用过滤器来删除属性和实例。 6 00:00:37,870 --> 00:00:44,870 我们可视化了数据集,和一个数据集的分类错误。 7 00:00:45,030 --> 00:00:50,040 同时,我们看了一些数据集,例如,名词性的和数字性的天气(weather)数据, 8 00:00:50,040 --> 00:00:55,899 玻璃(glass)数据,和鸢尾花(iris)数据。 9 00:00:55,899 --> 00:00:58,670 这节课是关于评估的。 10 00:00:58,670 --> 00:01:03,840 在第1.4节,我们用J48建了分类器`。 11 00:01:03,840 --> 00:01:09,289 在第二部分的第一节课,我们来看看分类器到底是什么。 12 00:01:09,289 --> 00:01:11,420 分类器到底是什么? 13 00:01:11,420 --> 00:01:17,300 在接下来的几节课中,我们将学习评估, 14 00:01:17,300 --> 00:01:23,000 训练,测试,基线精度和交叉验证。 15 00:01:23,000 --> 00:01:27,480 首先,来看看什么是分类器。 16 00:01:27,480 --> 00:01:30,800 我们将一步步地创建一个决策树。 17 00:01:30,800 --> 00:01:32,840 打开Weka, 18 00:01:32,840 --> 00:01:35,140 Weka的Explorer。 19 00:01:35,140 --> 00:01:43,170 载入segment-challenge数据集。 20 00:01:43,170 --> 00:01:50,040 segment-challenge.arff ,就是这个。 21 00:01:50,040 --> 00:01:52,700 我们来看看数据。 22 00:01:52,700 --> 00:01:56,100 先来看一下类。 23 00:01:56,100 --> 00:02:04,540 类值包括砖面(brickface),天空(sky),叶子(foliage),水泥(cement),窗户(window),路径(path),和草(grass)。 24 00:02:04,540 --> 00:02:07,880 它看起来象图像分析的数据。 25 00:02:07,880 --> 00:02:15,230 我们看一下属性,可以看到行和列的形心,像素的数量, 26 00:02:15,230 --> 00:02:22,110 线的密度,亮度的均值,和各种其它东西。 27 00:02:23,700 --> 00:02:29,110 饱和度,色调,和类,正如我提过的,是不同的质地: 28 00:02:30,780 --> 00:02:33,650 砖,天空,叶子,等等。 29 00:02:33,650 --> 00:02:37,500 这就是segment challenge数据集。 30 00:02:37,500 --> 00:02:42,740 选一个用户分类器。 31 00:02:42,740 --> 00:02:45,490 用户分类器是个树形分类器。 32 00:02:45,490 --> 00:02:48,680 我们会很快知到它是干什么用的。 33 00:02:48,680 --> 00:02:53,250 这是用户分类器 34 00:02:53,250 --> 00:02:58,290 在开始之前,我要强调一下。 35 00:02:58,290 --> 00:03:00,890 我会使用提供的测试数据集。 36 00:03:00,890 --> 00:03:13,180 我将设定测试数据集。用来评估分类器的测试数据集叫segment-test。 37 00:03:13,180 --> 00:03:18,510 训练数据集叫segment-challenge,测试数据集叫segment-test。 38 00:03:20,610 --> 00:03:22,340 现在我们准备好了。 39 00:03:23,160 --> 00:03:29,340 运行分类器。 40 00:03:29,860 --> 00:03:36,620 我们可以看到窗口有两个面板:树形可视化和数据可视化。 41 00:03:36,620 --> 00:03:40,460 先来看看数据可视化。 42 00:03:40,460 --> 00:03:46,140 上节课我们学习了可视化,你可以为x和y轴 43 00:03:46,140 --> 00:03:48,430 选不同的属性。 44 00:03:48,430 --> 00:03:55,430 试一下region-centroid-row对比intensity-mean。 45 00:04:09,630 --> 00:04:11,460 这是我得到的图形。 46 00:04:21,200 --> 00:04:26,520 现在,我们选一个类。 47 00:04:26,520 --> 00:04:31,090 我选Rectange。 48 00:04:33,890 --> 00:04:43,150 如果我在这里用鼠标画一个方形,在我看来, 49 00:04:43,150 --> 00:04:48,270 它包括了几乎纯红色的点。 50 00:04:48,270 --> 00:04:54,020 我将提交这个方形。 51 00:04:54,020 --> 00:04:59,520 你可以看到这片区域消失,和已被调整的图形。 52 00:04:59,520 --> 00:05:00,750 我将用这个建立一个树形。 53 00:05:00,750 --> 00:05:07,750 如果我看下树形可视化,是个树形。 54 00:05:09,460 --> 00:05:15,860 它从region-centroid-row属性和intensity-mean属性分支 55 00:05:15,860 --> 00:05:19,000 这里,我们得到天空(sky), 这些全是天空(sky)。 56 00:05:19,000 --> 00:05:23,610 这里有砖面(brickface),叶子(foliage),水泥(cement),窗户(window),路径(path),和草(grass)。 57 00:05:23,610 --> 00:05:26,110 我们来创建这个树形。 58 00:05:26,110 --> 00:05:30,390 我要做的是,选择这个节点,重新细化它。 59 00:05:30,390 --> 00:05:32,780 这是数据可视化 60 00:05:32,780 --> 00:05:39,780 我选一个包含了这些点的方形,就这样。 61 00:05:41,470 --> 00:05:44,500 他们从图中消失了。 62 00:05:44,500 --> 00:05:53,240 你可以看到,我在这里用region-centroid-row和intensity-mean属性 63 00:05:53,240 --> 00:05:55,520 建了另一个分支,这里几乎包含了所有的233个路径(path)的实例 64 00:05:55,520 --> 00:06:01,710 这里是些混合的实例。 65 00:06:01,710 --> 00:06:03,750 这里是个纯节点。 66 00:06:03,750 --> 00:06:05,920 这里几乎是个纯节点。 67 00:06:05,920 --> 00:06:07,120 我想进一步改进这个节点。 68 00:06:07,120 --> 00:06:11,500 我来选些这部分的实例。 69 00:06:11,500 --> 00:06:15,210 选这部分,提交它们。 70 00:06:15,210 --> 00:06:22,210 选这部分,提交。 71 00:06:23,250 --> 00:06:30,120 选这部分,提交。 72 00:06:30,120 --> 00:06:33,900 这一小簇看起来很齐整, 73 00:06:33,900 --> 00:06:34,410 提交它们。 74 00:06:34,410 --> 00:06:38,110 事实上我还没有改变过坐标轴,当然,我可以在任何时候改变它们以 75 00:06:38,110 --> 00:06:43,930 更好的区分剩下的类。 76 00:06:43,930 --> 00:06:45,800 我可以试试这些。 77 00:06:45,800 --> 00:06:51,180 事实上最快捷的方法是点击这些条块。 78 00:06:51,180 --> 00:06:55,750 x轴是左击,y轴是右击。 79 00:06:55,750 --> 00:07:02,750 我可以很快地体验不同组合的x轴和y轴,看看能否能得到更好的结果。 80 00:07:07,370 --> 00:07:08,300 这是我创建的树。 81 00:07:08,300 --> 00:07:11,680 把它拉成满屏。 82 00:07:11,680 --> 00:07:12,300 它像这样。 83 00:07:12,300 --> 00:07:18,650 你可以看到我们成功地将它细化到这个分支。 84 00:07:18,650 --> 00:07:25,650 完成后,我可以确认它。 85 00:07:26,250 --> 00:07:33,250 在这之前,让我来演示下,我们不仅可以选方形, 86 00:07:33,500 --> 00:07:37,650 我们还可选多边形或折线。 87 00:07:37,650 --> 00:07:43,520 如果我不想用方形,我可以用多边形或折线 88 00:07:43,520 --> 00:07:47,170 如果你愿意,你可以试着选一些不同形状的区域。 89 00:07:51,000 --> 00:07:58,900 这是我选的区域。 90 00:07:58,900 --> 00:08:03,150 好的,我右击完成它。 91 00:08:03,150 --> 00:08:04,900 我可以提交它。 92 00:08:04,900 --> 00:08:06,590 所以我并不受限于方形。 93 00:08:06,590 --> 00:08:08,940 我可以使用其他的形状。 94 00:08:08,940 --> 00:08:10,430 我不那样做。 95 00:08:10,430 --> 00:08:12,000 目前我对这个树形很满意。 96 00:08:12,000 --> 00:08:13,920 我决定接受这个树形。 97 00:08:13,920 --> 00:08:18,420 一旦这样做了就不能改变了,所以得想好。 98 00:08:18,420 --> 00:08:21,840 我接受这个树形。“确信吗?” 是的。 99 00:08:21,840 --> 00:08:26,110 这里是混淆矩阵,我可以看看误差。 100 00:08:26,110 --> 00:08:35,320 我的树的分类准确度是78%,几乎是79%,错误率是21%。 101 00:08:35,320 --> 00:08:40,500 还不错, 尤其考虑到创建这个树形的快捷度。 102 00:08:42,480 --> 00:08:44,870 现在该你了。 103 00:08:44,870 --> 00:08:49,480 我想你试一试,看看能不能多花点时间 104 00:08:49,480 --> 00:08:52,780 创建一个更好的树形。 105 00:08:52,780 --> 00:08:56,010 我希望你考虑几点。 106 00:08:56,010 --> 00:08:59,300 首先,你将采用什么样的策略来创建这个树形。 107 00:08:59,300 --> 00:09:04,220 基本上,我们尝试了实例空间的不同区域,找纯度最高的区域来建 108 00:09:04,220 --> 00:09:07,430 纯度最高的分支。 109 00:09:07,430 --> 00:09:10,670 这是由底至上的覆盖策略。 110 00:09:10,670 --> 00:09:15,890 我们覆盖这片区域,这片区域和这片区域。 111 00:09:15,890 --> 00:09:17,510 这不是J48的方法。 112 00:09:17,510 --> 00:09:23,110 当J48创建树时,它用整个数据集来划分。 113 00:09:23,110 --> 00:09:30,110 在最顶端,它将数据集一分为二时,不是为了更好的分类,而是 114 00:09:30,220 --> 00:09:34,760 为了它可以使用由顶至下的方法 115 00:09:34,760 --> 00:09:40,920 将每次剩下的一半数据建成最优化的树形。 116 00:09:40,920 --> 00:09:46,370 它所创建的树比我刚刚用用户分类器所建的要好。 117 00:09:46,370 --> 00:09:52,350 我希望你能思考下我们想达到的目的。 118 00:09:52,350 --> 00:09:57,940 如有足够的时间,你可以为这个数据集创建一个完美的树形,但是 119 00:09:57,940 --> 00:10:01,500 别忘了,我们使用的是训练数据集。 120 00:10:01,500 --> 00:10:07,690 我们将用不同的数据集来评估这个树形,希望这个测试数据集 121 00:10:07,690 --> 00:10:11,530 有相同的来源,但不和训练数据集等同。 122 00:10:11,530 --> 00:10:15,240 我们不想创建和训练数据集非常匹配的。 123 00:10:15,240 --> 00:10:21,290 但我们希望它能代表训练数据集中的模式。 124 00:10:21,290 --> 00:10:26,550 我们要找的是能在测试数据集上取得好效果的。 125 00:10:26,550 --> 00:10:32,800 这突出了评估在机器学习中的重要性。 126 00:10:32,800 --> 00:10:37,700 这就是这部分要学习的分类器评估的不同方法。 127 00:10:37,700 --> 00:10:40,230 就到这里。 128 00:10:40,230 --> 00:10:45,260 教材中有关于用户分类器的知识,如果你愿意, 129 00:10:45,260 --> 00:10:47,050 可读一读。 130 00:10:47,050 --> 00:10:52,950 去做一下这节课的练习,和创建一个自己的树。 131 00:10:52,950 --> 00:10:58,850 希望你能比我在5-10分钟内做的更好。 132 00:10:58,850 --> 00:11:05,850 祝你好运!