Rattle 與數(shù)據(jù)挖掘

Author:杜七


一、數(shù)據(jù)挖掘

大數(shù)據(jù)很熱尸折,就像春節(jié)的爆竹聲,從除夕早晨就響個不停殷蛇,一直維持到零點的新年鐘聲響起实夹。
數(shù)據(jù)挖掘的步驟,簡單匯總?cè)缦拢?/p>

  • 熟悉業(yè)務(wù)粒梦,搞清楚要解決的業(yè)務(wù)問題
  • 定義業(yè)務(wù)問題的變量亮航,提取所需的數(shù)據(jù)
  • 導(dǎo)入數(shù)據(jù),并對數(shù)據(jù)做清理
  • 選擇模型谍倦,建立模型
  • 評估模型
  • 解決業(yè)務(wù)問題

二塞赂、數(shù)據(jù)挖掘與R

數(shù)據(jù)挖掘領(lǐng)域,R語言目前也支持很多昼蛀,比如Weka是一個非常不錯的挖掘包宴猾。目前RWeka提供了一個R and Weka的接口,我們可以通過RWeka來做數(shù)據(jù)挖掘叼旋,但是RWeka需要自己coding仇哆,對于有些不熟悉R的同學(xué)可能有點難度。除此之外夫植,Rattle也是一個不錯的選擇讹剔。Rattle是一個用于數(shù)據(jù)挖掘的R的圖形交互界面(GUI),可用于快捷的處理常見的數(shù)據(jù)挖掘問題详民。從數(shù)據(jù)的整理到模型的評價延欠,Rattle給出了完整的解決方案。

三沈跨、Rattle

1由捎,Rattle優(yōu)勢

Rattle的最大優(yōu)勢在于提供一個圖形交互界面,使用者就算不熟悉R的很多語法饿凛,也可以通過load data,Explore,Model,Test來完成整個數(shù)據(jù)挖掘的工作狞玛,不再糾結(jié)與load data (read.table(file,header = TRUE)),summary(data),Logistic or rpart等等coding。另外涧窒,Rattle有一個Log 記錄心肪,任何在Rattle操作的行為所對應(yīng)的R Code都很明確的一步一步記錄下來。 所以纠吴,如果想學(xué)習(xí)R的命令和函數(shù)硬鞍,可以一邊用Rattle來做挖掘,一邊通過Log來學(xué)習(xí)。

2固该,Rattle常用的操作

1) 導(dǎo)入數(shù)據(jù)

這個部分碑隆,通過GUI來導(dǎo)入數(shù)據(jù),即界面中的Tab-Data蹬音,否則只能通過read.table等等實現(xiàn)。這部分函數(shù)休玩,通過Log就可以很清楚的看到對應(yīng)的R code著淆。比如,導(dǎo)入Weather dataset拴疤,Log中就會提示:
crs$dataset <- read.csv(system.file("csv", "weather.csv", package="rattle"), encoding="UTF-8") set.seed(crv$seed) crs$nobs <- nrow(crs$dataset) # 366 observations crs$sample <- crs$train <- sample(nrow(crs$dataset), 0.7*crs$nobs) # 256 observations crs$validate <- sample(setdiff(seq_len(nrow(crs$dataset)), crs$train), 0.15*crs$nobs) # 54 observations crs$test <- setdiff(setdiff(seq_len(nrow(crs$dataset)), crs$train), crs$validate) # 56 observations

2) 研究數(shù)據(jù)

在Rattle中永部,有專門的模塊來完成數(shù)據(jù)的研究——Explore。在這個里面可以完成summary,Distributions,Correlation,Principal components,and Interactive呐矾。 同時苔埋,對應(yīng)的data plot也會自動完成,比如蜒犯,我們想看Rainy days的分布组橄,我們可以通過"Explore"——Distributions" - "Categoric"(choose "RainyToday") —— "Excute",然后圖形就完成了。
當(dāng)然罚随,在Log里面可以很清楚看到對應(yīng)的命令和函數(shù)玉工,如下:
ds <- rbind(summary(na.omit(crs$dataset[crs$sample,]$RainToday)), summary(na.omit(crs$dataset[crs$sample,][crs$dataset[crs$sample,]$RainTomorrow=="No",]$RainToday)), summary(na.omit(crs$dataset[crs$sample,][crs$dataset[crs$sample,]$RainTomorrow=="Yes",]$RainToday))) ord <- order(ds[1,], decreasing=TRUE) bp <- barplot2(ds[,ord], beside=TRUE, ylab="Frequency", xlab="RainToday", ylim=c(0, 254), col=rainbow_hcl(3)) text(bp, ds[,ord]+8, ds[,ord]) legend("topright", bty="n", c("All","No","Yes"), fill=rainbow_hcl(3)) title(main="Distribution of RainToday (sample) by RainTomorrow", sub=paste("Rattle", format(Sys.time(), "%Y-%b-%d %H:%M:%S"), Sys.info()["user"]))

3)建模

類似于explore data,Rattle也提供了建模的模塊淘菩,請看"Model"遵班。
在這里,已經(jīng)有“Tree”潮改,“Forest”狭郑,“Boost”,“SVM",“l(fā)inear”汇在,”Neural Net”等模型可以選擇翰萨,具體大家可以參考Rattle的PDF。
具體的應(yīng)用也很簡單趾疚,比如我想對Rainyday做一個分析缨历,想知道滿足什么條件會是一個Rainyday,如何來做呢糙麦?
很簡單辛孵,首先,Data里面選擇需要的變量赡磅,然后在Model里面選擇“tree”魄缚,然后再“執(zhí)行”,分類數(shù)模型就搞定了!冶匹!是不是很贊习劫?
`Summary of the Decision Tree model for XXXX (built using 'rpart'):
n= 256
node), split, n, loss, yval, (yprob)
* denotes terminal node

  1. root 256 41 No (0.83984375 0.16015625)
  2. Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137)
  3. Cloud3pm< 7.5 195 10 No (0.94871795 0.05128205) *
  4. Cloud3pm>=7.5 9 3 Yes (0.33333333 0.66666667) *
  5. Pressure3pm< 1011.9 52 25 No (0.51923077 0.48076923)
  6. Sunshine>=8.85 25 5 No (0.80000000 0.20000000) *
  7. Sunshine< 8.85 27 7 Yes (0.25925926 0.74074074) * `

當(dāng)然,過程簡單了嚼隘,但是如何做分類樹模型诽里,了解分類樹模型的細節(jié)也是必要的,否則怎么知道選擇模型的結(jié)果和意義呢飞蛹?

4)模型評估

建模固然重要谤狡,最重要的還是建模之后的模型評估,比如檢驗是否通過卧檐,這對于模型的正確與否墓懂,應(yīng)用與否必不可少。一個檢驗不通過霉囚,即不正確的模型有什么意義呢捕仔?
模型的檢驗,也需要我們了解檢驗啥盈罐,如何檢驗榜跌?F-Test,T-test都代表啥暖呕,如何模型就是通過斜做?大家在實際應(yīng)用中,肯定會關(guān)注p-value湾揽,看p-value是否經(jīng)過檢驗瓤逼。
這個部分不多少了,不是本次的重點库物。
更多的內(nèi)容霸旗,大家看“Test”和“Evaluate”的模塊內(nèi)容。

5)模型應(yīng)用

模型建立并通過檢驗以后戚揭,即可以在業(yè)務(wù)問題中應(yīng)用诱告。
具體的應(yīng)用,要看模型和業(yè)務(wù)問題具體分析民晒。比如分類樹精居,我們就可以根據(jù)分類樹的優(yōu)先級來合理安排哪些客戶是我們首先要去維護的,哪些是需要后面再去維護等等潜必;如果是logistic模型靴姿,我們就可以根據(jù)變量來預(yù)測應(yīng)變量。

先寫到這里磁滚,后面更多使用以后再來補充和細化佛吓。今天2014年大年初一宵晚,大家新年快樂,馬上有所有维雇!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末淤刃,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子吱型,更是在濱河造成了極大的恐慌逸贾,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件津滞,死亡現(xiàn)場離奇詭異耕陷,居然都是意外死亡,警方通過查閱死者的電腦和手機据沈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饺蔑,“玉大人锌介,你說我怎么就攤上這事』” “怎么了孔祸?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長发皿。 經(jīng)常有香客問我崔慧,道長,這世上最難降的妖魔是什么穴墅? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任惶室,我火速辦了婚禮,結(jié)果婚禮上玄货,老公的妹妹穿的比我還像新娘皇钞。我一直安慰自己,他們只是感情好松捉,可當(dāng)我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布夹界。 她就那樣靜靜地躺著,像睡著了一般隘世。 火紅的嫁衣襯著肌膚如雪可柿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天丙者,我揣著相機與錄音复斥,去河邊找鬼。 笑死蔓钟,一個胖子當(dāng)著我的面吹牛永票,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼侣集,長吁一口氣:“原來是場噩夢啊……” “哼键俱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起世分,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤编振,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后臭埋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體踪央,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年瓢阴,在試婚紗的時候發(fā)現(xiàn)自己被綠了畅蹂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡荣恐,死狀恐怖液斜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叠穆,我是刑警寧澤少漆,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站硼被,受9級特大地震影響示损,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嚷硫,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一检访、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仔掸,春花似錦烛谊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鞋怀,卻和暖如春双泪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背密似。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工焙矛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人残腌。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓村斟,卻偏偏與公主長得像贫导,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蟆盹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容