一個通用數據挖掘系統——R的簡介

簡介

R (http://www.r-project.org) 系統是用於統計分析和圖形化的計算機語言及分析工具,爲了保證性能,其核心計算模塊是用CC++Fortran編寫的。同時爲了便於使用,它提供了一種腳本語言,即R語言。R語言和貝爾實驗室開發的S語言類似。R支持一系列分析技術,包括統計檢驗、預測建模、數據可視化等等。在CRAN(http://cran.r-project.org) 上可以找到衆多開源的擴展包。
   R軟件的首選界面是命令行界面,通過編寫腳本來調用分析功能。如果缺乏編程技能,也可使用圖形界面,比如使用RCommander(http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/)Rattle(http://rattle.togaware.com)[2]

另外,由於R系統是本文研究的重點,所以會花費較大篇幅對其各種特性、優勢及不足進行較爲細緻的分析。

主要功能

如前所述,R系統是一種腳本語言,它主要以命令方式提供了對各種數據的處理和統計分析過程,主要能力或功能描述如下:

1.數據導入和導出:可以從文件中獲取數據,將處理結果存放到數據文件中;如HousePrice <- read.table("houses.data")data(Puromycin, package="datasets")attach(“faithful”)

2.向量數據處理能力:它可以處理向量數據(包括數值、邏輯和字符串),也可以按一定規則生成向量數據;支持向量運算(+-*/、冪運算);

n向量賦值:x <- c(10.4, 5.6, 3.1, 6.4, 21.7)y <- c(x, 0, x)

n向量運算:1/xv <- 2*x + y + 1sum((x-mean(x))^2)/(length(x)-1)

n向量生成:z <- 0:9s4 <- seq(length=51,from=-5, by=.2)

3.複雜數據處理能力:支持矩陣、支持列表數據類型(元素不同)、數據幀(類似矩陣,但元素類型可不同);

因子(集合):

state <- c("tas", "sa", "qld","nsw", "nsw", "nt", "wa","wa","qld", "vic", "nsw","vic", "qld", "qld", "sa","tas","sa", "nt", "wa","vic", "qld", "nsw", "nsw","wa","sa", "act", "nsw","vic", "vic", "act")statef<- factor(state)

n數組或矩陣:dim(z) <- c(3,5,100)x <- array(1:20, dim=c(4,5))

n列表:Lst <- list(name="Fred", wife="Mary",no.children=3,child.ages=c(4,7,9))

n數據幀:accountants <- data.frame(home=statef, loot=incomes, shot=incomef)

4.支持函數:包括系統內置函數和用戶定義函數;自定義函數舉例如下:

twosam <- function(y1, y2) {

n1 <- length(y1); n2 <- length(y2)

yb1 <- mean(y1); yb2 <- mean(y2)

s1 <- var(y1); s2 <- var(y2)

s <- ((n1-1)*s1 + (n2-1)*s2)/(n1+n2-2)

tst <- (yb1 - yb2)/sqrt(s*(1/n1 + 1/n2))

tst

}

5.概率分佈:支持多種概率分佈模型,如下:

nBeta:貝塔分佈

nBinomial:二項分佈

nCauchy:柯西分佈

nchi-squared:卡方分佈

nexponential:指數分佈

nFF分佈

nGamma:伽馬分佈

nGeometric:幾何分佈

nHypergeometric:超集合分佈

nlog-normal:對數正態分佈

nlogistic:對數分佈

nnegativebinomial:負二項分佈

nnormal:正態分佈

nPoisson:泊松分佈

nsignedrank:符號秩次分佈

nStudent:學生氏分佈

nUniform:單一分佈

nWeibullWeibull分佈

nWilcoxon:威爾考克斯分佈


以下爲分佈的舉例:

n正態分佈:

attach(faithful)

long <-eruptions[eruptions > 3]

plot(ecdf(long),do.points=FALSE, verticals=TRUE)

x <- seq(3, 5.4,0.01)

lines(x, pnorm(x, mean=mean(long),sd=sqrt(var(long))), lty=3)

上述命令生成的圖如下:

spacer.gif

n指數分佈:

x <- seq(1, 5, 0.01)

plot(pexp(x,3))

生成的統計圖如下:

spacer.gif

6.支持條件語句和循環語句

條件語句:if (expr_1) expr_2 else expr_3

循環語句:

xc <- split(x, ind)

yc <- split(y, ind)

for (i in 1:length(yc)) {

plot(xc`i`, yc`i`)

abline(lsfit(xc`i`, yc`i`))

}

7.支持多種圖型化的數據表達方式,舉例如下(直方圖):

x <- c(10.4, 5.6, 3.1, 6.4, 21.7)

hist(x)

spacer.gif

優勢

R系統具有如下優勢:

1.因其爲單行命令模式,所以對於一般有開發經驗的用戶,簡便易學,容易上手;

2.數據類型支持豐富;

3.支持的概率分佈模型較全面,一般能滿足日常使用;而且支持通用的假設檢驗方法;

4.支持流程控制和自定義函數。

不足

R系統也有如下缺點:

1.雖然簡便易學,和純粹基於圖型的挖掘工具相較,使用起來仍不夠直觀、方便;

2.對使用人員而言,仍有一定的要求;

3.一般只能從文件中獲取數據,無法和數據庫系統相結合。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章