Oracle數(shù)據(jù)庫終于支持R語言 發(fā)力數(shù)據(jù)挖掘
據(jù)Oracle官方博客 最近更新的New R Interface to Oracle Data Mining Available for Download,甲骨文開始正式支持R語言在Oracle數(shù)據(jù)庫中的應(yīng)用(簡單的非官方說法是:甲骨文貢獻(xiàn)了一個提供Oracle和R之間接口的附加包)。
援引博客中對R-ODM(R-Oracle Data Mining)的介紹:
R-ODM is especially useful for:
Quick prototyping of vertical or domain-based applications where the Oracle Database supports the application
Scripting of “production” data mining methodologies
Customizing graphics of ODM data mining results (examples: classification, regression, anomaly detection) 眾所周知,R在實現(xiàn)原型算法方面有著不可替代的巨大優(yōu)勢。誠然,通過R實現(xiàn)的一般性數(shù)據(jù)挖掘算法都可以嵌入到數(shù)據(jù)庫中,但Oracle提供的這個接口,極大地提高了挖掘算法的部署效率。
今天(2010.06.08),CRAN上更新了RODM包的1.0-2版本,支持Windows、Linux、MacOS X系統(tǒng)。
下面是RODM包幫助文檔中的一個例子,可以初步地體會算法高效的部署:
- ### GLM Regression
- ## Not run:
- x1 <- 2 * runif(200)
- noise <- 3 * runif(200) - 1.5
- y1 <- 2 + 2*x1 + x1*x1 + noise
- dataset <- data.frame(x1, y1)
- names(dataset) <- c("X1", "Y1")
- RODM_create_dbms_table(DB, "dataset")
- # Push the training table to the database
- glm <- RODM_create_glm_model(database = DB, # Create ODM GLM model
- data_table_name = "dataset",
- target_column_name = "Y1",
- mining_function = "regression")
- glm2 <- RODM_apply_model(database = DB, # Predict training data
- data_table_name = "dataset",
- model_name = "GLM_MODEL",
- supplemental_cols = "X1")
- windows(height=8, width=12)
- plot(x1, y1, pch=20, col="blue")
- points(x=glm2$model.apply.results[, "X1"],
- glm2$model.apply.results[, "PREDICTION"], pch=20, col="red")
- legend(0.5, 9, legend = c("actual", "GLM regression"), pch = c(20, 20),
- col = c("blue", "red"),
- pt.bg = c("blue", "red"), cex = 1.20, pt.cex=1.5, bty="n")
- RODM_drop_model(DB, "GLM_MODEL") # Drop the model
- RODM_drop_dbms_table(DB, "dataset") # Drop the database table
- RODM_close_dbms_connection(DB)
- RODM_close_dbms_connection(DB)
說一句題外話:
R的影響力除了在統(tǒng)計分析領(lǐng)域(SAS、SPSS、Statistica已經(jīng)都開始支持R接口)外,已然發(fā)展到了商業(yè)數(shù)據(jù)庫領(lǐng)域。
延伸閱讀
R語言是主要用于統(tǒng)計分析、繪圖的語言和操作環(huán)境。R本來是由來自新西蘭奧克蘭大學(xué)的Ross Ihaka和Robert Gentleman開發(fā)。(也因此稱為R)現(xiàn)在由“R開發(fā)核心團(tuán)隊”負(fù)責(zé)開發(fā)。R是基于S語言的一個GNU項目,所以也可以當(dāng)作S語言的一種實現(xiàn),通常用S語言編寫的代碼都可以不作修改的在R環(huán)境下運(yùn)行。R的語法是來自Scheme。
R的源代碼可自由下載使用,亦有已編譯的執(zhí)行檔版本可以下載,可在多種平臺下運(yùn)行,包括UNIX(也包括FreeBSD和Linux)、Windows和MacOS。R主要是以命令行操作,同時有人開發(fā)了幾種圖形用戶界面。
【編輯推薦】