将 Intelligent Miner Visualization 嵌入应用程序中

IM Visualization 简介

DB2 Intelligent Miner Visualization 8.2 是 IBM 数据挖掘产品的 Intelligent Miner 家族中的组件,可以用于可视地研究称为挖掘模型的数据挖掘结果。IM Visualization 支持 XML 格式的模型,这种格式由 data mining group PMML 标准化。在 IM Visualization 教程 关于 Business Scenario 的小节中,可以找到如何在应用程序中使用 IM Visualization 的业务案例的很好概括。

合作伙伴支持软件包简介

大多数 IM Visualization 用户将这个软件包用作单独的应用程序,或者在 applet 模式下将这个软件包作为其 Web 应用程序的一部分进行部署。本文将展示如何使 IM Visualization 成为 Java 应用程序的一个组成部分。

如果想获得本文范围之外的关于 IM Visualization API 的知识,可以通过发送电子邮件给作者来获得 IM Visualization 合作伙伴支持软件包

合作伙伴支持软件包中包含以下内容:

  • 包含了可以编译和运行的完整代码示例,而不只是本文中的代码段。
  • IM Visualization 所有公共接口的 Javadoc 文档。
  • IM Visualization 使用的 PMML 标记扩展的文档。



快速入门 —— 一个简单的代码示例

IM Visualization Java 类包含在 imvisu.jar 中,该文件在安装 IM Visualization 时被安装到了 /lib 目录中。IM Visualization 暴露的公共接口包含在软件包 com.ibm.datamining.visualization 及其子包中。

清单 1 显示了 Java 应用程序的源代码,该应用程序为从文件系统读取的 PMML 模型启动了 IM Visualization Window,图 1 显示了运行的应用程序。


清单 1. 从文件输入流启动 Visualization 窗口
package com.ibm.datamining.visualization.samples;
import com.ibm.datamining.visualization.*;
import com.ibm.datamining.visualization.modelsource.*;
import java.awt.Window;
import java.io.*;
public class VisualizeFromInputStream
{
  public static void main(String[] args)
  {
    try
    {
      InputStream in = 
         new FileInputStream("C:/VisualizersAPISamples/models/ClusSample.xml") ;
      InputStreamModelSource modelSource = new InputStreamModelSource(in) ;
      modelSource.setDescription("My own stream") ;
      
      IVisualizer visualizer = VisualizerFactory.createVisualizer(modelSource) ;
      
      Window window = 
          UIFactory.createVisualizerWorkbenchWindow(visualizer).getWindow() ;
      window.setVisible(true) ;
      
      in.close() ;
    } catch (IOException ioe)
      {
        ioe.printStackTrace() ;
      }  
  }
}

要从文件系统的 XML 文件中读取 PMML 模型,需要创建 java.io.FileInputStream,然后将其传递到 ModelSource 构造函数中。还可以使用其他 InputStreams 或使用 URI 来构造模型源(model source)。

然后使用 VisualizerFactory singleton 创建 IVisualizer 实例。IVisualizer 是表示模型上打开的可视化器(visualizer)的接口。可视化器由多个视图组成(例如,集群可视化器的图形、文本或详细视图)。IVisualizer 是加载模型时创建、初始化和管理这些视图的中心类。

UIFactory 可以创建 IM Visualization API 支持的不同窗口类型。在本例中,要创建单独的 IVisualizerWorkbenchWindow,因为在这个简单的例子中,没有其他应用程序来管理 IM Visualization 框架。


图 1. 源代码清单 1 的 Visualization 窗口
IM Visualization 窗口

如何构建示例

除了主库 imvisu.jar 之外,IM Visualization 还包含其他一组 JAR 文件:

xerces.jarXML 解析器的库
i18_XX.jar语言库,取决于客户机的位置
jh.jar如果通过单击 Help => Help Topics... 来显示帮助信息
assoc_help_XX.jar
clustering_help_XX.jar
classification_help_XX.jar
regression_help_XX.jar
需要 JAR 帮助文件,这取决于当前浏览模型的语言和类型

作为构建和运行应用程序的最低要求,需要将 imvisu.jar 和 xerces.jar 添加到类路径中。

要构建并运行来自 samples\VisualizerFromInputStream.java 中包含的清单 1 的源代码,请使用下列命令:


清单 2:构建和运行示例
javac -classpath 
   "c:\Program Files\IBM\IMVisualization\lib\imvisu.jar;c:\Program Files\IBM\IMVisualization\lib\xerces.jar" 
   samples\VisualizeFromInputStream.java
java -classpath 
   "c:\Program Files\IBM\IMVisualization\lib\imvisu.jar;c:\Program Files\IBM\IMVisualization\lib\xerces.jar;." 
   samples.VisualizeFromInputStream


高级主题

使用现有 Swing 应用程序中的视图

如果已经有一个现成的 Swing 应用程序,那么可以重用单独的 IM Visualization 视图,并将它们添加到 Swing 内容面板中,如下所示:


清单 3:向 Swing 内容面板添加视图
private final static String VIEW_ID = IClusteringVisualizer.TEXTUAL_VIEW_ID ;
...
Container contentPane = getContentPane() ;
contentPane.setLayout(new BorderLayout()) ;
contentPane.add(new JScrollPane(new JTree()), BorderLayout.WEST) ;
...
visualizer = 
   VisualizerFactory.createVisualizer(modelSource, new String[]{VIEW_ID}) ;
      
// get the view from the visualizer
IMiningView view = visualizer.getView(VIEW_ID) ;
      
// add it and its legend into the foreign application
contentPane.add(view.getViewComponent(), BorderLayout.CENTER) ;
contentPane.add(view.getLegendComponent(), BorderLayout.SOUTH) ;

Visualizer UI 类:

IVisualizerWorkbenchWindow
当完整的可视化器作为单独应用程序来启动时,可视化器工作台窗口是顶级 Window。该窗口中包含菜单栏、工具栏、状态栏,而且还包含一个可视化器工作台。

IVisualizerWorkbench
可视化器工作台是用户界面,它将可视化器视图放置到选项卡中,并允许在两个分割窗格中显示视图。而且,可视化器工作台可以管理可视化器的工具栏和状态栏。

IMiningView
挖掘视图表示可视化器的单个视图。视图由 IVisualizer 对象创建和管理,可以作为普通 Swing 组件安装到任何 Swing/AWT 容器中,或安装到放置在选项卡和分割窗格中的视图的 IVisualizerWorkbench 中。


图 2. 内嵌式 Visualization 视图(源代码清单 3)
内嵌的视图

处理相关联观察器中的选择事件

可以对相关联可视化器的图形视图中的选择更改作出反应。


清单 4:对选择事件作出反应
...
IMiningView[] views = visualizer.getViews() ;
for (int i=0 ; i


图 3. 对选择事件作出反应(源代码清单 4)
对选择事件作出反应

其他代码示例

除了本文中提供的示例之外,合作伙伴支持软件包中还包含 IM Visualization API 的文档(Javadoc)和显示以下内容的代码示例:

  • 如何定制 Visualizer 中可以使用的选项卡视图的数目和顺序。
  • 如何将完整的可视化器框架嵌入基于 foreign Swing 的应用程序中。
  • 如何将自己的贡献插入到可视化器的菜单栏或工具栏或它的一个视图。

IM Visualization PMML 扩展

data mining group 为数据挖掘创建 PMML 标准。标准化工作最初主要致力于挖掘模型的互用性,以便进行记分(将给定模型应用于新数据以获得预测或记分)。

符合标准的 PMML 模型的某些部分是可选的,但重要的是使用 IM Visualization 获得好的结果。例如,培训数据和集群中的分配统计用于集群可视化器的饼图和柱状图中。下列 XML 段显示了集群 6 中字段“MARITAL_STATUS”的值分布:


清单 5:用于集群分布统计的 PMML
 
        ... 
         15 10 134

为了改善数据挖掘模型的视觉外观,Intelligent Miner 对挖掘模型中的一些附加信息进行记分。在那些 PMML 标准尚未对附加信息的语法进行标准化的地方,IM Visualization 使用了以 开头的扩展标记。使用那些扩展的地方是模型质量信息,它们与用于绘制分类或预测模型的增益/提升图的坐标相似。下列 XML 片段显示了分类模型的提升图数据:


清单 6:提升图的 PMML
 91 116 142 165 183 240 83 21 19 5 3 6 0.912087912087912 0.84 0.730769230769231
                                   0.217391304347826 0.166666666666667 0.105263157894737
         

当使用 Intelligent Miner Modeling 或 Intelligent Miner for Data 来生成数据挖掘模型时,这些对您来说是完全透明的。然而,如果您是 IBM 业务合作伙伴或挖掘工具供应商,那么您可能想将其他标签写入挖掘模型中,以便与 IM Visualization 更好地进行集成。

合作伙伴支持软件包说明了 IM Visualization 如何使用 PMML 标准标签以及 IM Visualization 标签扩展的语法和语义。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15082138/viewspace-671858/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15082138/viewspace-671858/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值