使用Weka和IBM BLU纵列数据库开发一个数据挖掘应用程序

本文将了解如何使用 Weka 统计分析工具和 IBM BLU 纵列数据库来开发一个数据挖掘应用程序。Codename: BlueMix 是
一款 beta 级产品,随着我们不断让其功能更加完善和更易于使用,它也将不断改进。我们会竭尽全力保持本文最新,但并不总是完全跟得上现状。感谢大家的理解!

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

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

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

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

熟悉 Java 应用程序开发 熟悉现代的前端框架,例如 Twitter Bootstrap 对统计分析工具有一定的了解,例如 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 技术来开发和部署重型应用程序。这就是云中更快速、更简单的数据挖掘方式。

时间: 2024-08-31 11:10:05

使用Weka和IBM BLU纵列数据库开发一个数据挖掘应用程序的相关文章

《精通Android 5 多媒体开发》——第22章,第22.3节开发一个屏保程序

22.3 开发一个屏保程序精通Android 5 多媒体开发了解了在Android系统中开发屏保程序的基本原理后,在本节的内容中,将通过一个具体实例的实现流程,来详细讲解开发Android屏保程序的基本流程.本实例的源代码保存在"daima22pingbao"中,下面开始讲解本实例的具体实现流程. 22.3.1 准备素材图片在本实例中,设置屏保程序轮换显示5幅图片,图片的大小是320×480.本实例的素材图片保存在"resdrawable"目录下,效果如图22-1所

概述IE和SQL2k开发一个XML聊天程序

sql|xml|程序|聊天 不同浏览器之间多年的竞争导致产生了很多工具帮助开发人员完成以前很难做到的任务.现在,只要一小段脚本,你就可以创建一个应用程序将数据绑定到用户控件,这样就可以通过一个内嵌的代理类型的控件与服务器通信. 在 Internet Explorer(IE)中,这些东西包括 XML 数据岛和 XMLHTTP 对象,XML 数据岛用于将数据绑定到表单元素,XMLHTTP 对象用于在当前页面内不导航到其它页面的情况下创建对服务器的同步和异步调用.我将使用这两个易用的特性创建一个简单的

概述IE和SQL2k开发一个XML聊天程序_XML/RSS

不同浏览器之间多年的竞争导致产生了很多工具帮助开发人员完成以前很难做到的任务.现在,只要一小段脚本,你就可以创建一个应用程序将数据绑定到用户控件,这样就可以通过一个内嵌的代理类型的控件与服务器通信. 在 Internet Explorer(IE)中,这些东西包括 XML 数据岛和 XMLHTTP 对象,XML 数据岛用于将数据绑定到表单元素,XMLHTTP 对象用于在当前页面内不导航到其它页面的情况下创建对服务器的同步和异步调用.我将使用这两个易用的特性创建一个简单的聊天应用程序,该应用程序由一

用ASP开发一个在线考试程序(七)

程序|在线 Result.asp 这一页的主要目的是显示结果,同时将这些结果插入数据库以备将来参考.for each item in Request.Formsql_check = "select Count(*) from "&subject&" where answer ='" & Request.Form(item) & "'"Set RS_check = Application("Conn&quo

用ASP开发一个在线考试程序(三)

程序|在线 Sendregister.asp 这一页从register.asp 中取得表单域的内容,将它们插入数据库中.要注意用户名必须是唯一的.所以,首先查询要验证输入的用户名是否已经存在.如果是的话,用户被重新引回register.asp 页,并被要求选择另一个用户名.如果用户名是新的,输入的内容就被传递给数据库.sql_findmember = "select count(*) from loginuser where username = '" & username &

用ASP开发一个在线考试程序(四)

程序|在线 2000-09-08· 编译青苹果电脑工作室·yesky Checkuser.asp 在应用程序的开始,访问者键入了他们的口令之后,他们的细节被指向了一页,如sendregister.asp,来检验一下具体的用户名和口令在数据库中是否存在.sql_check = "select count(*) from loginuser where username ='" & _username &"' and password = '" &

用ASP开发一个在线考试程序(五)

程序|在线 Redirect.asp 这一页将用户送到实际生成题目和选项的ASP页.如果数据库中没有所选择的特定主题的任何题目,就显示错误信息和返回连接.首先:id = Request.QueryString ("section")调用查询字符串部分,将值存入变量 id中.然后:SQL = "select tbl_name from paper where id="&idSet RS = Application("Conn").Execu

用ASP开发一个在线考试程序(六)

程序|在线 测验代码 Exam.asp 提供一系列的题目和以单选按钮为格式的选项.为了使测验更具挑战性,还要有时间限制.我设置了一个装载时自动启动的时钟,将其时间设为20秒.剩余的时间在屏幕底部的状态窗口中显示.时间因素同题目个数一样可以改变.为了在每次会员想要参加考试时,都从数据库中选择不同的题目,我使用了随机函数.在数据库中,题目的个数固定为10个,每次会员回答5个问题.所有的题目都一起显示出来,然后开始计时.以下代码是计时器的函数:< script language="JavaScr

用ASP开发一个在线考试程序(八)

程序|在线 我将数据库命名为onlinetest.mdb.数据库中的表格数取决于主题或科目数.现在我们总共有5个表格:● loginuser ● paper ● details ● tblHTML ● tblDHTML loginuser表结构 字段名 数据类型 描述 Id Auto Number 主关键字 Username Text 成员名字 Useremail Text 成员的电子邮件地址 Password Text 成员的口令 details 表结构字段名 数据类型 描述 Id Auto