weka简单实例

来源:互联网 发布:网络十大神神兽由来 编辑:程序博客网 时间:2024/06/03 17:43

 1.交叉验证J48

设置流以加载ARFF文件(批处理模式),并使用J48(WEKA的C4.5实现)执行交叉验证。

•单击DataSources选项卡,从工具栏中选择ArffLoader(鼠标指针将变为十字线)。
•接下来,通过单击布局上的某处(ArffLoader图标的副本将出现在布局区域上),将ArffLoader组件放置在布局区域上。
•下一个指定要加载的ARFF文件,首先右键单击布局上的ArffLoader图标。将出现一个弹出菜单。从此菜单的列表中选择“编辑”下的“配置”,然后浏览到ARFF文件的位置。
•下一步单击窗口顶部的“评估”选项卡,然后从工具栏中选择ClassAssigner(允许您选择要作为类的哪个列)组件。将此放置在布局上。
•现在将ArffLoader连接到ClassAssigner:首先右键单击ArffLoader,然后在菜单中的Connections下选择dataSet。将出现橡皮筋线。将鼠标移到ClassAssigner组件上并左键单击 - 标记为dataSet的红线将连接这两个组件。
•下一步右键单击ClassAssigner并从菜单中选择配置。这将弹出一个窗口,您可以从中指定哪个列是数据中的类(最后一个是默认值)。
•接下来,从评估工具栏中获取一个CrossValidationFoldMaker组件,并将其放置在布局上。通过右键单击ClassAssigner并从菜单中的Connections下选择dataSet,将ClassAssigner连接到CrossValidationFoldMaker。
•下一步单击窗口顶部的“分类器”选项卡,然后沿工具栏滚动,直到到达“树”部分中的J48组件。在布局上放置一个J48组件。

•将CrossValidationFoldMaker连接到J48 TWICE,首先从CrossValidationFoldMaker的弹出菜单中选择trainingSet,然后选择testSet。
•下一步,返回到评估选项卡,并在布局上放置一个ClassifierPerformanceE-valuator组件。通过从J48的弹出菜单中选择batchClassifier条目,将J48连接到此组件。
•接下来转到可视化工具栏,并在布局上放置一个TextViewer组件。通过从ClassierierProperanceEvaluator的弹出菜单中选择文本条目,将ClassifierPerformanceEvaluator连接到TextViewer。
•现在通过从ArffLoader的弹出菜单中选择开始加载来开始执行流程。根据数据集的大小和交叉验证的时间长短,您将看到布局中某些图标的一些动画(J48的树将在图标中增长,刻度将在ClassifierPerformanceEvaluator上动画)。您还将在状态栏和窗口底部的日志中看到一些进度信息。
完成后,您可以通过从TextViewer组件的弹出菜单中选择显示结果来查看结果。
添加到此流程的其他酷事情:连接一个TextViewer和/或一个GraphViewer到J48为了查看为交叉验证的每一个折叠产生的树的文本或图形表示(这是在浏览器中是不可能的)。

2.绘制多条ROC曲线

KnowledgeFlow可以在同一绘图窗口中绘制多个ROC曲线,这是Explorer不能做的。在这个例子中,我们使用J48和Ran- domForest作为分类器。这个例子可以在WekaWiki上找到

•单击DataSources选项卡,从工具栏中选择ArffLoader(鼠标指针将变为十字线)。
•接下来,通过单击布局上的某处(ArffLoader图标的副本将出现在布局区域上),将ArffLoader组件放置在布局区域上。
•下一个指定要加载的ARFF文件,首先右键单击布局上的ArffLoader图标。将出现一个弹出菜单。从此菜单的列表中选择“编辑”下的“配置”,然后浏览到ARFF文件的位置。
•下一步单击窗口顶部的“评估”选项卡,然后从工具栏中选择ClassAssigner(允许您选择要作为类的哪个列)组件。将此放置在布局上。
•现在将ArffLoader连接到ClassAssigner:首先右键单击ArffLoader,然后在菜单中的Connections下选择dataSet。将出现橡皮筋线。将鼠标移到ClassAssigner组件上并左键单击 - 标记为dataSet的红线将连接这两个组件。
•下一步右键单击ClassAssigner并从菜单中选择配置。这将弹出一个窗口,您可以从中指定哪个列是数据中的类(最后一个是默认值)。
•接下来,从工具栏中选择ClassValuePicker(允许您从ROC中选择要评估的类标签)组件。将其放置在布局上,右键单击ClassAssigner并从菜单中的Connections下选择dataSet,然后将其与ClassValuePicker连接。
•接下来,从评估工具栏中获取一个CrossValidationFoldMaker组件,并将其放置在布局上。通过右键单击ClassAssigner并从菜单中的Connections下选择dataSet,将ClassAssigner连接到CrossValidationFoldMaker。

•下一步单击窗口顶部的“分类器”选项卡,然后沿工具栏滚动,直到到达“树”部分中的J48组件。在布局上放置一个J48组件。
•将CrossValidationFoldMaker连接到J48 TWICE,首先从CrossValidationFoldMaker的弹出菜单中选择trainingSet,然后选择testSet。
•使用RandomForest分类重复这两个步骤。
•下一步,返回到评估选项卡,并在布局上放置一个ClassifierPerformanceE-valuator组件。通过从J48的弹出菜单中选择batchClassifier条目,将J48连接到此组件。为RandomForest添加另一个ClassifierPerformanceEvaluator,并通过batchClassifier连接它们。
•接下来转到可视化工具栏,并在布局上放置一个ModelPerformanceChart组件。通过从ClassifierPerformanceEvaluator的弹出菜单中选择thresholdData条目,将两个ClassifierPerformanceEvaluators连接到ModelPerformanceChart。
•现在通过从ArffLoader的弹出菜单中选择开始加载来开始执行流程。根据数据集的大小和交叉验证的时间长短,您将看到布局中某些图标的一些动画。您还将在状态栏和窗口底部的日志中看到一些进度信息。
•从“操作”部分下的ModelPerformanceChart的弹出菜单中选择“显示绘图”。
这里是从UCI数据集credit-g生成的两个ROC曲线,在类标签good上进行评估:

3.逐步处理数据

Weka中的一些分类器,聚类器和过滤器可以以流的方式递增地处理数据。这里是增量地训练和测试朴素贝叶斯的例子。结果发送到TextViewer,并且预测由StripChart组件绘制。

•单击DataSources选项卡,从工具栏中选择ArffLoader(鼠标指针将变为十字线)。
•接下来,通过单击布局上的某处(ArffLoader图标的副本将出现在布局区域上),将ArffLoader组件放置在布局区域上。
•下一个指定要加载的ARFF文件,首先右键单击布局上的ArffLoader图标。将出现一个弹出菜单。从此菜单的列表中选择“编辑”下的“配置”,然后浏览到ARFF文件的位置。
•下一步单击窗口顶部的“评估”选项卡,然后从工具栏中选择ClassAssigner(允许您选择要作为类的哪个列)组件。将此放置在布局上。
•现在将ArffLoader连接到ClassAssigner:首先右键单击ArffLoader,然后在菜单中的Connections下选择dataSet。将出现橡皮筋线。将鼠标移到ClassAssigner组件上并左键单击 - 标记为dataSet的红线将连接这两个组件。
•下一步右键单击ClassAssigner并从菜单中选择配置。这将弹出一个窗口,您可以从中指定哪个列是数据中的类(最后一个是默认值)。
•现在从“分类器”面板的bayes部分抓取NaiveBayesUpdateable组件,并将其放置在布局上。
•接下来使用实例连接将ClassAssigner连接到NaiveBayesUpdateable。
•接下来,将一个IncrementalClassiferEvaluator从Evaluation面板放置到布局上,并使用incrementClassifier连接将NaiveBayesUpdateable连接到它。

•接下来,从布局上的“可视化”面板放置一个TextViewer组件。使用文本连接将IncrementalClassifierEvaluator连接到它。
•接下来,在布局上的可视化面板中放置一个StripChart组件,并使用图表连接将IncrementalClassifierEvaluator连接到该组件。
•通过右键单击StripChart的图表并从弹出菜单中选择显示图表来显示它。注意:StripChart可以配置用于控制显示数据点和标签的频率的选项。
•最后,通过右键单击ArffLoader并从弹出菜单中选择开始加载来启动流程。

注意,在该示例中,在用该实例训练(更新)分类器之前,针对每个输入实例从朴素贝叶获得预测。如果您有预训练分类器,则可以通过取消选中分类器配置对话框中的复选框来指定不对传入实例更新分类器。如果预训练分类器是批处理分类器(即它不能进行增量训练),那么您将只能以增量方式测试它。


参考文献
[1] Witten,I.H. 和Frank,E。(2005)数据挖掘:实用机器学习工具和技术。第二版Morgan Kaufmann,旧金山。
[2] WekaDoc - http://weka.sourceforge.net/wekadoc/
[3] WekaWiki - http://weka.sourceforge.net/wekawiki/
[4]在WekaWiki上绘制多条ROC曲线 -http://weka.sourceforge.net/wiki/index.php/绘制多条ROC曲线



0 0