您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
使用 Java、Weka 和 BLU Acceleration 服务构建数据挖掘应用程序
 
作者 Krunal M. Vora、Karandeep Singh Chawla,火龙果软件    发布于 2014-09-18
   次浏览      
 

BLU Acceleration 在 Codename: BlueMix 上以服务的形式提供了数据仓库和分析。开发人员可以使用云中提供的非常快的 IBM BLU 技术来开发和部署重型应用程序。本文将了解如何使用 Weka 统计分析工具和 IBM BLU 纵列数据库来开发一个数据挖掘应用程序。

Codename: BlueMix 是一款 beta 级产品,随着我们不断让其功能更加完善和更易于使用,它也将不断改进。我们会竭尽全力保持本文最新,但并不总是完全跟得上现状。感谢大家的理解!

作为一家无线服务供应商公司的客户分析小组中的数据科学家,我们想利用客户数据来预测客户流失情况。对于电信行业来说,客户保留是一个重大挑战,在该行业中,客户年度流失率高达 40%。如果我们可以预测哪些客户存在流动的风险,那么我们的公司就可以在客户将业务转向别处之前采取相应的措施来留住客户。即使是很少的客户流失,也会对我们的企业底线产生重要的影响。

我们决定构建一个可以随时间的推移而增强的快速 Web 应用程序。我们的应用程序使用了分类算法代码,该算法是我们使用开源机器学习工具 Weka 通过 Java? 语言开发的。在 BlueMix 中,我们可以部署自己的 Java 应用程序,并利用 BLU Acceleration 分析数据库服务的优势对我们的客户数据进行分析。BLU Acceleration 提供了简单性和性能,如果我们决定扩大规模或增强应用程序来执行其他类型的数据分析,那么还可以提供企业级的应用程序。最后,我们选择使用 Twitter Bootstrap 作为 Web 开发框架,因为它提供了移动先行 Web 界面的灵活性,而且可以轻松适应那些用来执行我们的分析的混合设备和浏览器。

了解如何才能在 BlueMix 中构建一个类似的应用程序。我们假设您拥有适用于您的应用程序的必要代码,我们还提供了一些应用程序代码和数据,使用它们作为样例,帮助您开始了解如何操作。

构建类似应用程序的前提条件

1.熟悉 Java 应用程序开发

2.熟悉现代的前端框架,例如 Twitter Bootstrap

3.对统计分析工具有一定的了解,例如 Weka 或 R

第 1 步. 在 Codename: BlueMix 中创建应用程序

访问 Codename: BlueMix 并登录。

图 1.

在仪表板页面上,单击 Add an application。

在本例中,您将创建一个 Java 应用程序。在 Runtimes 下,选择 .java liberty (Liberty for Java)。

在弹出窗口中,单击 CREATE APP。

在下一个弹出窗口中,填写应用程序名称和主机,然后单击 CREATE。

图 2.

Codename: BlueMix 在您的工作区中创建应用程序并启动 Java 运行时。您可通过仪表板上显示的确认信息来获知成功启动应用程序的时间。

图 3.

第 2 步. 创建 BLU Acceleration 服务

从仪表板中选择您创建的应用程序,转到它的概述页面。

单击该页面的 Services 部分中的 Add new service。

图 4.

选择 BLU Acceleration 作为要添加的服务。

弹出的窗口将显示有关 BLU Acceleration 服务的更多信息。在后续弹出窗口中依次单击 ADD TO APPLICATION 和 CREATE。

图 5.

第 3 步. 查看 BLU Acceleration 服务(可选)

BLU Acceleration 服务在其 Web 控制台中提供了一些数据分析工具,包括加载和查询数据、使用 R 或 Excel? 来分析数据,使用 Cognos 来报告数据,以及向您提供常见行业特定用例的行业模型。这个令人印象深刻的可用工具集值得您去探索,以便为将来的项目做准备。

在应用程序概述页面中,选择 BLUAcceleration 服务。

图 6.

在接下来的页面上,单击 Launch the console。

这会打开一个新窗口,其中包含 BLU Data Warehouse Web 控制台。您可以在这个控制台中做许多事情,包括将数据文件上传到数据库,以及用 R 分析数据。

图 7.

第 4 步. 将数据上传到 BLU Acceleration(可选)

我们的样例数据集已经位于 BLU Acceleration 数据仓库中。但是,您也可以使用自己的数据。要想将数据上传到 BLU Acceleration:
在 BLU Acceleration Web 控制台中,单击 Manage 选项卡,然后选择 Load Data。

我们将加载来自 CSV 文件的数据。选择 Local File System 作为数据来源,并浏览包含您的数据的文件。

您需要为该数据创建一张新表。单击 +。

再次通过浏览寻找要加载的 CSV 文件。BLU Acceleration 会生成一个 SQL 语句,根据 CSV 文件的内容来创建表。对于我们的分析,除了分类列之外,我们需要加倍增加所有的列。请根据提示修改列类型。

单击 Run DDL 来运行语句;您会收到查询成功运行的通知。单击 OK。然后单击 Cancel。

选择刚刚创建的表。

选择默认选项 Append new data into the table,然后单击 Load Now。系统会加载数据。

第 5 步. 下载代码

如果尚未下载代码,请 获取 JazzHub 中的代码。

选择 EDIT CODE。登录后,您会看到要下载的代码。

单击 File > Export > Zip 将代码下载到您的计算机。

第 6 步. 了解代码

样例应用程序包含以下组件:

FileLocationContextListener 在服务器上创建了用于文件上传的文件夹。

如果用户选择使用数据库来上传针对模型的培训数据集,那么可以使用输入的详细信息将数据上传到 Instances 对象,使用这些数据作为 TrainingSet。然后,可以使用这个 TrainingSet 来创建 NaiveBayes 模型。或者,使用默认的数据库表来创建模型。

用户可以上传一个 CSV 文件,用它作为一个 Testing 集。该文件被上传到先前在服务器上创建的文件夹中。

Weka 将 Attribute-Relation File Format (ARFF) 文件作为一种基本的文件格式进行处理,该文件包含所需的属性和数据集。CSV2ARFF.java 是一个单独的实用程序,它可以将 CSV 文件转换成存储在服务器上的相同文件夹中的 ARFF 文件。

然后,将 ARFF 文件加载到 Instances 对象中,使用该文件作为一个 TestingSet。

对于 TestingSet 中的所有实例,可以使用 NaiveBayes 模型将输出分类为 Churn 或 Not Churn 类。

然后,在用户界面上显示相应的输出。

第 7 步. 生成 WAR 文件

要想将代码推送到 BlueMix 中,需要生成一个 WAR 文件。利用 Eclipse 可以轻松完成这一操作。为了防止您无法生成 WAR 文件,这里已经包含了该文件。

选择 File > Import。在对话窗口中,选择 Existing Projects into Workspace,然后选择 Next。

在接下来的对话窗口中,浏览从 JazzHub 下载的文件。

图 8.

保留所有的默认值即可。然后选择 Finish。现在,您已经将项目添加到了您的 Eclipse Client。

要想将项目导出为一个 WAR 文件,请右键单击 Project Explorer 中的项目。然后选择 Export > War File。将 WAR 文件单独保存到一个目录中。

图 9.

第 8 步. 部署应用程序

打开一个终端并转到 WAR 文件的目录。最好是将 WAR 文件放入它自己的目录中。

运行 cf push 命令。提供应用程序名称、所需的内存、实例,以及到达 WAR 文件的路径。对于这个应用程序,我们提供 512 MB 的内存和一个实例:cf push bludemo -m 512m -p BLUDemo.war 。

当上传应用程序时,出现的详细信息会指示正在发生的事情。大约一分钟半以后,应用程序就可以正常运行了。

如果想要更改应用程序,可重复此流程。生成新的 WAR 文件后,运行相同的命令将它推送到 BlueMix。

备选步骤:从 JazzHub 部署应用程序

不需要遵循前面的大部分步骤,您就可以创建服务并通过 JazzHub 部署应用程序。

在自己的工作区中拥有代码之后(第 5 步),修改名称为 manifest.yml 的文件。

将 name 和 host 修改为应用程序的名称和主机。这些值应该是相同的。文件会自动被保存。

单击 Deploy,然后 JazzHub 会尝试着根据 manifest.yml 文件来部署应用程序。在进行部署的时候,JazzHub 会请求您提供凭证。完成第 4 步来上传培训数据。然后,演示应用程序将会开始运行。

结束语

现在,您已经了解了 BLU Acceleration 如何在 Codename: BlueMix 上以服务的形式提供了数据仓库和分析,以及开发人员如何使用云中提供的非常快的 IBM BLU 技术来开发和部署重型应用程序。这就是云中更快速、更简单的数据挖掘方式。

   
次浏览       
相关文章

Java微服务新生代之Nacos
深入理解Java中的容器
Java容器详解
Java代码质量检查工具及使用案例
相关文档

Java性能优化
Spring框架
SSM框架简单简绍
从零开始学java编程经典
相关课程

高性能Java编程与系统性能优化
JavaEE架构、 设计模式及性能调优
Java编程基础到应用开发
JAVA虚拟机原理剖析
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]

Java 中的中文编码问题
Java基础知识的三十个经典问答
玩转 Java Web 应用开发
使用Spring更好地处理Struts
用Eclipse开发iPhone Web应用
插件系统框架分析
更多...   


Struts+Spring+Hibernate
基于J2EE的Web 2.0应用开发
J2EE设计模式和性能调优
Java EE 5企业级架构设计
Java单元测试方法与技术
Java编程方法与技术


Struts+Spring+Hibernate/EJB+性能优化
华夏基金 ActiveMQ 原理与管理
某民航公司 Java基础编程到应用开发
某风电公司 Java 应用开发平台与迁移
日照港 J2EE应用开发技术框架与实践
某跨国公司 工作流管理JBPM
东方航空公司 高级J2EE及其前沿技术
更多...