R語言數據挖掘實踐——10個快速高效的R語言包

install.packages("lubridate")

library(lubridate)

year("2012-12-12")

#[1] 2012

day("2012-12-12")

#[1] 12

ymd("2012-12-12")

#1 按照 %Y-%m-%d 的方式解析

#[1] "2012-12-12 UTC"

7. ggplot2

ggplot2在每個人“喜愛的R包”的列表中排名很高。 它很容易使用,並且產生一些很好看的圖像。 這是介紹我們工作的好方法,有很多資源可以幫助我們開始使用。

8. qcc

qcc 是用於 統計質量控制的庫。 早在上世紀五十年代,現已不復存在的西方電氣公司正在尋找一種更好檢測電話線和電線問題的方法。他們提出了一系列 規則 來幫助識別有問題的線。規則觀察一系列數據點的歷史平均值,並且基於標準差的偏差,該規則有助於判斷一組新的點是否經歷均值漂移。

install.packages("qcc")

library(qcc)

# 均值為10的序列,加上白噪聲

x

# 測試序列,均值為11

new.x

# qcc 會標記出新的點

qcc(x, newdata=new.x, type="xbar.one")

qcc可幫我們監控網站的交易量,數據庫的訪問者或者登錄名,以及其他許多流程。

9. reshape2

我們經常發現,任何分析中最難的部分是把數據轉化成正確的格式。 reshape2 專門用於 “寬”數據表 和“窄”數據表 的轉換。一般會和ggplot2 及 plyr一起使用它。

install.packages("reshape2")

library(reshape2)

# 為每一行生成唯一的ID; 這樣我們可以稍後轉回到寬格式

iris$id

iris.lng

head(iris.lng)

# id Species variable value

#1 1 setosa Sepal.Length 5.1

#2 2 setosa Sepal.Length 4.9

#3 3 setosa Sepal.Length 4.7

#4 4 setosa Sepal.Length 4.6

#5 5 setosa Sepal.Length 5.0

#6 6 setosa Sepal.Length 5.4

iris.wide

head(iris.wide)

# id Species Sepal.Length Sepal.Width Petal.Length Petal.Width

#1 1 setosa 5.1 3.5 1.4 0.2

#2 2 setosa 4.9 3.0 1.4 0.2

#3 3 setosa 4.7 3.2 1.3 0.2

#4 4 setosa 4.6 3.1 1.5 0.2

#5 5 setosa 5.0 3.6 1.4 0.2

#6 6 setosa 5.4 3.9 1.7 0.4

library(ggplot2)

# 為數據集中每個數值列繪製直方圖

p

p + geom_histogram() +

facet_wrap(~variable, scales="free")

這是一個快速查看數據集並且獲得轉接的方法。我們可以使用 melt 函數將寬數據轉換為窄數據, 使用 dcast 將窄數據轉換為寬數據。

R語言數據挖掘實踐——10個快速高效的R語言包

10. randomForest

隨機森林 是一個很好的算法。它很容易使用,可以進行監督學習或者無監督學習,它可以與許多不同類型的數據集一起使用,但最重要的是它的高效率!這是它在R中的使用方法。

install.packages("randomForest")

library(randomForest)

# 下載泰坦尼克號倖存者數據集

data

# 將Survived列轉為yes/no因子

data$Survived

# 拆分為訓練集和測試集

idx

data.train

data.test

# 訓練一個隨機森林

rf

data=data.train, importance=TRUE, na.action=na.omit)

# 模型中每個變量的重要程度

imp

o

imp[o,]

# no yes MeanDecreaseAccuracy MeanDecreaseGini

#Sex 51.49855 53.30255 55.13458 63.46861

#PClass 25.48715 24.12522 28.43298 22.31789

#Age 20.08571 14.07954 24.64607 19.57423

# 混淆矩陣 [[真反例, 假正例], [假反例, 正正例]]

table(data.test$Survived, predict(rf, data.test), dnn=list("actual", "predicted"))

# predicted

#actual no yes

# no 427 16

# yes 117 195


分享到:


相關文章: