数据挖掘API
Oracle支持两种兼容的API以访问数据库中的数据挖掘功能。第一种是PL/SQL API,其中包括DBMS_DATA_MINING程序包,另一种也是Java API,称为Oracle数据挖掘Java API。因为J Cells目前最适合访问Java API,所以需要以可直接从Java对其进行访问的方式打包PL/SQL API。两个主要的 Oracle 数据挖掘概念是设置和模型。设置概念基本围绕带有两列(setting_name和setting_value)的设置表构建;其中 setting_name 是挖掘算法使用的属性名,而 setting_value 是与该属性相对应的值。
DBMS_DATA_MINING程序包包含若干过程,包括CREATE_MODEL和APPLY。CREATE_MODEL过程根据设置表(作为过程的参数之一提供)中的值为给定挖掘函数和数据集创建挖掘模型。该过程简单且易于使用。实际上,由用户来为要创建的模型、要使用的挖掘函数、包含要使用的数据的表、要建模的列以及设置表提供名称。这一方法的优点在于所有不同算法都可以类似的方法调用。每种算法的微调都整合至设置表中,但在很多情况下,各种设置系数可由算法本身自动决定。设置表中条目的复杂性根据用户的专业技术背景和算法而有所不同。许多专业用户可能希望手动设置所有可能的系数,而我们中的多数人更可能乐意系统自动给出适用设置。Oracle提供了一个要用作设置键的常量列表,以及命名为常量或数字间隔的值。
表 1:algo_name(算法名)设置键的值
Oracle的算法名 (algo_name) 键的常量值如上所示。对于其中的每一个值,使用了可能键和值的不同集等。以下(图 2)显示了向导函数是如何将这些键映射到树结构,并允许用户通过操纵该设置树定义设置表的。
作为Oracle数据库中创建的挖掘模型,DBMS_DATA_MINING.APPLY过程用于将该模型应用到新数据集。而且,这是一个易于使用的过程,要求只输入挖掘模型名、包含新数据集的表名、用于识别新数据集中行的列以及结果数据集名。Java类OracleMiningModel (below)在调用预测、评分或 apply方法时,都会利用该APPLY过程。此外,DBMS_DATA_MINING程序包包含若干根据类型将各个模型详细信息作为结果集或以XML格式返回的函数。这些细节函数也可通过使用OracleMiningModel类的实例(代表数据库中的不同模型)进行访问。
此处可通过创建一个称为 OracleModelSettings的Java类以Java打包(PL/SQL)设置概念,该类具有灵活的构造函数和各种签名,包括
public OracleModelSettings ( String modelSettingsName, Connection databaseConnection, String[] keyToValueStringMap) throws SQLException |
keyToValueStringMap 只是表单“ -> ”的字符串数组。该数组详细说明了设置表的行,以及负责在数据库中维护设置表的类。
类似地,此处也可通过创建一个称为OracleMiningModel的Java类以Java打包模型概念,该类具有构造函数和各种签名,包括
public OracleMiningModel ( String modelName, OracleModelSettings oms, String[] keyToValueStringMap) boolean recreate) throws SQLException |
此处使用keyToValueMappings数组来确定在Oracle数据库中创建数据挖掘模型所需的算法以及其他命名属性。该类的用途就是创建和维护数据挖掘模型。此外,OracleMiningModel 类还定义了用于检索以及将该模型应用到新数据集的方法。这些方法包括以下各项,此处只显示了一小部分。
public OracleResultSet infoAprioriAssociationRules(int topn) public OracleResultSet infoAprioriFrequentItemsets(int topn) public OracleResultSet infoAdaptiveBayesNetwork() public OracleResultSet infoAIMinimumDescLength() public OracleResultSet infoKMeans() public OracleResultSet infoNaiveBayes() public OracleResultSet infoNonnegativeMatrixFactorization() public OracleResultSet infoOCluster() public OracleResultSet infoSupportVectorMachines() public XMLType infoDecisionTree() public Object getPrediction(String[] signature, double[] doubleVal) public HashMap score(String[] signature, double[] doubleVal) public OracleResultSet apply( String dataTable, String caseID, String resultTable, String schema, boolean overwrite) |
除了具有上述签名外,所有的方法可能都会引发SQL意外。一旦可以从两个简单类来管理数据挖掘功能后,就可调用该电子表格平台来访问任何可用的数据挖掘算法,以在 Oracle数据库中建模数据集。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
甲骨文自治数据库亮相 带来云计算新希望
早前甲骨文还不在云计算公司之列,而现在该公司正在迅速弥补其失去的时间。甲骨文的云计算核心是甲骨文自治数据库(O […]
-
2017年12月数据库流行度排行榜 定格岁末排名瞬间
数据库知识网站DB-engines最近更新的2017年12月份数据库流行度排名情况是否能提供更多的看点呢?TechTarget数据库网站将与您分享12月份的榜单排名情况,让我们拭目以待。
-
2017年11月数据库流行度排行榜 半数以上数据库积分减少
数据库知识网站DB-engines更新了2016年11月份的数据库流行度排行榜。TechTarget数据库网站将与您一同关注11月份的榜单排名情况。
-
控制合约 不再畏惧Oracle
许多公司都与Oracle有无限制授权协议,他们害怕离开这个协议,所以就证明他们在使用Oracle的软件,即使因为需求单独购买部分授权许可也可能总体是省钱的。