﻿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
祝你好运！
