使用Oracle数据挖掘API方法详解(1)(3)
数据挖掘示例
因此,来看一个在该系统中编写的小数据挖掘模型,该模型可通过访问 Oracle 数据库创建并运行 ODM (Oracle Data Mining) 回归模型。该回归模型的用途是根据输入(例如血压、高度和体重)预测心率。使用 J Cells 可直接访问 Java API 以实例化对象并在对象上调用方法。首先,连接至 Oracle 数据库。DataSource 对象可通过将以下公式
() = ~ OracleDataSource("agust","agust","dbVaio","vaioFS");
输入到电子表格的单元格 b3 中进行实例化。Tilde 符号 (~) 表示缩写符号,允许 J Cells 将(右侧)语句转换为构造函数t“new cell.OracleDataSource( "agust", "agust", "dbVaio", "vaioFS");”,使系统能够以用户“agust”的身份访问服务器“vaioFS”上的数据库“dbVaio”。
现在,可通过在 DataSource 对象上调用正确的方法(例如在单元格 b4 和 b5 中分别输入以下公式),获得数据库连接以及检查数据库中的源数据:
(*) = b3.getConnection();
(*) = b3.query("select * from pulse_clinical");
|
第一个语句将向单元格 b4 中返回一个 java.sql.Connection 对象,第二个语句将向单元格 b5 中返回一个 java.sql.ResultSet 对象。只需通过双击单元格 (b5) 就可检查结果集,该操作会将结果表显示在表格框架中以便查看。
迄今为止,我只在该电子表格中创建了几个简单的数据对象。现在,可以调用数据挖掘 API 来定义一个设置对象,然后创建一个简单的数据挖掘模型。首先,通过在单元格 b6 中输入以下语句来创建一个设置对象:
(*) = new cell.odm.OracleModelSettings("xyz_settings", b4,
new String[]{
"algo_name -> algo_support_vector_machines",
"svms_kernel_function -> svms_linear"} );
|
立刻我发现该公式中的问题是最终用户友好的,因此,注册一个带有 J Cells 的向导,在提示用户后自动生成该公式,可能是个不错的办法。一般,电子表格在用户创建复杂公式时都会给予帮助,因此用户可以期望在实例化对象时获得指导。
部署的向导如图 2 所示。
同样,数据挖掘模型通过使用向导或输入公式来创建,在这两种情况中,结果模型都是在直接指定 API 调用的单元格 b7 中进行实例化:
(*)= new cell.odm.OracleMiningModel("xyz_model", b6,
new String[]{
"data_table_name -> pulse_clinical",
"mining_function -> regression",
"target_column_name -> pulse",
"case_id_column_name -> subject"},
false );
|
使用该公式结果实例化数据挖掘模型将在 Oracle 数据库中生成标准的 Oracle 数据挖掘模型。该模型可通过双击单元格 b7 进行查看,模型的完整值如图 3 所示。
使用上述的 OracleMiningModel 方法,可将该模型应用到 Oracle 数据库中的数据集。作为一个简单的交互式评分模型(一般适用于电子表格应用程序),用户可能希望输入血压、高度和体重值,让数据库使用刚才定义的模型预测心率。这个在模型对象上定义的 Java API 方法 getPrediction 非常适合这一用途。在单元格 e4、e5、e6 以及 e7 中(以单元格 b8 中签名数组指定的顺序)键入输入值后,通过输入以下公式可进行评分:
(*) = b7.getPrediction(b8,new double[]{e4,e5,e6,e7});
同样,该公式将直接访问 Java API 以获取并在单元格 e9 中显示评分结果,如图 4 所示。
电子表格优点
电子表格在最终用户之间的流行多少有些令人费解。一方面,当今最常用的电子表格系统长期以来令许多开发人员气馁,他们习惯于更为灵活、强大的系统。而另一方面,对于非开发人员而言,使用电子表格系统具有以下一些明显优点:无须构建图形化用户界面、单独构建和测试每个公式(代码)以及隐藏公式,看到的是更为简单的计算结果。这些优点只存在于当今流行的电子表格中,使用公式可将数字或文本返回到单元格,而许多系统主要受限于此。此处演示了如何移除这一限制并创建更为强大的工具。然后用它来直接访问 Oracle 的数据挖掘模型功能以及其他 API。
结论
通过利用更为强大的电子表格,可以显著缩短向最终用户引入新技术版本(例如由发布的 Java API 和 PL/SQL API)的时间。事实上,使用此处的方法,直接将原始 Java API 交给非编程人员,以立即整合至决策制定流程或进行预测和分析是切实可行的。






